class Main(QMainWindow): def __init__(self): QDialog.__init__(self) # Set up the user interface from Designer. self.ui = Ui_MainForm() self.ui.setupUi(self) # Let's set some attributes! # First, make the passwords hidden self.ui.downloadPasswordTxt.setEchoMode(QLineEdit.Password) self.ui.archivePasswordTxt.setEchoMode(QLineEdit.Password) # Make the start button default self.ui.startBtn.setDefault(True) # Connect up the buttons. self.ui.startBtn.clicked.connect(self.startDownload) #self.ui.cancelButton.clicked.connect(self.reject) # Make the window as small as possible! self.resize(self.minimumSizeHint()) self.setFixedSize(self.minimumSizeHint()) def startDownload(self): print "Start download trigger" pass
def __init__(self, parent=None): QtGui.QMainWindow.__init__(self, parent) centralWidget = QtGui.QWidget(self) self.ui = Ui_MainForm() self.ui.setupUi(centralWidget) self.setCentralWidget(centralWidget) self.__init_folder_list() self.__init_tray_icon() self.__init_shortcuts() self.__init_commands() self.ui.folderList.itemDoubleClicked.connect(self.toggle_subfolders) self.ui.addFolderButton.clicked.connect(self.__add_folder) self.ui.addCmdButton.clicked.connect(self.__add_cmd) self.ui.commandTree.doubleClicked.connect(self.__update_cmd) self.ui.removeCmdButton.clicked.connect(self.remove_selected_cmd) self.ui.removeFolderButton.clicked.connect(self.remove_selected_folder) self.cmdDialog = CmdDialog(self) self.cmdDialog.enableOverlay() self.cmdDialog.adjustSize()
class Main(QtGui.QMainWindow): def __init__(self, parent=None): QtGui.QMainWindow.__init__(self, parent) centralWidget = QtGui.QWidget(self) self.ui = Ui_MainForm() self.ui.setupUi(centralWidget) self.setCentralWidget(centralWidget) self.__init_folder_list() self.__init_tray_icon() self.__init_shortcuts() self.__init_commands() self.ui.folderList.itemDoubleClicked.connect(self.toggle_subfolders) self.ui.addFolderButton.clicked.connect(self.__add_folder) self.ui.addCmdButton.clicked.connect(self.__add_cmd) self.ui.commandTree.doubleClicked.connect(self.__update_cmd) self.ui.removeCmdButton.clicked.connect(self.remove_selected_cmd) self.ui.removeFolderButton.clicked.connect(self.remove_selected_folder) self.cmdDialog = CmdDialog(self) self.cmdDialog.enableOverlay() self.cmdDialog.adjustSize() def __update_cmd(self, *args): item = self.ui.commandTree.currentItem() parent = item.parent() if parent: self.cmdDialog._form.formatField.setText(parent.text(0)) self.cmdDialog._form.cmdField.setText(item.text(0)) self.cmdDialog.showBox(self.update_cmd) def update_cmd(self, format, cmd): item = self.ui.commandTree.currentItem() old_format = item.parent().text(0) old_cmd = item.text(0) if format == old_format and cmd != old_cmd: monitor.remove_command(str(format), str(old_cmd)) monitor.add_command(str(format), str(cmd)) elif format != old_format and cmd == old_cmd: monitor.remove_command(str(old_format), str(cmd)) monitor.add_command(str(format), str(cmd)) elif format != old_format and cmd != old_cmd: monitor.remove_command(str(old_format), str(old_cmd)) monitor.add_command(str(format), str(cmd)) self.__init_commands() print monitor.commands def __init_shortcuts(self): shortcut = QtGui.QShortcut(QtGui.QKeySequence("ESC"), self) shortcut.activated.connect(self.minimize) shortcut = QtGui.QShortcut(QtGui.QKeySequence("CTRL+PgDown"), self) shortcut.activated.connect(self.prev_tab) shortcut = QtGui.QShortcut(QtGui.QKeySequence("CTRL+PgUp"), self) shortcut.activated.connect(self.next_tab) def __init_folder_list(self): self.ui.folderList.clear() folder_list = monitor.folders for folder in folder_list: item = QtGui.QTreeWidgetItem(self.ui.folderList) item.setText(0, str(folder[1])) item.setText(1, folder[0]) def __init_commands(self): self.ui.commandTree.clear() qt = QtCore.Qt #flags = qt.ItemIsSelectable|qt.ItemIsEditable|qt.ItemIsDragEnabled| \ #qt.ItemIsDropEnabled|qt.ItemIsUserCheckable|qt.ItemIsEnabled flags = qt.ItemIsSelectable | qt.ItemIsUserCheckable | qt.ItemIsEnabled commands = monitor.commands for frm in commands.keys(): item = QtGui.QTreeWidgetItem(self.ui.commandTree, (frm,)) item.setFlags(flags) for cmd in commands[frm]: subitem = QtGui.QTreeWidgetItem(item, (cmd,)) subitem.setFlags(flags) def __init_tray_icon(self): icon = QtGui.QIcon(":/images/tick.png") self.__tray_icon = SystemTrayIcon(icon, self) self.__tray_icon.show() self.__tray_icon.activated.connect(self.activate) def __add_folder(self, folder): if not folder: folder = self.get_folder() if not folder: # ehehe bu ne lan return monitor.add_folder(str(folder)) # cast QString to Python string self.__init_folder_list() # TODO her degisiklikte yenilemek yerine en son yenileme? monitor.reset_monitor() def __add_cmd(self): self.cmdDialog.showBox(self.add_cmd) def remove_selected_cmd(self, *args): item = self.ui.commandTree.currentItem() parent = item.parent() if parent: # cast QStrings to Python strings monitor.remove_command(str(parent.text(0)), str(item.text(0))) else: monitor.remove_command(str(item.text(0))) self.__init_commands() def remove_selected_folder(self, *args): item = self.ui.folderList.currentItem() monitor.remove_folder(str(item.text(1))) self.__init_folder_list() def add_cmd(self, format, cmd): monitor.add_command(format, cmd) self.__init_commands() def append_log(self, string): self.ui.logTextEdit.append(string) def get_folder(self): filename = QtGui.QFileDialog.getExistingDirectory( self, "Select target directory", "~/", QtGui.QFileDialog.ShowDirsOnly | QtGui.QFileDialog.DontResolveSymlinks) return filename def prev_tab(self): self.ui.tabWidget.setCurrentIndex((self.ui.tabWidget.currentIndex() + 1) % self.ui.tabWidget.count()) def next_tab(self): self.ui.tabWidget.setCurrentIndex((self.ui.tabWidget.currentIndex() - 1) % self.ui.tabWidget.count()) def hideEvent(self, evt): self.minimize() def toggle_subfolders(self): item = self.ui.folderList.selectedItems()[0] b = item.text(0) item.setText(0, "False" if b == "True" else "True") monitor.toggle_folder_recursion(self.ui.folderList.selectedItems()[0].text(1)) monitor.reset_monitor() def minimize(self): self.hide() def activate(self): self.show() # minimize edildikten sonra tekrar gozukmesi icin gerekli # diger turlu, aciliyor ama arkaplanda kaliyor self.showNormal() def closeEvent(self, event): monitor.save_folders() monitor.save_commands()