개정판 e578bad7
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