import os
import os.path
import ui_generate_dialog
+import biaweb_exporter
class GenerateDialog (PyQt4.QtGui.QDialog, ui_generate_dialog.Ui_SiteGenerateDialog):
def __init__ (self, master, currentdb):
# 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)
+ if self.fulltextindex.isChecked ():
+ searchtype = True
+ else:
+ searchtype = False
+
+ # confirm whether to delete the destination tree and work afresh
+ ans = PyQt4.QtGui.QMessageBox.question (self, "Confirm",
+ "This will delete the destination tree completely \
+and recreate the website. Are you sure you wish to proceed?",
+ PyQt4.QtGui.QMessageBox.Yes, PyQt4.QtGui.QMessageBox.No)
+
+ # if confirmed
+ if ans == PyQt4.QtGui.QMessageBox.Yes:
+ # call the main exporter to do our work
+ ret = biaweb_exporter.generate_site (self.current_db, files_list, folder_list, searchtype)
+
+ # if failed to generate site or any part thereof
+ if ret == False:
+ PyQt4.QtGui.QMessageBox.critical (self, "Error",
+ "System or SQLite 3 error in generating website or parts thereof")
+ else:
+ PyQt4.QtGui.QMessageBox.information (self, "Success",
+ "Successfully generated website in destination path!")
+
# when folder add is clicked
def onFolderAdd (self):
folder_to_add = PyQt4.QtGui.QFileDialog.getExistingDirectory (self,