# Generate site dialog
import PyQt4
+import os
+import os.path
import ui_generate_dialog
class GenerateDialog (PyQt4.QtGui.QDialog, ui_generate_dialog.Ui_SiteGenerateDialog):
# 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