프로젝트

일반

사용자정보

개정판 e578bad7

IDe578bad7c7956e79893f90658e32b8dc03df1dea
상위 f4ce538d
하위 90985e18

백흠경이(가) 4년 이상 전에 추가함

issue #1489: 시작/끝 지점을 설정하는 화면 구성

Change-Id: If3090274640913076499800b46ea5baf46a14a43

차이점 보기:

DTI_PID/DTI_PID/StreamlineDialog.py
12 12
from UI.Streamline_UI import Ui_StreamlineDialog
13 13

  
14 14

  
15
class FromToWidget(QWidget):
16
    def __init__(self, parent, from_to: str = ''):
17
        QWidget.__init__(self, parent)
18

  
19
        layout = QHBoxLayout()
20
        layout.setAlignment(Qt.AlignRight)
21
        layout.setContentsMargins(0, 0, 0, 0)
22
        pick = QToolButton(self)
23
        pick.setIcon(QIcon(':/newPrefix/OK.svg'))
24
        pick.setMaximumHeight(32)
25
        pick.setMaximumWidth(32)
26
        layout.addWidget(pick)
27
        self.setLayout(layout)
28

  
29

  
15 30
class QStreamlineDialog(QDialog):
16 31
    """ This Streamline dialog class """
17 32

  
......
25 40
        self.fill_hmb_data()
26 41
        self.ui.tableViewStreamNo.selectionModel().selectionChanged.connect(self.on_selection_changed)
27 42

  
43
        self.ui.toolButtonAddFromTo.clicked.connect(self.on_add_new_from_to)
44
        self.ui.toolButtonDelFromTo.clicked.connect(self.on_del_from_to)
45
        self.ui.pushButtonSaveFromTo.clicked.connect(self.on_save_from_to)
46

  
28 47
        self.ui.buttonBox.button(QDialogButtonBox.Ok).setIcon(QIcon(':/newPrefix/OK.svg'))
29 48
        self.ui.buttonBox.button(QDialogButtonBox.Cancel).setIcon(QIcon(':/newPrefix/Remove.svg'))
30 49

  
......
135 154
            app_doc_data = AppDocData.instance()
136 155
            rows = app_doc_data.get_stream_lines(uid)
137 156
            for row_ in rows:
138
                from_ = row_['From_UID'] if row_['From_UID'] else row_['From']
139
                to_ = row_['To_UID'] if row_['To_UID'] else row_['To']
157
                from_ = row_['From'] if row_['From'] else row_['From_UID']
158
                from_item = QStandardItem(from_)
159
                from_item.setData(row_['From_UID'], Qt.UserRole)
160

  
161
                to_ = row_['To'] if row_['To'] else row_['To_UID']
162
                to_item = QStandardItem(to_)
163
                to_item.setData(row_['To_UID'], Qt.UserRole)
164

  
140 165
                from_drawing = row_['From_Drawing']
141 166
                to_drawing = row_['To_Drawing']
142
                items = [QStandardItem(from_drawing if from_drawing == to_drawing else 'error'),
143
                QStandardItem(from_), QStandardItem(to_)]
167
                items = [QStandardItem(from_drawing if from_drawing == to_drawing else 'error'), from_item, to_item]
144 168
                model.appendRow(items)
145 169

  
146 170
            model.setHorizontalHeaderLabels(['Drawing No', 'From', 'To'])
147 171
            self.ui.tableViewFromTo.setModel(model)
148 172
            self.ui.tableViewFromTo.resizeColumnsToContents()
149 173

  
174
            for row in range(self.ui.tableViewFromTo.model().rowCount()):
175
                i = self.ui.tableViewFromTo.model().index(row, 1)
176
                data = self.ui.tableViewFromTo.model().data(i, Qt.DisplayRole)
177
                from_button = FromToWidget(self.ui.tableViewFromTo, data)
178
                i = self.ui.tableViewFromTo.model().index(row, 1)
179
                self.ui.tableViewFromTo.setIndexWidget(i, from_button)
180

  
181
                i = self.ui.tableViewFromTo.model().index(row, 2)
182
                data = self.ui.tableViewFromTo.model().data(i, Qt.DisplayRole)
183
                to_button = FromToWidget(self.ui.tableViewFromTo, data)
184
                self.ui.tableViewFromTo.setIndexWidget(i, to_button)
185

  
150 186
            """Properties"""
151 187
            if not self.ui.tableViewProperties.model():
152 188
                model_property = QStandardItemModel()
......
163 199

  
164 200
            model_property.setHorizontalHeaderLabels(['Property', 'Value'])
