def __init__(self, parent): super(SchemesManagerWidget, self).__init__(parent, Qt.Dialog) self.setWindowTitle(translations.TR_EDITOR_SCHEMES) self.resize(700, 500) vbox = QVBoxLayout(self) self._tabs = QTabWidget() vbox.addWidget(self._tabs) # Footer hbox = QHBoxLayout() btn_close = QPushButton(self.tr('Close')) btnReload = QPushButton(self.tr("Reload")) hbox.addWidget(btn_close) hbox.addSpacerItem(QSpacerItem(1, 0, QSizePolicy.Expanding)) hbox.addWidget(btnReload) vbox.addLayout(hbox) self.overlay = ui_tools.Overlay(self) self.overlay.show() self._schemes = [] self._loading = True self.downloadItems = [] #Load Themes with Thread self.connect(btnReload, SIGNAL("clicked()"), self._reload_themes) self._thread = ui_tools.ThreadExecution(self.execute_thread) self.connect(self._thread, SIGNAL("finished()"), self.load_skins_data) self.connect(btn_close, SIGNAL('clicked()'), self.close) self._reload_themes()
def __init__(self,parent = None): """ Constructor """ QDialog.__init__(self,parent) self.setupUi(self) #center this window screen = QDesktopWidget().screenGeometry() size = self.geometry() self.move((screen.width()-size.width())/2, (screen.height()-size.height())/2) self.baseConfigItem={ "applicationPage":[QApplication.translate("ApplicationPage","Application"),getPath("iconDir","preferences-application.png"),"sklib.ui.cpages.applicationPage",None], "shortcutsPage":[QApplication.translate("ShortcutsPage","Shortcuts"),getPath("iconDir","preferences-shortcuts.png"),"sklib.ui.cpages.shortcutsPage","applicationPage"], } #read from plugins for plugin in PluginAdapter().new().getPlugins(): if hasattr(plugin,"getConfigPages"): ptems = plugin.getConfigPages() for pkey in ptems.keys(): if not self.baseConfigItem.__contains__(pkey): self.baseConfigItem[pkey]=ptems[pkey] #end plugin parse self.itmDict = {} self.setupTreeList() self.btn.button(QDialogButtonBox.Apply).setEnabled(False) QObject.connect(self.configItemList, SIGNAL("itemClicked (QTreeWidgetItem *,int)"),self.evt_click) QObject.connect(self.btn, SIGNAL("clicked (QAbstractButton *)"),self.evt_btn_click)
def __init__(self, parent, available): QWidget.__init__(self, parent) self._parent = parent self._available = available vbox = QVBoxLayout(self) self._table = ui_tools.CheckableHeaderTable(1, 2) self._table.setSelectionMode(QTableWidget.SingleSelection) self._table.removeRow(0) vbox.addWidget(self._table) ui_tools.load_table( self._table, (translations.TR_PROJECT_NAME, translations.TR_VERSION), _format_for_table(available)) self._table.setColumnWidth(0, 500) self._table.setSortingEnabled(True) self._table.setAlternatingRowColors(True) hbox = QHBoxLayout() btnInstall = QPushButton(translations.TR_INSTALL) btnInstall.setMaximumWidth(100) hbox.addWidget(btnInstall) hbox.addWidget(QLabel(translations.TR_NINJA_NEEDS_TO_BE_RESTARTED)) vbox.addLayout(hbox) self.connect(btnInstall, SIGNAL("clicked()"), self._install_plugins) self.connect(self._table, SIGNAL("itemSelectionChanged()"), self._show_item_description)
def __init__(self, suggested, parent=None): super(PythonDetectDialog, self).__init__(parent, Qt.Dialog) self.setMaximumSize(QSize(0, 0)) self.setWindowTitle("Configure Python Path") vbox = QVBoxLayout(self) msg_str = ("We have detected that you are using " "Windows,\nplease choose the proper " "Python application for you:") lblMessage = QLabel(self.tr(msg_str)) vbox.addWidget(lblMessage) self.listPaths = QListWidget() self.listPaths.setSelectionMode(QListWidget.SingleSelection) vbox.addWidget(self.listPaths) hbox = QHBoxLayout() hbox.addSpacerItem(QSpacerItem(1, 0, QSizePolicy.Expanding)) btnCancel = QPushButton(self.tr("Cancel")) btnAccept = QPushButton(self.tr("Accept")) hbox.addWidget(btnCancel) hbox.addWidget(btnAccept) vbox.addLayout(hbox) self.connect(btnAccept, SIGNAL("clicked()"), self._set_python_path) self.connect(btnCancel, SIGNAL("clicked()"), self.close) for path in suggested: self.listPaths.addItem(path) self.listPaths.setCurrentRow(0)
def setup_menu(): u""" Add a submenu to a view menu. Add a submenu that lists the available extra classes to the view menu, creating that menu when neccessary """ if extra_classes_list: try: mw.addon_view_menu except AttributeError: mw.addon_view_menu = QMenu(_(u"&View"), mw) mw.form.menubar.insertMenu(mw.form.menuTools.menuAction(), mw.addon_view_menu) mw.extra_class_submenu = QMenu(u"Mode (e&xtra class)", mw) mw.addon_view_menu.addMenu(mw.extra_class_submenu) action_group = QActionGroup(mw, exclusive=True) no_class_action = action_group.addAction( QAction('(none/standard)', mw, checkable=True)) no_class_action.setChecked(True) mw.extra_class_submenu.addAction(no_class_action) mw.connect(no_class_action, SIGNAL("triggered()"), lambda: set_extra_class(None)) for ecd in extra_classes_list: nn_class_action = action_group.addAction( QAction(ecd['display'], mw, checkable=True)) mw.extra_class_submenu.addAction(nn_class_action) mw.connect(nn_class_action, SIGNAL("triggered()"), lambda ec=ecd['class']: set_extra_class(ec))
def __evt_close_tab_click(self, index): """ because the first tab is the main window we'll show so we never close it . If the tab's content need save , we also remind the user. """ if 0 == index: return if hasattr(self.widget(index), "bufferon") and self.widget(index).bufferon(): reply = QMessageBox.question( self, "Save or not?", "Save your content first?\n%s" % self.tabText(index), QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel) if reply == QMessageBox.Yes: if hasattr(self.widget(index), "save"): self.widget(index).save() self.removeTab(index) Seeking().new().emit(SIGNAL('updateWindows()')) return "yes" elif reply == QMessageBox.No: self.removeTab(index) Seeking().new().emit(SIGNAL('updateWindows()')) return "no" elif reply == QMessageBox.Cancel: return "cancel" else: self.removeTab(index) Seeking().new().emit(SIGNAL('updateWindows()')) return "yes"
def __init__(self, parent=None): QTabWidget.__init__(self, parent) self.setTabBar(TabBarSupport(self)) self.setMovable(False) self.setTabsClosable(True) self.setDocumentMode(False) self.navigationButton = QPushButton( QIcon(getPath('iconDir', 'navigation.png')), "", self) self.navigationButton.setFlat(True) self.closeButton = QPushButton( QIcon(getPath('iconDir', 'navclose.png')), "", self) self.closeButton.setFlat(True) self.rightCornerWidget = QWidget(self) self.rightCornerWidgetLayout = QHBoxLayout(self.rightCornerWidget) self.rightCornerWidgetLayout.setMargin(0) self.rightCornerWidgetLayout.setSpacing(0) self.rightCornerWidgetLayout.addWidget(self.navigationButton) self.rightCornerWidgetLayout.addWidget(self.closeButton) self.setCornerWidget(self.rightCornerWidget, Qt.TopRightCorner) QObject.connect(self.navigationButton, SIGNAL("pressed()"), self.__evt_navigation) QObject.connect( self.closeButton, SIGNAL("clicked(bool)"), lambda: self.emit( SIGNAL("tabCloseRequested (int)"), self.currentIndex())) QObject.connect(self, SIGNAL("tabCloseRequested (int)"), self.__evt_close_tab_click) QObject.connect(self.tabBar(), SIGNAL('customContextMenuRequested(const QPoint &)'), self.__evt_showContextMenu)
def __init__(self, dlg): """ Constructor """ QWidget.__init__(self) self.setupUi(self) #center this window screen = QDesktopWidget().screenGeometry() size = self.geometry() self.move((screen.width() - size.width()) / 2, (screen.height() - size.height()) / 2) self.shortcutsList.header().setResizeMode(0, QHeaderView.ResizeToContents) self.dlg = dlg self.shortcutDialog = ShortcutDialog() self.__setupActions(QApplication.translate("default", "Global"), Seeking.new().getActions()) self.__setupPlugins() QObject.connect(self.shortcutsList,\ SIGNAL("itemDoubleClicked (QTreeWidgetItem *,int)"),\ self.__evt_dbclick) QObject.connect(self.shortcutsList, SIGNAL("itemChanged (QTreeWidgetItem *,int)"), self.__has_change) QObject.connect(self.searchEdit, SIGNAL("textChanged (const QString&)"), self.__search) QObject.connect(self.shortcutDialog, SIGNAL("shortcutChanged"), self.__shortcut)
def __init__(self, parent=None): super(MigrationWidget, self).__init__(parent, Qt.WindowStaysOnTopHint) self._migration, vbox, hbox = {}, QVBoxLayout(self), QHBoxLayout() lbl_title = QLabel(translations.TR_CURRENT_CODE) lbl_suggestion = QLabel(translations.TR_SUGGESTED_CHANGES) self.current_list, self.suggestion = QListWidget(), QPlainTextEdit() self.suggestion.setReadOnly(True) self.btn_apply = QPushButton(translations.TR_APPLY_CHANGES + " !") self.suggestion.setToolTip(translations.TR_SAVE_BEFORE_APPLY + " !") self.btn_apply.setToolTip(translations.TR_SAVE_BEFORE_APPLY + " !") # pack up all widgets hbox.addSpacerItem(QSpacerItem(1, 0, QSizePolicy.Expanding)) hbox.addWidget(self.btn_apply) vbox.addWidget(lbl_title) vbox.addWidget(self.current_list) vbox.addWidget(lbl_suggestion) vbox.addWidget(self.suggestion) vbox.addLayout(hbox) # connections self.connect(self.current_list, SIGNAL("itemClicked(QListWidgetItem*)"), self.load_suggestion) self.connect(self.btn_apply, SIGNAL("clicked()"), self.apply_changes) # registers IDE.register_service('tab_migration', self) ExplorerContainer.register_tab(translations.TR_TAB_MIGRATION, self)
def sort(self, col, order): """sort table by given column number col""" # print(">>> sort() col = ", col) if col != 0: self.emit(SIGNAL("layoutAboutToBeChanged()")) self.mylist = sorted(self.mylist, key=operator.itemgetter(col)) if order == Qt.DescendingOrder: self.mylist.reverse() self.emit(SIGNAL("layoutChanged()"))
def run(self): try: self.__runable(*self.__args, **self.__kwargs) self.emit(SIGNAL("threadEnded()")) except Exception as e: if hasattr(e, "message"): errmsg = e.message else: # Python 3 errmsg = str(e) self.emit(SIGNAL("threadFailed(QString)"), errmsg)
def inflate(self): """ Fill extra attributes of a shallow object """ if self.shallow: self.emit(SIGNAL("willInflatePluginMetadata()")) rdata = self.pypi.release_data(self.name, self.version) for each_arg, each_value in rdata.items(): setattr(self, each_arg, each_value) self.emit(SIGNAL("pluginMetadataInflated(PyQt_PyObject)"), self) self.shallow = False
def __init__(self, runable): self.__runable = runable self.__args = [] self.__kwargs = {} self.__finished = False self.__iserror = False self.__errmsg = "" super(AsyncRunner, self).__init__() self.connect(self, SIGNAL("threadEnded()"), self._success_finish) self.connect(self, SIGNAL("threadFailed(const QString&)"), self._fail_finish)
def _evt_start(self): self.textBrowser.setText("") self.startBtn.setDisabled(True) self.stopBtn.setDisabled(False) self.url = self.urlEdit.text() self.checks = [] for index in range(self.txtLayout.count()): qcb = self.txtLayout.itemAt(index).widget() if qcb is not None and isinstance(qcb, QCheckBox) and qcb.isChecked(): self.checks.append(qcb.windowTitle()) if self.url == "": self.emit(SIGNAL("feedback"), 0, 0, "Please supply a URL") self.startBtn.setDisabled(False) return if len(self.checks) is 0: self.emit(SIGNAL("feedback"), 0, 0, "Please supply a dictionary") self.startBtn.setDisabled(False) return self.preparedURL = [] for txt in self.checks: lines = open( getPath('pluginsDir', 'webscan/txt') + "/" + txt, "r").readlines() for line in lines: self.preparedURL.append(line.strip(' \t\n\r')) try: self.requestObject = urlparse(self.url) except Exception as ex: self.emit( SIGNAL("feedback"), 0, 0, "<span style='color:red'>An error occured :</span>%s" % str(ex)) self.emit( SIGNAL("feedback"), 0, 0, "<span style='color:red'>Exceptions :</span><pre>%s</pre>" % str(traceback.format_exc())) self.startBtn.setDisabled(False) return self.total = len(self.preparedURL) self.count = 1 self.lock = threading.Lock() self.threads = [] self.indexFlag = -10 for index in range(self.spinThreadNumber.value()): thread = ScannerThread(self, self.total, self.preparedURL, self.lock) thread.start() self.threads.append(thread)
def setupAction(self): QObject.connect(self.todonote.accessPoint(), SIGNAL("contentsChanged ()"), self.onbuffer) QObject.connect(self.todolist, SIGNAL("itemDoubleClicked (QTreeWidgetItem *,int)"), self.evt_dbclick) QObject.connect(self.todolist, SIGNAL("itemClicked (QTreeWidgetItem *,int)"), self.evt_click) QObject.connect(self.todolist, SIGNAL("itemActivated (QTreeWidgetItem *,int)"), self.evt_click)
def __init__(self, parent=None): QWebView.__init__(self, parent) self.page().setLinkDelegationPolicy(QWebPage.DontDelegateLinks) self.page().setContentEditable(True) QObject.connect(self, SIGNAL("loadFinished(bool)"), self.__evt_loadFinished) QObject.connect(self, SIGNAL("insertHTML(QString &)"), self.__evt_self_insert) QObject.connect(self, SIGNAL("changeColor(QString &,QString &)"), self.__evt_self_changecolor) self.__initActions()
def __init__(self, parent=None): QDialog.__init__(self, parent) self.setupUi(self) self.webview = parent #center this window screen = QDesktopWidget().screenGeometry() size = self.geometry() self.move((screen.width() - size.width()) / 2, (screen.height() - size.height()) / 2) self.preview.setHtml("<img src='../../images/logo.png'></img>", baseUrl=QUrl(os.getcwd() + "/support/image.html")) QObject.connect(self.btn, SIGNAL("clicked (QAbstractButton *)"), self.evt_btn_click) QObject.connect(self.uri, SIGNAL("textChanged (const QString&)"), self.evt_preview) QObject.connect(self.width, SIGNAL("valueChanged (const QString&)"), self.evt_preview) QObject.connect(self.height, SIGNAL("valueChanged (const QString&)"), self.evt_preview) QObject.connect(self.vspace, SIGNAL("valueChanged (const QString&)"), self.evt_preview) QObject.connect(self.hspace, SIGNAL("valueChanged (const QString&)"), self.evt_preview) QObject.connect(self.border, SIGNAL("valueChanged (const QString&)"), self.evt_preview) QObject.connect(self.alignment, SIGNAL("currentIndexChanged (int)"), self.evt_preview)
def run(self): packages = len(self.model.selectedPackages()) packagesSize = humanize(self.model.selectedPackagesSize()) try: extraPackages = 0 extraPackagesSize = '' if self.calculate_deps: extraPackages = len(self.model.extraPackages()) extraPackagesSize = humanize(self.model.extraPackagesSize()) self.emit( SIGNAL("selectedInfoChanged(int, QString, int, QString)"), packages, packagesSize, extraPackages, extraPackagesSize) except Exception, e: self.emit(SIGNAL("selectedInfoChanged(QString)"), unicode(e))
def __init__(self, parent=None): QDialog.__init__(self, parent) self.setupUi(self) self.webview = parent #center this window screen = QDesktopWidget().screenGeometry() size = self.geometry() self.move((screen.width() - size.width()) / 2, (screen.height() - size.height()) / 2) QObject.connect(self.btn, SIGNAL("clicked (QAbstractButton *)"), self.evt_btn_click) QObject.connect(self.widthtype, SIGNAL("currentIndexChanged (const QString&)"), self.evt_px_percent)
def __init__(self, parent=None, name=None, modal=False): """ Constructor """ QDialog.__init__(self, parent) if name: self.setObjectName(name) self.setModal(modal) self.setupUi(self) #center this window screen = QDesktopWidget().screenGeometry() size = self.geometry() self.move((screen.width() - size.width()) / 2, (screen.height() - size.height()) / 2) self.keyIndex = 0 self.keys = [0, 0, 0, 0] self.objectType = None self.connect(self.primaryClearButton, SIGNAL("clicked()"), self.__clear) self.shortcutsGroup.installEventFilter(self) self.primaryClearButton.installEventFilter(self) self.buttonBox.button(QDialogButtonBox.Ok).installEventFilter(self) self.buttonBox.button(QDialogButtonBox.Cancel).installEventFilter(self)
def __init__(self, parent): super(Plugins, self).__init__() self._preferences, vbox = parent, QVBoxLayout(self) label = QLabel(translations.TR_PREFERENCES_PLUGINS_MAIN) vbox.addWidget(label) self.connect(self._preferences, SIGNAL("savePreferences()"), self.save)
def evt_btn_click(self, btn): if btn == self.btn.button(QDialogButtonBox.Ok): rows = self.rows.value() columns = self.columns.value() if rows is 0 or columns is 0: return widthStr = "width=\"%d%s" % (self.width.value( ), "px\"" if self.widthtype.currentText() == "pixels" else "%\"") heightStr = "" if 0 == self.height.value( ) else "height=\"%d\"" % self.height.value() borderStr = "border=\"%d\"" % self.border.value() cellStr = "cellpadding=\"%d\" cellspacing=\"%d\"" % ( self.cellspacing.value(), self.cellpadding.value()) idStr = "" if "" == self.id.text( ) else "id=\"%s\"" % self.id.text() style = "" if "" == self.style.text( ) else "style=\"%s\"" % self.style.text() table = "<table %s %s %s %s %s %s>" % ( widthStr, heightStr, borderStr, cellStr, idStr, style) for r in range(0, rows): table += "<tr>" for c in range(0, columns): table += "<td> </td>" r + c table += "</tr>" table += "</table>" self.webview.emit(SIGNAL("insertHTML(QString &)"), table) else: pass
def mousePressEvent(self, event): if event.button() == Qt.LeftButton: self.richaction.webview.emit(SIGNAL("insertHTML(QString &)"), self.makeTableHtml()) self.richaction.menu().hide() else: self.richaction.menu().hide()
def __init__(self, page, parent=None): """ Constructor @param mainWindow reference to the main window (QMainWindow) @param parent parent widget of this dialog (QWidget) """ QWidget.__init__(self, parent) self.setupUi(self) self.__page = page self.wrapCheckBox.setChecked(True) self.closeButton.setIcon(QIcon(getPath('iconDir', 'heditor/close.png'))) self.findPrevButton.setIcon( QIcon(getPath('iconDir', 'heditor/pre.png'))) self.findNextButton.setIcon( QIcon(getPath('iconDir', 'heditor/next.png'))) self.__defaultBaseColor = \ self.input.palette().color(QPalette.Base) self.__defaultTextColor = \ self.input.palette().color(QPalette.Text) self.findHistory = [] self.havefound = False self.__findBackwards = False self.connect(self.input, SIGNAL("returnPressed()"), self.__findByReturnPressed)
def on_buttonBox_accepted(self): """ Private slot to handle the OK button press. """ self.hide() self.emit(SIGNAL('shortcutChanged'), QKeySequence(self.keyLabel.text()))
def __init__(self): """ (1) Add a tabWidget (2) Setup the main Window (3) Some basic event slot (4) read datas(menus , actions) """ QMainWindow.__init__(self) # attrs # Notice: These attributes can not be put outside init method self.__actions = {} self.__menus = {} self.__globalActionGroup = QActionGroup(self) #the main widget(Tab) that show all things self.tabs = MainTabWidget(self) self.setCentralWidget(self.tabs) view = SKMainTabShow(self, self.tabs) self.tabs.addTab(view, QIcon(getPath("iconDir", 'main.png')), QApplication.translate("default", "MainTab")) QObject.connect(self, SIGNAL("updateWindows()"), self.__updateWindows) self.__addBasicMenus() self.__addBasicActions()
def __init__(self, parent=None, id="~"): """ init """ QWidget.__init__(self, parent) self.setupUi(self) # center this window screen = QDesktopWidget().screenGeometry() size = self.geometry() self.move((screen.width() - size.width()) / 2, (screen.height() - size.height()) / 2) self.id = id self.flagBtn = RichFlagButton(self) self.linelayout.addWidget(self.flagBtn) self.desc = HtmlWYSIWYG() self.desc.setMinimumHeight(200) self.desclayout.addWidget(self.desc) if not self.id == "~": restore = YeahdocDatasSupply().bc_read1(self.id) self.flagBtn.setIcon(QIcon(getPath("iconDir", "yeahdoc/flag/%s" % str(restore['img'])))) self.flagBtn.setText(restore['img']) self.title.setText(restore['title']) self.desc.fill(restore['desc']) QObject.connect(self.btn, SIGNAL("clicked (QAbstractButton *)"), self.__evt_btn_click)
def __evt_self_insert(self, html): """ common insert command use html5 """ self.page().mainFrame().evaluateJavaScript( "document.execCommand('inserthtml','true','%s')" % html) self.page().emit(SIGNAL("contentsChanged ()"))
def execute(self,title,icon=None): """ This is used to determine whether the tab is there. By checking the tabs that already opened , see if there is no duplication of data (we use the 'type + id' approach to identity). If you already have the tab, then just jump directly to the appropriate page. Params: Title:The tab text Icon: The tab icon """ if not self.hasTabOne(self.keepme()): self.before() Seeking().new().overlay.show() #notice this function need overrider to avoid more expcel try: self.invoke() index = Seeking().new().tabs.addTab(self,title) Seeking().new().emit(SIGNAL('updateWindows()')) if icon: Seeking().new().tabs.setTabIcon(index,icon) Seeking().new().tabs.setCurrentIndex(index) Seeking().new().overlay.hidestop() except Exception as e: raise e self.close() self.after()
def __evt_richflag_menu_click(self, item): """ IF ICON CHANGED , save flag will be active . """ self.setIcon(QIcon(getPath("iconDir", "yeahdoc/flag/%s" % item))) self.setText(item) self.emit(SIGNAL("onbuffer()"))