프로젝트

일반

사용자정보

개정판 efb90851

IDefb908519f7fc510c8cc71415e33acdef879c078
상위 c9ea16b3
하위 748ba988, 2d988b46

함의성이(가) 5년 이상 전에 추가함

issue #000: add uid search in text search and replace dialog, last item message

Change-Id: I2c7e8e79426d728fb33c444ef27b61a032276467

차이점 보기:

DTI_PID/DTI_PID/TextItemEditDialog.py
11 11
from AppDocData import Config
12 12
import TextItemEdit_UI
13 13
from EngineeringTextItem import QEngineeringTextItem
14
from SymbolSvgItem import SymbolSvgItem
15
from EngineeringLineItem import QEngineeringLineItem
14 16

  
15 17
class QTextItemEditDialog(QDialog):
16 18
    """ This is text item edit dialog class """
......
24 26

  
25 27
        self.ui.pushButtonFindText.clicked.connect(self.findTextClicked)
26 28
        self.ui.pushButtonReplaceText.clicked.connect(self.replaceTextClicked)
29
        self.ui.checkBoxUID.stateChanged.connect(self.checkBoxChanged)
27 30

  
28 31
        self.prevText = ''
29 32
        self.textItems = []
......
50 53

  
51 54
        return str(uuid_obj) == text
52 55

  
56
    def checkBoxChanged(self, checkState):
57
        self.listIndex = 0
58
        self.prevText = ''
59
        if checkState is int(Qt.Checked):
60
            self.ui.pushButtonReplaceText.setEnabled(False)
61
            self.ui.lineEditReplaceText.setEnabled(False)
62
        else:
63
            self.ui.pushButtonReplaceText.setEnabled(True)
64
            self.ui.lineEditReplaceText.setEnabled(True)
65

  
53 66
    '''
54 67
        @brief      find text
55 68
        @author     kyouho
......
59 72
        text = self.ui.lineEditFindText.text()
60 73
        if not text: return
61 74

  
62
        if self.is_valid_uuid(text):
63
            matches = [item for item in self.mainWindow.graphicsView.scene.items() if hasattr(item, 'uid') and str(item.uid) == text]
64
            if matches: self.selectTextItem(matches[0])
75
        if int(self.ui.checkBoxUID.checkState()) is int(Qt.Checked):
76
            self.textItems = [item for item in self.mainWindow.graphicsView.scene.items() if (issubclass(type(item), SymbolSvgItem) or type(item) is QEngineeringLineItem) and str(item.uid).count(text)]
65 77
        else:
66
            self.listIndex += 1
78
            self.textItems = [item for item in self.mainWindow.graphicsView.scene.items() if issubclass(type(item), QEngineeringTextItem) and item.text().count(text)]
67 79

  
68
            if self.prevText != text:
69
                self.prevText = text
70
                self.textItems = [item for item in self.mainWindow.graphicsView.scene.items() if issubclass(type(item), QEngineeringTextItem) and item.text().count(text)]
71
                self.listIndex = 0
72
            elif self.textItems and self.listIndex == len(self.textItems):
73
                self.listIndex = 0
74

  
75
            if self.textItems:
76
                item = self.textItems[self.listIndex]
77
                self.selectTextItem(item)
80
        if self.prevText != text:
81
            self.prevText = text
82
            self.listIndex = 0
83
            item = self.textItems[self.listIndex]
84
            self.selectTextItem(item)
85
            self.listIndex += 1
86
        elif self.textItems and self.listIndex == len(self.textItems):
87
            self.listIndex = 0
88
            QMessageBox.about(self, self.tr("Notice"), self.tr('Last Item Found.'))
89
        elif self.textItems:
90
            item = self.textItems[self.listIndex]
91
            self.selectTextItem(item)
92
            self.listIndex += 1
78 93

  
79 94
    '''
80 95
        @brief      replace text
......
128 143
            if self.ui.lineEditFindText.hasFocus():
129 144
                self.findText()
130 145
            elif self.ui.lineEditReplaceText.hasFocus():
131
                self.replaceTextClicked()
132

  
133
    '''
134
        @brief  accept
135
        @author kyouho
136
        @date   2018.08.27
137
    '''
138
    def accept(self):
139
        QDialog.accept(self)
