X-Git-Url: https://harishankar.org/repos/?p=biaweb_qt.git;a=blobdiff_plain;f=generate_dialog.py;h=d1882d2d355b7b71bfe4c9948e1e3f4ef6da3bb9;hp=0d7bbed827dca1ebc8cb7fbf63122751d3d5771c;hb=bfa2d7e7b048794a95590ee79ba41aa861835cfa;hpb=9321b80905bca48d49a6b12a4d463c268736b166 diff --git a/generate_dialog.py b/generate_dialog.py index 0d7bbed..d1882d2 100644 --- a/generate_dialog.py +++ b/generate_dialog.py @@ -2,6 +2,8 @@ # Generate site dialog import PyQt4 +import os +import os.path import ui_generate_dialog class GenerateDialog (PyQt4.QtGui.QDialog, ui_generate_dialog.Ui_SiteGenerateDialog): @@ -11,3 +13,78 @@ class GenerateDialog (PyQt4.QtGui.QDialog, ui_generate_dialog.Ui_SiteGenerateDia # set the database self.current_db = currentdb + + # to return the list of items from a tree widget + def get_list_from_tree (self, treewidget): + lstfiles = [] + iter = PyQt4.QtGui.QTreeWidgetItemIterator (treewidget) + + # iterate through the list of files + item = iter.value () + # while there is still a valid item + while item: + # get the text in columns 0 and 1 + src = str (item.text (0)) + dst = str (item.text (1)) + # add it to the list + lstfiles.append ( (src, dst) ) + # increase iterator by 1 + iter += 1 + item = iter.value () + + return lstfiles + + # when site generate button is clicked + def onSiteGenerate (self): + files_list = self.get_list_from_tree (self.additional_files) + folder_list = self.get_list_from_tree (self.additional_folders) + + # when folder add is clicked + def onFolderAdd (self): + folder_to_add = PyQt4.QtGui.QFileDialog.getExistingDirectory (self, + "Folder whose contents to add to destination", os.path.expanduser ("~")) + # if cancelled return + if not folder_to_add: + return + + dest_rel_path, ok = PyQt4.QtGui.QInputDialog.getText (self, "Desination", + "Copy to location (within destination path)") + if not ok: + return + + folderitem = PyQt4.QtGui.QTreeWidgetItem ([folder_to_add, dest_rel_path]) + self.additional_folders.addTopLevelItem (folderitem) + + # when folder remove is clicked + def onFolderRemove (self): + selitem = self.additional_folders.currentItem () + selindex = self.additional_folders.indexOfTopLevelItem (selitem) + # if none selected + if selindex == -1: + return + self.additional_folders.takeTopLevelItem (selindex) + + + # when file add is clicked + def onFileAdd (self): + file_to_add = PyQt4.QtGui.QFileDialog.getOpenFileName (self, "File to add to destination", + os.path.expanduser ("~")) + # if cancelled return + if not file_to_add: + return + dest_rel_path, ok = PyQt4.QtGui.QInputDialog.getText (self, "Destination", + "Copy to location (within destination path)") + if not ok: + return + + fileitem = PyQt4.QtGui.QTreeWidgetItem ([file_to_add, dest_rel_path]) + self.additional_files.addTopLevelItem (fileitem) + + # when file remove is clicked + def onFileRemove (self): + selitem = self.additional_files.currentItem () + selindex = self.additional_files.indexOfTopLevelItem (selitem) + # if none selected + if selindex == -1: + return + self.additional_files.takeTopLevelItem (selindex) \ No newline at end of file