Skip to content

Commit 409cd4a

Browse files
committed
Added separate button for folders
1 parent 9599a2a commit 409cd4a

File tree

3 files changed

+46
-12
lines changed

3 files changed

+46
-12
lines changed

main.ui

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -97,22 +97,36 @@
9797
<item>
9898
<layout class="QHBoxLayout" name="itemButtonLayout">
9999
<item>
100-
<widget class="QPushButton" name="addButton">
101-
<property name="toolTip">
102-
<string>Add packed lens files (.lns) files or unpacked lens folders</string>
103-
</property>
104-
<property name="text">
105-
<string>Add Lens Files/Folder</string>
106-
</property>
107-
</widget>
100+
<layout class="QHBoxLayout" name="horizontalLayout">
101+
<item>
102+
<widget class="QPushButton" name="addFilesButton">
103+
<property name="toolTip">
104+
<string>Add packed lens files (.lns) files</string>
105+
</property>
106+
<property name="text">
107+
<string>Add Files</string>
108+
</property>
109+
</widget>
110+
</item>
111+
<item>
112+
<widget class="QPushButton" name="addFolderButton">
113+
<property name="toolTip">
114+
<string>Add unpacked lens folder</string>
115+
</property>
116+
<property name="text">
117+
<string>Add Folder</string>
118+
</property>
119+
</widget>
120+
</item>
121+
</layout>
108122
</item>
109123
<item>
110124
<widget class="QPushButton" name="removeButton">
111125
<property name="toolTip">
112126
<string>Remove the selected files and folders</string>
113127
</property>
114128
<property name="text">
115-
<string>Remove Selected Items</string>
129+
<string>Remove Selected</string>
116130
</property>
117131
</widget>
118132
</item>

src/qt/main_widget.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ def __init__(self, parent=None):
1717

1818
uic.loadUi('main.ui', self)
1919

20-
self.addButton.clicked.connect(self.onAddButtonClicked)
20+
self.addFilesButton.clicked.connect(self.onAddFilesButtonClicked)
21+
self.addFolderButton.clicked.connect(self.onAddFolderButtonClicked)
2122
self.removeButton.clicked.connect(self.onRemoveButtonClicked)
2223
self.clearButton.clicked.connect(self.onClearButtonClicked)
2324
self.unpackButton.clicked.connect(self.onUnpackButtonClicked)
@@ -29,16 +30,23 @@ def __init__(self, parent=None):
2930

3031
self.toggleButtons()
3132

32-
def onAddButtonClicked(self):
33+
def onAddFilesButtonClicked(self):
3334
options = QFileDialog.Options()
3435
options |= QFileDialog.ReadOnly | QFileDialog.ExistingFile
35-
files, _ = QFileDialog.getOpenFileNames(self, "Select lens files and folder", "",
36+
files, _ = QFileDialog.getOpenFileNames(self, "Select lens files", "",
3637
"Lens files (*.lns);;All Files (*)", options=options)
3738
if not files:
3839
return
3940

4041
self.treeWidget.addFiles(files)
4142

43+
def onAddFolderButtonClicked(self):
44+
folder = QFileDialog.getExistingDirectory(self, "Select folder", "")
45+
if not folder:
46+
return
47+
48+
self.treeWidget.addFolders(folder)
49+
4250
def onRemoveButtonClicked(self):
4351
selectedFiles = self.treeWidget.selectedFiles()
4452
self.treeWidget.removeFiles(selectedFiles)

src/qt/my_tree_widget.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ def selectedFiles(self):
3838
return [os.path.normpath(item.text(0)) for item in self.selectedItems()]
3939

4040
def addFiles(self, files):
41+
if not isinstance(files, list):
42+
files = [files]
43+
4144
for file in files:
4245
file = os.path.normpath(file)
4346

@@ -54,7 +57,13 @@ def addFiles(self, files):
5457

5558
self.filesChanged.emit()
5659

60+
def addFolders(self, folders):
61+
return self.addFiles(folders)
62+
5763
def removeFiles(self, files):
64+
if not isinstance(files, list):
65+
files = [files]
66+
5867
for file in files:
5968
file = os.path.normpath(file)
6069
item = self._files.get(file) or self._folders.get(file)
@@ -67,3 +76,6 @@ def removeFiles(self, files):
6776
self._folders.pop(file, None)
6877

6978
self.filesChanged.emit()
79+
80+
def removeFolders(self, folders):
81+
return self.removeFiles(folders)

0 commit comments

Comments
 (0)