146
                self.replaceTextClicked()
DTI_PID/DTI_PID/TextItemEdit_UI.py
1 1
# -*- coding: utf-8 -*-
2 2

  
3
# Form implementation generated from reading ui file '.\UI\TextItemEdit.ui'
3
# Form implementation generated from reading ui file './UI/TextItemEdit.ui'
4 4
#
5 5
# Created by: PyQt5 UI code generator 5.11.3
6 6
#
......
11 11
class Ui_TextItemEditDialog(object):
12 12
    def setupUi(self, TextItemEditDialog):
13 13
        TextItemEditDialog.setObjectName("TextItemEditDialog")
14
        TextItemEditDialog.resize(349, 99)
14
        TextItemEditDialog.resize(307, 99)
15 15
        self.gridLayout = QtWidgets.QGridLayout(TextItemEditDialog)
16 16
        self.gridLayout.setObjectName("gridLayout")
17
        self.label = QtWidgets.QLabel(TextItemEditDialog)
18
        self.label.setObjectName("label")
19
        self.gridLayout.addWidget(self.label, 1, 0, 1, 1)
20 17
        self.pushButtonReplaceText = QtWidgets.QPushButton(TextItemEditDialog)
21 18
        self.pushButtonReplaceText.setObjectName("pushButtonReplaceText")
22
        self.gridLayout.addWidget(self.pushButtonReplaceText, 1, 3, 1, 1)
23
        self.lineEditReplaceText = QtWidgets.QLineEdit(TextItemEditDialog)
24
        self.lineEditReplaceText.setObjectName("lineEditReplaceText")
25
        self.gridLayout.addWidget(self.lineEditReplaceText, 1, 2, 1, 1)
19
        self.gridLayout.addWidget(self.pushButtonReplaceText, 2, 3, 1, 1)
26 20
        self.buttonBox = QtWidgets.QDialogButtonBox(TextItemEditDialog)
27 21
        self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
28
        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
22
        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Close)
29 23
        self.buttonBox.setObjectName("buttonBox")
30
        self.gridLayout.addWidget(self.buttonBox, 3, 2, 1, 2)
31
        self.label_2 = QtWidgets.QLabel(TextItemEditDialog)
32
        self.label_2.setObjectName("label_2")
33
        self.gridLayout.addWidget(self.label_2, 0, 0, 1, 1)
24
        self.gridLayout.addWidget(self.buttonBox, 4, 2, 1, 2)
34 25
        self.pushButtonFindText = QtWidgets.QPushButton(TextItemEditDialog)
35 26
        self.pushButtonFindText.setObjectName("pushButtonFindText")
36
        self.gridLayout.addWidget(self.pushButtonFindText, 0, 3, 1, 1)
27
        self.gridLayout.addWidget(self.pushButtonFindText, 1, 3, 1, 1)
37 28
        self.lineEditFindText = QtWidgets.QLineEdit(TextItemEditDialog)
38 29
        self.lineEditFindText.setObjectName("lineEditFindText")
39
        self.gridLayout.addWidget(self.lineEditFindText, 0, 2, 1, 1)
30
        self.gridLayout.addWidget(self.lineEditFindText, 1, 1, 1, 2)
31
        self.label = QtWidgets.QLabel(TextItemEditDialog)
32
        self.label.setObjectName("label")
33
        self.gridLayout.addWidget(self.label, 2, 0, 1, 1)
34
        self.lineEditReplaceText = QtWidgets.QLineEdit(TextItemEditDialog)
35
        self.lineEditReplaceText.setObjectName("lineEditReplaceText")
36
        self.gridLayout.addWidget(self.lineEditReplaceText, 2, 1, 1, 2)
37
        self.label_2 = QtWidgets.QLabel(TextItemEditDialog)
38
        self.label_2.setObjectName("label_2")
39
        self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
40
        self.checkBoxUID = QtWidgets.QCheckBox(TextItemEditDialog)
41
        self.checkBoxUID.setFocusPolicy(QtCore.Qt.NoFocus)
42
        self.checkBoxUID.setObjectName("checkBoxUID")
43
        self.gridLayout.addWidget(self.checkBoxUID, 4, 0, 1, 1)