165 201
            self.ui.tableViewProperties.setModel(model_property)
202
            self.ui.tableViewFromTo.horizontalHeader().setResizeMode(QHeaderView.Stretch)
166 203
            self.ui.tableViewProperties.resizeColumnsToContents()
167 204
            self.ui.tableViewProperties.setEditTriggers(QAbstractItemView.NoEditTriggers)
168 205
            self.ui.tableViewProperties.setRowHidden(0, True)  # hide all columns except index is 1
169 206

  
207
    def on_add_new_from_to(self):
208
        """add a new from/to record"""
209
        rows = self.ui.tableViewFromTo.model().rowCount()
210
        index = self.ui.tableViewFromTo.model().index(rows, 0)
211
        self.ui.tableViewFromTo.model().insertRow(rows, QStandardItem())
212
        self.ui.tableViewFromTo.selectionModel().setCurrentIndex(index, QItemSelectionModel.NoUpdate)
213

  
214
        from_button = FromToWidget(self.ui.tableViewFromTo)
215
        i = self.ui.tableViewFromTo.model().index(rows, 1)
216
        self.ui.tableViewFromTo.setIndexWidget(i, from_button)
217

  
218
        to_button = FromToWidget(self.ui.tableViewFromTo)
219
        i = self.ui.tableViewFromTo.model().index(rows, 2)
220
        self.ui.tableViewFromTo.setIndexWidget(i, to_button)
221

  
222
    def on_del_from_to(self):
223
        """delete selected from/to"""
224
        current = self.ui.tableViewFromTo.selectionModel().currentIndex()
225
        self.ui.tableViewFromTo.model().removeRow(current.row())
226

  
227
    def on_save_from_to(self):
228
        pass
229

  
170 230
    def accept(self):
171 231
        QDialog.accept(self)
172 232

  
DTI_PID/DTI_PID/UI/Streamline.ui
26 26
   </item>
27 27
   <item row="0" column="0">
28 28
    <layout class="QGridLayout" name="gridLayout">
29
     <item row="4" column="0">
30
      <widget class="QSplitter" name="splitterHorizontal">
31
       <property name="orientation">
32
        <enum>Qt::Horizontal</enum>
33
       </property>
34
       <widget class="QTableView" name="tableViewStreamNo">
35
        <property name="selectionBehavior">
36
         <enum>QAbstractItemView::SelectRows</enum>
37
        </property>
38
        <attribute name="horizontalHeaderStretchLastSection">
39
         <bool>true</bool>
40
        </attribute>
41
       </widget>
42
       <widget class="QSplitter" name="splitterVertical">
43
        <property name="orientation">
44
         <enum>Qt::Vertical</enum>
45
        </property>
46
        <widget class="QTableView" name="tableViewFromTo"/>
47
        <widget class="QTableView" name="tableViewProperties"/>
48
       </widget>
49
      </widget>
50
     </item>
51 29
     <item row="1" column="0">
52 30
      <layout class="QHBoxLayout" name="horizontalLayout">
53 31
       <item>
......
74 52
         </property>
75 53
        </widget>
76 54
       </item>
55
       <item>
56
        <widget class="QToolButton" name="toolButtonDelFromTo">
57
         <property name="text">
58
          <string/>
59
         </property>
60
         <property name="icon">
61
          <iconset resource="../res/MainWindow.qrc">
62
           <normaloff>:/newPrefix/Remove.svg</normaloff>:/newPrefix/Remove.svg</iconset>
63
         </property>
64
        </widget>
65
       </item>
77 66
      </layout>
78 67
     </item>
68
     <item row="4" column="0">
69
      <widget class="QSplitter" name="splitterHorizontal">
70
       <property name="orientation">
71
        <enum>Qt::Horizontal</enum>
72
       </property>
73
       <widget class="QTableView" name="tableViewStreamNo">
74
        <property name="selectionBehavior">
75
         <enum>QAbstractItemView::SelectRows</enum>
76
        </property>
77
        <attribute name="horizontalHeaderStretchLastSection">
78
         <bool>true</bool>
79
        </attribute>
80
       </widget>
81
       <widget class="QSplitter" name="splitterVertical">
82
        <property name="orientation">
83
         <enum>Qt::Vertical</enum>
84
        </property>
85
        <widget class="QTableView" name="tableViewFromTo"/>
86
        <widget class="QTableView" name="tableViewProperties"/>
87
        <widget class="QPushButton" name="pushButtonSaveFromTo">
88
         <property name="text">
89
          <string>Save</string>
90
         </property>
91
         <property name="icon">
