Browse Source

Minus button added, lines int bug resolved

Akash Singh 3 years ago
parent
commit
e711c4bf19
1 changed files with 43 additions and 17 deletions
  1. 43 17
      uimain.py

+ 43 - 17
uimain.py

@@ -141,17 +141,23 @@ class MainWindow(Ui_MainWindow):
         hori.setSpacing(10)
         add_button = QtWidgets.QPushButton("Add", self.filter_dialog)
         add_button.setStyleSheet("color: rgb(255, 255, 255); background-color: rgb(114, 159, 207);")
-        remove_button = QtWidgets.QPushButton("Remove", self.filter_dialog)
-        remove_button.setStyleSheet("color: rgb(255, 255, 255); background-color: rgb(204, 0, 0);")
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(add_button.sizePolicy().hasHeightForWidth())
+        add_button.setSizePolicy(sizePolicy)
         save_button = QtWidgets.QPushButton("Save", self.filter_dialog)
         save_button.setStyleSheet("color: rgb(255, 255, 255); background-color: rgb(138, 226, 52);")
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(save_button.sizePolicy().hasHeightForWidth())
+        save_button.setSizePolicy(sizePolicy)
         hori.addWidget(add_button)
-        hori.addWidget(remove_button)
         hori.addWidget(save_button)
         self.vlay.addLayout(hori)
         self.filter_dialog.setLayout(self.vlay)
         add_button.clicked.connect(self.add_row)
-        remove_button.clicked.connect(self.remove_row)
         save_button.clicked.connect(self.save_filters)
         for data in self.filters:
             if not data:
@@ -183,8 +189,17 @@ class MainWindow(Ui_MainWindow):
             line.setText(val)
             hr.addWidget(cb)
             hr.addWidget(line)
-            self.row_list.append([cb, line, hr])
+            removeButton = QtWidgets.QPushButton()
+            removeButton.setText("-")
+            removeButton.clicked.connect(lambda: self.remove_row([cb, line, hr, removeButton]))
+            sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
+            sizePolicy.setHorizontalStretch(0)
+            sizePolicy.setVerticalStretch(0)
+            sizePolicy.setHeightForWidth(self.mainGroupBox.sizePolicy().hasHeightForWidth())
+            removeButton.setSizePolicy(sizePolicy)
+            hr.addWidget(removeButton)
             self.vlay.addLayout(hr)
+            self.row_list.append([cb, line, hr, removeButton])
 
     def add_row(self):
         hr = QtWidgets.QHBoxLayout()
@@ -200,19 +215,28 @@ class MainWindow(Ui_MainWindow):
         line.setStyleSheet("background-color: rgb(255, 255, 255);")
         hr.addWidget(cb)
         hr.addWidget(line)
+        removeButton = QtWidgets.QPushButton()
+        removeButton.setText("-")
+        removeButton.clicked.connect(lambda: self.remove_row([cb, line, hr, removeButton]))
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.mainGroupBox.sizePolicy().hasHeightForWidth())
+        removeButton.setSizePolicy(sizePolicy)
+        hr.addWidget(removeButton)
         self.vlay.addLayout(hr)
-        self.row_list.append([cb, line, hr])
+        self.row_list.append([cb, line, hr, removeButton])
 
-    def remove_row(self):
-        if self.row_list:
-            last = self.row_list.pop()
-            key = last[0].currentText()
-            if key in self.filters:
-                self.filters[key].remove(last[1].text())
-                if not self.filters[key]:
-                    del self.filters[key]
-            for l in last:
-                l.deleteLater()
+    def remove_row(self, last):
+        key = last[0].currentText()
+        if key in self.filters:
+            self.filters[key].remove(last[1].text())
+            if not self.filters[key]:
+                del self.filters[key]
+        for l in last:
+            l.deleteLater()
+        if last in self.row_list:
+            self.row_list.remove(last)
 
     def save_filters(self):
         filters = {}
@@ -233,7 +257,9 @@ class MainWindow(Ui_MainWindow):
         else:
             self.statusbar.showMessage("Running...", 3000)
             lines = self.linesInput.text()
-            mover = Mover(source, source_sheet, destination, destination_sheet, int(lines))
+            if lines:
+                lines = int(lines)
+            mover = Mover(source, source_sheet, destination, destination_sheet, lines)
             mover.move(self.filters, self.addMissingCheckBox.isChecked())
             self.statusbar.showMessage("Completed...", 3000)