40 44

  
41 45
        self.retranslateUi(TextItemEditDialog)
42 46
        self.buttonBox.accepted.connect(TextItemEditDialog.accept)
......
46 50
    def retranslateUi(self, TextItemEditDialog):
47 51
        _translate = QtCore.QCoreApplication.translate
48 52
        TextItemEditDialog.setWindowTitle(_translate("TextItemEditDialog", "Text Find / Replace"))
49
        self.label.setText(_translate("TextItemEditDialog", "Replace"))
50 53
        self.pushButtonReplaceText.setText(_translate("TextItemEditDialog", "Replace"))
51
        self.label_2.setText(_translate("TextItemEditDialog", "Text"))
52 54
        self.pushButtonFindText.setText(_translate("TextItemEditDialog", "→"))
55
        self.label.setText(_translate("TextItemEditDialog", "Replace"))
56
        self.label_2.setText(_translate("TextItemEditDialog", "Text"))
57
        self.checkBoxUID.setText(_translate("TextItemEditDialog", "UID"))
53 58

  
54 59

  
55 60
if __name__ == "__main__":
DTI_PID/DTI_PID/UI/TextItemEdit.ui
6 6
   <rect>
7 7
    <x>0</x>
8 8
    <y>0</y>
9
    <width>349</width>
9
    <width>307</width>
10 10
    <height>99</height>
11 11
   </rect>
12 12
  </property>
......
14 14
   <string>Text Find / Replace</string>
15 15
  </property>
16 16
  <layout class="QGridLayout" name="gridLayout">
17
   <item row="1" column="0">
18
    <widget class="QLabel" name="label">
19
     <property name="text">
20
      <string>Replace</string>
21
     </property>
22
    </widget>
23
   </item>
24
   <item row="1" column="3">
17
   <item row="2" column="3">
25 18
    <widget class="QPushButton" name="pushButtonReplaceText">
26 19
     <property name="text">
27 20
      <string>Replace</string>
28 21
     </property>
29 22
    </widget>
30 23
   </item>
31
   <item row="1" column="2">
32
    <widget class="QLineEdit" name="lineEditReplaceText"/>
33
   </item>
34
   <item row="3" column="2" colspan="2">
24
   <item row="4" column="2" colspan="2">
35 25
    <widget class="QDialogButtonBox" name="buttonBox">
36 26
     <property name="orientation">
37 27
      <enum>Qt::Horizontal</enum>
38 28
     </property>
39 29
     <property name="standardButtons">
40
      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
30
      <set>QDialogButtonBox::Close</set>
31
     </property>
32
    </widget>
33
   </item>
34
   <item row="1" column="3">
35
    <widget class="QPushButton" name="pushButtonFindText">
36
     <property name="text">
37
      <string>→</string>
41 38
     </property>
42 39
    </widget>
43 40
   </item>
44
   <item row="0" column="0">
41
   <item row="1" column="1" colspan="2">
42
    <widget class="QLineEdit" name="lineEditFindText"/>
43
   </item>
44
   <item row="2" column="0">
45
    <widget class="QLabel" name="label">
46
     <property name="text">
47
      <string>Replace</string>
48
     </property>
49
    </widget>
50
   </item>
51
   <item row="2" column="1" colspan="2">
52
    <widget class="QLineEdit" name="lineEditReplaceText"/>
53
   </item>
54
   <item row="1" column="0">
45 55
    <widget class="QLabel" name="label_2">
46 56
     <property name="text">
47 57
      <string>Text</string>
48 58
     </property>
49 59
    </widget>
50 60
   </item>
51
   <item row="0" column="3">
52
    <widget class="QPushButton" name="pushButtonFindText">
61
   <item row="4" column="0">
62
    <widget class="QCheckBox" name="checkBoxUID">
63
     <property name="focusPolicy">
64
      <enum>Qt::NoFocus</enum>
65
     </property>
53 66
     <property name="text">
54
      <string></string>
67
      <string>UID</string>
55 68
     </property>
56 69
    </widget>
57 70
   </item>
58
   <item row="0" column="2">
59
    <widget class="QLineEdit" name="lineEditFindText"/>
60
   </item>
61 71
  </layout>
62 72
 </widget>
63 73
 <resources/>

내보내기 Unified diff

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