92
          <iconset resource="../res/MainWindow.qrc">
93
           <normaloff>:/newPrefix/Save.svg</normaloff>:/newPrefix/Save.svg</iconset>
94
         </property>
95
        </widget>
96
       </widget>
97
      </widget>
98
     </item>
79 99
    </layout>
80 100
   </item>
81 101
  </layout>
DTI_PID/DTI_PID/UI/Streamline_UI.py
23 23
        self.gridLayout_3.addWidget(self.buttonBox, 1, 0, 1, 1)
24 24
        self.gridLayout = QtWidgets.QGridLayout()
25 25
        self.gridLayout.setObjectName("gridLayout")
26
        self.horizontalLayout = QtWidgets.QHBoxLayout()
27
        self.horizontalLayout.setObjectName("horizontalLayout")
28
        spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
29
        self.horizontalLayout.addItem(spacerItem)
30
        self.toolButtonAddFromTo = QtWidgets.QToolButton(StreamlineDialog)
31
        self.toolButtonAddFromTo.setText("")
32
        icon = QtGui.QIcon()
33
        icon.addPixmap(QtGui.QPixmap(":/newPrefix/Add.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
34
        self.toolButtonAddFromTo.setIcon(icon)
35
        self.toolButtonAddFromTo.setObjectName("toolButtonAddFromTo")
36
        self.horizontalLayout.addWidget(self.toolButtonAddFromTo)
37
        self.toolButtonDelFromTo = QtWidgets.QToolButton(StreamlineDialog)
38
        self.toolButtonDelFromTo.setText("")
39
        icon1 = QtGui.QIcon()
40
        icon1.addPixmap(QtGui.QPixmap(":/newPrefix/Remove.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
41
        self.toolButtonDelFromTo.setIcon(icon1)
42
        self.toolButtonDelFromTo.setObjectName("toolButtonDelFromTo")
43
        self.horizontalLayout.addWidget(self.toolButtonDelFromTo)
44
        self.gridLayout.addLayout(self.horizontalLayout, 1, 0, 1, 1)
26 45
        self.splitterHorizontal = QtWidgets.QSplitter(StreamlineDialog)
27 46
        self.splitterHorizontal.setOrientation(QtCore.Qt.Horizontal)
28 47
        self.splitterHorizontal.setObjectName("splitterHorizontal")
......
37 56
        self.tableViewFromTo.setObjectName("tableViewFromTo")
38 57
        self.tableViewProperties = QtWidgets.QTableView(self.splitterVertical)
39 58
        self.tableViewProperties.setObjectName("tableViewProperties")
59
        self.pushButtonSaveFromTo = QtWidgets.QPushButton(self.splitterVertical)
60
        icon2 = QtGui.QIcon()
61
        icon2.addPixmap(QtGui.QPixmap(":/newPrefix/Save.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
62
        self.pushButtonSaveFromTo.setIcon(icon2)
63
        self.pushButtonSaveFromTo.setObjectName("pushButtonSaveFromTo")
40 64
        self.gridLayout.addWidget(self.splitterHorizontal, 4, 0, 1, 1)
41
        self.horizontalLayout = QtWidgets.QHBoxLayout()
42
        self.horizontalLayout.setObjectName("horizontalLayout")
43
        spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
44
        self.horizontalLayout.addItem(spacerItem)
45
        self.toolButtonAddFromTo = QtWidgets.QToolButton(StreamlineDialog)
46
        self.toolButtonAddFromTo.setText("")
47
        icon = QtGui.QIcon()
48
        icon.addPixmap(QtGui.QPixmap(":/newPrefix/Add.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
49
        self.toolButtonAddFromTo.setIcon(icon)
50
        self.toolButtonAddFromTo.setObjectName("toolButtonAddFromTo")
51
        self.horizontalLayout.addWidget(self.toolButtonAddFromTo)
52
        self.gridLayout.addLayout(self.horizontalLayout, 1, 0, 1, 1)
53 65
        self.gridLayout_3.addLayout(self.gridLayout, 0, 0, 1, 1)
54 66

  
55 67
        self.retranslateUi(StreamlineDialog)
......
60 72
    def retranslateUi(self, StreamlineDialog):
61 73
        _translate = QtCore.QCoreApplication.translate
62 74
        StreamlineDialog.setWindowTitle(_translate("StreamlineDialog", "Streamline"))
75
        self.pushButtonSaveFromTo.setText(_translate("StreamlineDialog", "Save"))
63 76
import MainWindow_rc

내보내기 Unified diff

클립보드 이미지 추가 (최대 크기: 500 MB)