def mouseMoveEvent(self, event): """ Detect mouser over indicator and highlight the current scope in the editor (up and down decoration arround the foldable text when the mouse is over an indicator). :param event: event """ super(FoldingPanel, self).mouseMoveEvent(event) th = TextHelper(self.editor) line = th.line_nbr_from_position(event.pos().y()) if line >= 0: block = FoldScope.find_parent_scope( self.editor.document().findBlockByNumber(line)) if TextBlockHelper.is_fold_trigger(block): if self._mouse_over_line is None: # mouse enter fold scope QtWidgets.QApplication.setOverrideCursor( QtGui.QCursor(QtCore.Qt.PointingHandCursor)) if self._mouse_over_line != block.blockNumber() and \ self._mouse_over_line is not None: # fold scope changed, a previous block was highlighter so # we quickly update our highlighting self._mouse_over_line = block.blockNumber() self._highlight_surrounding_scopes(block) else: # same fold scope, request highlight self._mouse_over_line = block.blockNumber() self._highlight_runner.request_job( self._highlight_surrounding_scopes, block) self._highight_block = block else: # no fold scope to highlight, cancel any pending requests self._highlight_runner.cancel_requests() self._mouse_over_line = None QtWidgets.QApplication.restoreOverrideCursor() self.repaint()
def update_actions(self): """ Updates the list of actions. """ self.clear() self.recent_files_actions[:] = [] for file in self.manager.get_recent_files(): action = QtWidgets.QAction(self) action.setText(os.path.split(file)[1]) action.setToolTip(file) action.setStatusTip(file) action.setData(file) action.setIcon(self.icon_provider.icon(QtCore.QFileInfo(file))) action.triggered.connect(self._on_action_triggered) self.addAction(action) self.recent_files_actions.append(action) self.addSeparator() action_clear = QtWidgets.QAction('Clear list', self) action_clear.triggered.connect(self.clear_recent_files) if self.clear_icon and len(self.clear_icon) == 2: action_clear.setIcon( QtGui.QIcon.fromTheme(self.clear_icon[0], QtGui.QIcon(self.clear_icon[1]))) self.addAction(action_clear)
def list_symbols(editor, block, character): """ Retuns a list of symbols found in the block text :param editor: code edit instance :param block: block to parse :param character: character to look for. """ text = block.text() symbols = [] cursor = QtGui.QTextCursor(block) cursor.movePosition(cursor.StartOfBlock) pos = text.find(character, 0) cursor.movePosition(cursor.Right, cursor.MoveAnchor, pos) while pos != -1: if not TextHelper(editor).is_comment_or_string(cursor): # skips symbols in string literal or comment info = ParenthesisInfo(pos, character) symbols.append(info) pos = text.find(character, pos + 1) cursor.movePosition(cursor.StartOfBlock) cursor.movePosition(cursor.Right, cursor.MoveAnchor, pos) return symbols
def _reset_stylesheet(self): """ Resets stylesheet""" self.setFont( QtGui.QFont(self._font_family, self._font_size + self._zoom_level)) flg_stylesheet = hasattr(self, '_flg_stylesheet') if QtWidgets.QApplication.instance().styleSheet() or flg_stylesheet: self._flg_stylesheet = True # On Window, if the application once had a stylesheet, we must # keep on using a stylesheet otherwise strange colors appear # see https://github.com/OpenCobolIDE/OpenCobolIDE/issues/65 # Also happen on plasma 5 try: plasma = os.environ['DESKTOP_SESSION'] == 'plasma' except KeyError: plasma = False if sys.platform == 'win32' or plasma: self.setStyleSheet('''QPlainTextEdit { background-color: %s; color: %s; } ''' % (self.background.name(), self.foreground.name())) else: # on linux/osx we just have to set an empty stylesheet to # cancel any previous stylesheet and still keep a correct # style for scrollbars self.setStyleSheet('') else: p = self.palette() p.setColor(QtGui.QPalette.Base, self.background) p.setColor(QtGui.QPalette.Text, self.foreground) p.setColor(QtGui.QPalette.Highlight, self.selection_background) p.setColor(QtGui.QPalette.HighlightedText, self.selection_foreground) self.setPalette(p) self.repaint()
def __init__(self, parent=None): self.ui = settings_page_interpreters_ui.Ui_Form() self.movie = QtGui.QMovie(':/icons/loader.gif') self.backend = BackendManager(self) super(PageInterpreters, self).__init__(self.ui, parent) self._create_virtualenv_thread = None self.ui.table_packages.itemSelectionChanged.connect( self._on_selected_package_changed) self.ui.lblMovie.setMovie(self.movie) self.ui.combo_interpreters.currentIndexChanged.connect( self._refresh_packages) self.menu_cfg = QtWidgets.QMenu(self.ui.bt_cfg) self.action_add_local = self.menu_cfg.addAction('add local') self.action_create_virtualenv = self.menu_cfg.addAction( 'create virtual env') self.action_remove_interpreter = self.menu_cfg.addAction('remove') self.ui.bt_cfg.setMenu(self.menu_cfg) self.ui.bt_install_package.setIcon(icons.list_add) self.ui.bt_uninstall_package.setIcon(icons.list_remove) self.ui.bt_upgrade_package.setIcon(icons.go_up) self.ui.bt_cfg.setIcon(icons.configure) self.action_add_local.setIcon(icons.list_add) self.action_remove_interpreter.setIcon(icons.list_remove) self.action_create_virtualenv.setIcon(icons.python_virtualenv) self._refresh_packages(0) self.action_add_local.triggered.connect(self._add_local) self.action_remove_interpreter.triggered.connect( self._remove_interpreter) self.action_create_virtualenv.triggered.connect( self._create_virtualenv) self.ui.bt_upgrade_package.clicked.connect(self._upgrade) self.ui.bt_uninstall_package.clicked.connect(self._uninstall) self.ui.bt_install_package.clicked.connect(self._install)
def _on_results_available(self, results): if len(results) > 500: # limit number of results (on very big file where a lots of # occurrences can be found, this would totally freeze the editor # during a few seconds, with a limit of 500 we can make sure # the editor will always remain responsive). results = results[:500] current = self.editor.textCursor().position() if len(results) > 1: for start, end in results: if start <= current <= end: continue deco = TextDecoration(self.editor.textCursor(), start_pos=start, end_pos=end) if self.underlined: deco.set_as_underlined(self._background) else: deco.set_background(QtGui.QBrush(self._background)) if self._foreground is not None: deco.set_foreground(self._foreground) deco.draw_order = 3 self.editor.decorations.append(deco) self._decorations.append(deco)
def setup_icons(self): """ Setup actions/buttons icons, loads them from the system icon theme on linux. """ iopen = QtGui.QIcon.fromTheme( 'document-open', QtGui.QIcon(':/ide-icons/rc/document-open.png')) isave = QtGui.QIcon.fromTheme( 'document-save', QtGui.QIcon(':/ide-icons/rc/document-save.png')) isave_as = QtGui.QIcon.fromTheme( 'document-save-as', QtGui.QIcon( ':/ide-icons/rc/document-save-as.png')) inew = QtGui.QIcon.fromTheme( 'document-new', QtGui.QIcon(':/ide-icons/rc/document-new.png')) issue = QtGui.QIcon.fromTheme('important', QtGui.QIcon( ':/ide-icons/rc/emblem-important.png')) icompile = QtGui.QIcon.fromTheme( 'application-x-executable', QtGui.QIcon( ':/ide-icons/rc/application-x-executable.png')) irun = QtGui.QIcon.fromTheme( 'media-playback-start', QtGui.QIcon( ':/ide-icons/rc/media-playback-start.png')) icancel = QtGui.QIcon.fromTheme('process-stop') ifullscreen = QtGui.QIcon.fromTheme( 'view-fullscreen', QtGui.QIcon( ':/ide-icons/rc/view-fullscreen.png')) iquit = QtGui.QIcon.fromTheme( 'window-close', QtGui.QIcon(':/ide-icons/rc/system-log-out.png')) iclear = QtGui.QIcon.fromTheme( 'edit-clear', QtGui.QIcon(':/ide-icons/rc/edit-clear.png')) ihelp = QtGui.QIcon.fromTheme( 'help-contents', QtGui.QIcon(':/ide-icons/rc/help.png')) ipreferences = QtGui.QIcon.fromTheme( 'preferences-system', QtGui.QIcon(':/ide-icons/rc/Preferences-system.png')) iabout = QtGui.QIcon.fromTheme( 'help-about', QtGui.QIcon(':/ide-icons/rc/dialog-information.png')) icon_report_bug = QtGui.QIcon.fromTheme('tools-report-bug') icon_lock = QtGui.QIcon.fromTheme('system-lock-screen', QtGui.QIcon( ':/ide-icons/rc/lock.png')) self.ui.btFSLock.setIcon(icon_lock) self.ui.actionPreferences.setIcon(ipreferences) self.ui.actionHelp.setIcon(ihelp) self.ui.actionClear.setIcon(iclear) self.ui.actionQuit.setIcon(iquit) self.ui.actionFullscreen.setIcon(ifullscreen) self.ui.actionOpen.setIcon(iopen) self.ui.btOpenFile.setIcon(iopen) self.ui.actionNew.setIcon(inew) self.ui.btNewFile.setIcon(inew) self.ui.actionSave.setIcon(isave) self.ui.actionSaveAs.setIcon(isave_as) self.ui.actionRun.setIcon(irun) self.ui.actionCancel.setIcon(icancel) self.ui.actionCompile.setIcon(icompile) self.ui.actionAbout.setIcon(iabout) self.ui.tabWidgetLogs.setTabIcon(0, icompile) self.ui.tabWidgetLogs.setTabIcon(1, issue) self.ui.tabWidgetLogs.setTabIcon(2, irun) self.ui.actionAbout.setMenuRole(QtWidgets.QAction.AboutRole) self.ui.actionPreferences.setMenuRole( QtWidgets.QAction.PreferencesRole) self.ui.actionQuit.setMenuRole(QtWidgets.QAction.QuitRole) self.ui.actionReport_a_bug.setIcon(icon_report_bug) if system.darwin: self.ui.menu.setTitle('Help')
def _get_format_from_color(self, color): fmt = QtGui.QTextCharFormat() fmt.setBackground(self._get_brush(color)) return fmt
def __init__(self, app): self.ui = win_prj_ui.Ui_MainWindow() super(ProjectWindow, self).__init__(self.ui, app) self.restore_state() self.ui.dockWidgetProgramOutput.hide() self.ui.tabWidget.dirty_changed.connect(self._on_dirty_changed) self.ui.tabWidget.register_code_edit(PyCodeEdit) self.ui.tabWidget.current_changed.connect( self._on_current_editor_changed) self.ui.tabWidget.last_tab_closed.connect(self._on_last_tab_closed) self.ui.fsTree.set_context_menu(PyFileSystemContextMenu(self)) self.ui.fsTree.file_deleted.connect(self._on_file_deleted) self.ui.fsTree.file_renamed.connect(self._on_file_renamed) self.ui.fsTree.file_created.connect(self._on_file_created) self.ui.fsTree.ignore_directories('.qidle') # Edit menu self.addActions(self.ui.menuFile.actions()) self.ui.actionConfigureRun.triggered.connect(self.configure_run) self.ui.actionRun.triggered.connect(self.on_action_run_triggered) self.ui.textEditPgmOutput.process_finished.connect( self._on_script_finished) self.ui.textEditPgmOutput.open_file_requested.connect( self._goto_requested) for a in self.createPopupMenu().actions(): if a.text() == 'Structure': a.setIcon(icons.class_browser) if a.text() == 'Python console': a.setIcon(icons.python_interpreter) if a.text() == 'Program output': a.setIcon( QtGui.QIcon.fromTheme( 'media-playback-start', QtGui.QIcon(':/icons/media-playback-start.png'))) self.ui.dockWidgetClassExplorer.setWindowIcon(icons.class_browser) self.ui.dockWidgetProgramOutput.setWindowIcon(icons.run) self.ui.dockWidgetFiles.setWindowIcon(icons.folder) self.ui.dockWidgetPyConsole.setWindowIcon(icons.python_interpreter) self.apply_preferences(show_panels=False) self.dock_manager_right.add_dock_widget(self.ui.dockWidgetFiles) self.dock_manager_right.add_dock_widget( self.ui.dockWidgetClassExplorer) self.dock_manager_bottom.add_dock_widget( self.ui.dockWidgetProgramOutput) self.dock_manager_bottom.add_dock_widget(self.ui.dockWidgetPyConsole) self.ui.classExplorer.set_editor(None) self.ui.fsTree.activated.connect(self._on_tv_activated) self.ui.fsTree.setHeaderHidden(True) for i in range(1, 4): self.ui.fsTree.hideColumn(i) self._on_current_editor_changed(None) self._lock_combo_run_configs_updates = False self._combo_run_configs = QtWidgets.QComboBox() self._combo_run_configs.setToolTip('Choose run configuration') self.ui.toolBarRun.insertWidget(self.ui.actionRun, self._combo_run_configs) self._combo_run_configs.activated.connect( self._on_run_config_activated)
def _refresh_decorations(self): for deco in self._decorations: self.editor.decorations.remove(deco) deco.set_background(QtGui.QBrush(self.background)) deco.set_outline(self._outline) self.editor.decorations.append(deco)
def reset(self, all_tabs=False): settings = Settings() # Editor if self.tabWidget.currentIndex() == 0 or all_tabs: self.cb_cursor_pos_in_bytes.setChecked( settings.show_cursor_pos_in_bytes) self.checkBoxShowErrors.setChecked(settings.show_errors) self.checkBoxViewLineNumber.setChecked(settings.display_lines) self.checkBoxHighlightCurrentLine.setChecked( settings.highlight_caret) self.checkBoxHighlightWhitespaces.setChecked( settings.show_whitespaces) self.spinBoxEditorTabLen.setValue(settings.tab_len) self.checkBoxEditorAutoIndent.setChecked( settings.enable_autoindent) self.spinBoxEditorCCTriggerLen.setValue( settings.code_completion_trigger_len) self.rbLowerCaseKwds.setChecked(settings.lower_case_keywords) self.rbUpperCaseKwds.setChecked(not settings.lower_case_keywords) self.lineEditCommentIndicator.setText(settings.comment_indicator) self.checkBoxSmartBackspace.setChecked( settings.enable_smart_backspace) self.checkBoxAutodetectEOL.setChecked(settings.autodetect_eol) self.comboBoxPreferredEOL.setCurrentIndex(settings.preferred_eol) self.comboCcFilterMode.setCurrentIndex( settings.completion_filter_mode) for pos, spin_box, color, picker in zip( settings.margin_positions, self._margin_spin_boxes, settings.margin_colors, self._margin_color_pickers): spin_box.setValue(pos + 1) picker.color = QtGui.QColor(color) # Style if self.tabWidget.currentIndex() == 1 or all_tabs: rb = (self.radioButtonColorDark if settings.dark_style else self.radioButtonColorWhite) rb.setChecked(True) index = self.comboBoxIconTheme.findText(QtGui.QIcon.themeName()) if index != -1: self.comboBoxIconTheme.setCurrentIndex(index) self.fontComboBox.setCurrentFont(QtGui.QFont(settings.font)) self.spinBoxFontSize.setValue(settings.font_size) self.listWidgetColorSchemes.clear() current_index = None self.listWidgetColorSchemes.clear() for style in PYGMENTS_STYLES: self.listWidgetColorSchemes.addItem(style) if style == settings.color_scheme: current_index = self.listWidgetColorSchemes.count() - 1 if current_index: self.listWidgetColorSchemes.setCurrentRow(current_index) # Run if self.tabWidget.currentIndex() == 3 or all_tabs: self.checkBoxRunExtTerm.setChecked(settings.external_terminal) self.lineEditRunTerm.setVisible(sys.platform != 'win32') self.lbl_external_terminal_command.setVisible( sys.platform != 'win32') self.lineEditRunTerm.setEnabled(settings.external_terminal) self.lineEditRunTerm.setText(settings.external_terminal_command) self.tw_run_env.clearContents() self.tw_run_env.setRowCount(0) for key, value in Settings().run_environemnt.items(): index = self.tw_run_env.rowCount() self.tw_run_env.insertRow(index) self.tw_run_env.setItem(index, 0, QtWidgets.QTableWidgetItem(key)) self.tw_run_env.setItem(index, 1, QtWidgets.QTableWidgetItem(value)) self.edit_working_dir.setText(settings.working_dir) # compiler if self.tabWidget.currentIndex() == 2 or all_tabs: self.cbAutoDetectSublmodules.setChecked( Settings().autodetect_submodules) self.cb_copy_runtime_dlls.setVisible(sys.platform == 'win32') self.cb_copy_runtime_dlls.setChecked(Settings().copy_runtime_dlls) self.lineEditOutputDirectory.setText(Settings().output_directory) self.lineEditCobcExts.setText(';'.join(Settings().cobc_extensions)) self.checkBoxFreeFormat.setChecked(settings.free_format) self.comboBoxStandard.setCurrentIndex(int(settings.cobol_standard)) self.lineEditCompilerPath.setText(settings.compiler_path) flags = Settings().compiler_flags self.cb_debugging_line.setChecked( self.cb_debugging_line.text() in flags) self.cb_ftrace.setChecked( self.cb_ftrace.text().replace('&', '') in flags) self.cb_ftraceall.setChecked( self.cb_ftraceall.text().replace('&', '') in flags) self.cb_g.setChecked(self.cb_g.text().replace('&', '') in flags) self.cb_static.setChecked( self.cb_static.text().replace('&', '') in flags) self.cb_debug.setChecked( self.cb_debug.text().replace('&', '') in flags) self.cb_w.setChecked(self.cb_w.text().replace('&', '') in flags) self.cb_wall.setChecked( self.cb_wall.text().replace('&', '') in flags) for v in self.flags_in_checkbox: try: flags.remove(v) except ValueError: pass self.lineEditLibs.setText(settings.libraries) self.listWidgetLibPaths.addItems([ pth for pth in settings.library_search_path.split(';') if pth ]) self.listWidgetCopyPaths.addItems( [pth for pth in settings.copybook_paths.split(';') if pth]) self.le_compiler_flags.setText(' '.join(flags)) if system.windows: self.lineEditVCVARS.setText(settings.vcvarsall) self.combo_arch.setCurrentIndex(1 if settings.vcvarsall_arch == 'x64' else 0) self.PATH.setText(settings.path) self.cbPATH.setChecked(settings.path_enabled) self.COB_CONFIG_DIR.setText(settings.cob_config_dir) self.cbCOB_CONFIG_DIR.setChecked(settings.cob_config_dir_enabled) self.COB_COPY_DIR.setText(settings.cob_copy_dir) self.cbCOB_COPY_DIR.setChecked(settings.cob_copy_dir_enabled) self.COB_INCLUDE_PATH.setText(settings.cob_include_path) self.cbCOB_INCLUDE_PATH.setChecked( settings.cob_include_path_enabled) self.COB_LIB_PATH.setText(settings.cob_lib_path) self.cbCOB_LIB_PATH.setChecked(settings.cob_lib_path_enabled) # SQL Cobol if self.tabWidget.currentIndex() == 4 or all_tabs: self.lineEditDbpreExts.setText(';'.join( Settings().dbpre_extensions)) self.lineEditDbpre.setText(settings.dbpre) self.lineEditDbpreFramework.setText(settings.dbpre_framework) self.lineEditCobmysqlapi.setText(settings.cobmysqlapi) self.lineEditDBHOST.setText(settings.dbhost) self.lineEditDBUSER.setText(settings.dbuser) self.lineEditDBPASSWD.setText(settings.dbpasswd) self.lineEditDBNAME.setText(settings.dbname) self.lineEditDBPORT.setText(settings.dbport) self.lineEditDBSOCKET.setText(settings.dbsocket) self.labelDbpreVersion.setText(compilers.DbpreCompiler( ).get_version() if Settings().dbpre != '' else '') self.lineEditESQLOC.setText(settings.esqloc) self.lineEditesqlOcExts.setText(';'.join( Settings().esqloc_extensions))
def get_new_user_actions(self): self.action_new_file = QtWidgets.QAction('COBOL file', self) self.action_new_file.setIcon( QtGui.QIcon(':/ide-icons/rc/cobol-mimetype.png')) self.action_new_file.triggered.connect(self._on_new_file_triggered) return [self.action_new_file]
def test_selection_foreground(editor): assert editor.selection_foreground.name() editor.selection_foreground = QtGui.QColor("#FF0000") assert editor.selection_foreground.name() == QtGui.QColor( "#FF0000").name()
def __init__(self): super(MarginsMode, self).__init__() self._positions = [7, 11, 72, 79] self._colors = [QtGui.QColor('red') for _ in range(4)] self._pens = [QtGui.QPen(c) for c in self._colors]
def setupUi(self, SearchPanel): SearchPanel.setObjectName("SearchPanel") SearchPanel.resize(884, 90) SearchPanel.setStyleSheet("") self.verticalLayout = QtWidgets.QVBoxLayout(SearchPanel) self.verticalLayout.setContentsMargins(0, 0, 0, 0) self.verticalLayout.setSpacing(0) self.verticalLayout.setObjectName("verticalLayout") self.frame = QtWidgets.QFrame(SearchPanel) self.frame.setFrameShape(QtWidgets.QFrame.NoFrame) self.frame.setFrameShadow(QtWidgets.QFrame.Raised) self.frame.setObjectName("frame") self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.frame) self.verticalLayout_2.setContentsMargins(9, 9, 9, 9) self.verticalLayout_2.setSpacing(9) self.verticalLayout_2.setObjectName("verticalLayout_2") self.widgetSearch = QtWidgets.QWidget(self.frame) self.widgetSearch.setObjectName("widgetSearch") self.horizontalLayout = QtWidgets.QHBoxLayout(self.widgetSearch) self.horizontalLayout.setContentsMargins(0, 0, 0, 0) self.horizontalLayout.setObjectName("horizontalLayout") self.labelSearch = QtWidgets.QLabel(self.widgetSearch) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.labelSearch.sizePolicy().hasHeightForWidth()) self.labelSearch.setSizePolicy(sizePolicy) self.labelSearch.setMinimumSize(QtCore.QSize(0, 0)) self.labelSearch.setMaximumSize(QtCore.QSize(18, 18)) self.labelSearch.setText("") self.labelSearch.setPixmap(QtGui.QPixmap(":/pycode-icons/rc/edit-find.png")) self.labelSearch.setScaledContents(True) self.labelSearch.setObjectName("labelSearch") self.horizontalLayout.addWidget(self.labelSearch) self.lineEditSearch = PromptLineEdit(self.widgetSearch) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.lineEditSearch.sizePolicy().hasHeightForWidth()) self.lineEditSearch.setSizePolicy(sizePolicy) self.lineEditSearch.setMinimumSize(QtCore.QSize(200, 0)) self.lineEditSearch.setObjectName("lineEditSearch") self.horizontalLayout.addWidget(self.lineEditSearch) self.toolButtonPrevious = QtWidgets.QToolButton(self.widgetSearch) self.toolButtonPrevious.setText("") icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(":/pyqode_icons/rc/go-up.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.toolButtonPrevious.setIcon(icon) self.toolButtonPrevious.setObjectName("toolButtonPrevious") self.horizontalLayout.addWidget(self.toolButtonPrevious) self.toolButtonNext = QtWidgets.QToolButton(self.widgetSearch) self.toolButtonNext.setText("") icon1 = QtGui.QIcon() icon1.addPixmap(QtGui.QPixmap(":/pycode-icons/rc/go-down.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.toolButtonNext.setIcon(icon1) self.toolButtonNext.setObjectName("toolButtonNext") self.horizontalLayout.addWidget(self.toolButtonNext) self.checkBoxRegex = QtWidgets.QCheckBox(self.widgetSearch) self.checkBoxRegex.setObjectName("checkBoxRegex") self.horizontalLayout.addWidget(self.checkBoxRegex) self.checkBoxCase = QtWidgets.QCheckBox(self.widgetSearch) self.checkBoxCase.setStyleSheet("") self.checkBoxCase.setObjectName("checkBoxCase") self.horizontalLayout.addWidget(self.checkBoxCase) self.checkBoxWholeWords = QtWidgets.QCheckBox(self.widgetSearch) self.checkBoxWholeWords.setObjectName("checkBoxWholeWords") self.horizontalLayout.addWidget(self.checkBoxWholeWords) self.checkBoxInSelection = QtWidgets.QCheckBox(self.widgetSearch) self.checkBoxInSelection.setObjectName("checkBoxInSelection") self.horizontalLayout.addWidget(self.checkBoxInSelection) spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem) self.labelMatches = QtWidgets.QLabel(self.widgetSearch) self.labelMatches.setObjectName("labelMatches") self.horizontalLayout.addWidget(self.labelMatches) self.toolButtonClose = QtWidgets.QToolButton(self.widgetSearch) self.toolButtonClose.setText("") icon2 = QtGui.QIcon() icon2.addPixmap(QtGui.QPixmap(":/pycode-icons/rc/close.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.toolButtonClose.setIcon(icon2) self.toolButtonClose.setObjectName("toolButtonClose") self.horizontalLayout.addWidget(self.toolButtonClose) self.verticalLayout_2.addWidget(self.widgetSearch) self.widgetReplace = QtWidgets.QWidget(self.frame) self.widgetReplace.setObjectName("widgetReplace") self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.widgetReplace) self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0) self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.labelReplace = QtWidgets.QLabel(self.widgetReplace) self.labelReplace.setMaximumSize(QtCore.QSize(18, 18)) self.labelReplace.setText("") self.labelReplace.setPixmap(QtGui.QPixmap(":/pycode-icons/rc/edit-find-replace.png")) self.labelReplace.setScaledContents(True) self.labelReplace.setObjectName("labelReplace") self.horizontalLayout_2.addWidget(self.labelReplace) self.lineEditReplace = PromptLineEdit(self.widgetReplace) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.lineEditReplace.sizePolicy().hasHeightForWidth()) self.lineEditReplace.setSizePolicy(sizePolicy) self.lineEditReplace.setMinimumSize(QtCore.QSize(200, 0)) self.lineEditReplace.setObjectName("lineEditReplace") self.horizontalLayout_2.addWidget(self.lineEditReplace) self.toolButtonReplace = QtWidgets.QToolButton(self.widgetReplace) self.toolButtonReplace.setObjectName("toolButtonReplace") self.horizontalLayout_2.addWidget(self.toolButtonReplace) self.toolButtonReplaceAll = QtWidgets.QToolButton(self.widgetReplace) self.toolButtonReplaceAll.setObjectName("toolButtonReplaceAll") self.horizontalLayout_2.addWidget(self.toolButtonReplaceAll) spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_2.addItem(spacerItem1) self.lineEditReplace.raise_() self.toolButtonReplace.raise_() self.toolButtonReplaceAll.raise_() self.labelReplace.raise_() self.verticalLayout_2.addWidget(self.widgetReplace) self.verticalLayout.addWidget(self.frame) self.actionSearch = QtWidgets.QAction(SearchPanel) icon = QtGui.QIcon.fromTheme("edit-find") self.actionSearch.setIcon(icon) self.actionSearch.setIconVisibleInMenu(True) self.actionSearch.setObjectName("actionSearch") self.actionActionSearchAndReplace = QtWidgets.QAction(SearchPanel) icon = QtGui.QIcon.fromTheme("edit-find-replace") self.actionActionSearchAndReplace.setIcon(icon) self.actionActionSearchAndReplace.setIconVisibleInMenu(True) self.actionActionSearchAndReplace.setObjectName("actionActionSearchAndReplace") self.actionFindNext = QtWidgets.QAction(SearchPanel) icon = QtGui.QIcon.fromTheme("go-down") self.actionFindNext.setIcon(icon) self.actionFindNext.setIconVisibleInMenu(True) self.actionFindNext.setObjectName("actionFindNext") self.actionFindPrevious = QtWidgets.QAction(SearchPanel) icon = QtGui.QIcon.fromTheme("go-up") self.actionFindPrevious.setIcon(icon) self.actionFindPrevious.setIconVisibleInMenu(True) self.actionFindPrevious.setObjectName("actionFindPrevious") self.retranslateUi(SearchPanel) QtCore.QMetaObject.connectSlotsByName(SearchPanel) SearchPanel.setTabOrder(self.lineEditSearch, self.lineEditReplace) SearchPanel.setTabOrder(self.lineEditReplace, self.toolButtonPrevious) SearchPanel.setTabOrder(self.toolButtonPrevious, self.toolButtonNext) SearchPanel.setTabOrder(self.toolButtonNext, self.checkBoxCase) SearchPanel.setTabOrder(self.checkBoxCase, self.checkBoxWholeWords) SearchPanel.setTabOrder(self.checkBoxWholeWords, self.toolButtonReplace) SearchPanel.setTabOrder(self.toolButtonReplace, self.toolButtonReplaceAll) SearchPanel.setTabOrder(self.toolButtonReplaceAll, self.toolButtonClose)
def on_install(self, editor): self._create_completer() self._completer.setModel(QtGui.QStandardItemModel()) self._helper = TextHelper(editor) Mode.on_install(self, editor)
def apply_color_scheme(self, color_scheme): super(PyInteractiveConsole, self).apply_color_scheme(color_scheme) if color_scheme.background.lightness() < 128: self._module_color = QtGui.QColor('#0681e0') else: self._module_color = QtGui.QColor('blue')
def textRect(self, text): textSize = QtGui.QFontMetrics(self.font()).size(0, text) return QtCore.QRect(QtCore.QPoint(), textSize)
def test_whitespaces_foreground(editor): assert editor.whitespaces_foreground.name() editor.whitespaces_foreground = QtGui.QColor("#FF0000") assert editor.whitespaces_foreground.name() == QtGui.QColor( "#FF0000").name()
def __init__(self): Mode.__init__(self) self._margin_pos = 79 self._color = QtGui.QColor('red') self._pen = QtGui.QPen(self._color)
def test_focus_out(editor): editor.save_on_focus_out = True editor.focusOutEvent(QtGui.QFocusEvent(QtCore.QEvent.FocusOut))
def setupUi(self, Dialog): Dialog.setObjectName("Dialog") Dialog.resize(356, 180) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(":/ide-icons/rc/silex-64x64.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) Dialog.setWindowIcon(icon) self.verticalLayout = QtWidgets.QVBoxLayout(Dialog) self.verticalLayout.setObjectName("verticalLayout") self.formLayout = QtWidgets.QFormLayout() self.formLayout.setObjectName("formLayout") self.label = QtWidgets.QLabel(Dialog) self.label.setObjectName("label") self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label) self.comboBoxType = QtWidgets.QComboBox(Dialog) self.comboBoxType.setObjectName("comboBoxType") self.comboBoxType.addItem("") self.comboBoxType.addItem("") self.comboBoxType.addItem("") self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.comboBoxType) self.labelDir = QtWidgets.QLabel(Dialog) self.labelDir.setObjectName("labelDir") self.formLayout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.labelDir) self.horizontalLayout = QtWidgets.QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") self.lineEditPath = QtWidgets.QLineEdit(Dialog) self.lineEditPath.setObjectName("lineEditPath") self.horizontalLayout.addWidget(self.lineEditPath) self.toolButton = QtWidgets.QToolButton(Dialog) self.toolButton.setObjectName("toolButton") self.horizontalLayout.addWidget(self.toolButton) self.formLayout.setLayout(2, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout) self.labelName = QtWidgets.QLabel(Dialog) self.labelName.setObjectName("labelName") self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.labelName) self.horizontalLayout_2 = QtWidgets.QHBoxLayout() self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.lineEditName = QtWidgets.QLineEdit(Dialog) self.lineEditName.setObjectName("lineEditName") self.horizontalLayout_2.addWidget(self.lineEditName) self.comboBoxExtension = QtWidgets.QComboBox(Dialog) self.comboBoxExtension.setObjectName("comboBoxExtension") self.horizontalLayout_2.addWidget(self.comboBoxExtension) self.formLayout.setLayout(1, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout_2) self.verticalLayout.addLayout(self.formLayout) self.buttonBox = QtWidgets.QDialogButtonBox(Dialog) self.buttonBox.setOrientation(QtCore.Qt.Horizontal) self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel | QtWidgets.QDialogButtonBox.Ok) self.buttonBox.setCenterButtons(False) self.buttonBox.setObjectName("buttonBox") self.verticalLayout.addWidget(self.buttonBox) self.retranslateUi(Dialog) self.buttonBox.accepted.connect(Dialog.accept) self.buttonBox.rejected.connect(Dialog.reject) QtCore.QMetaObject.connectSlotsByName(Dialog) Dialog.setTabOrder(self.buttonBox, self.comboBoxType) Dialog.setTabOrder(self.comboBoxType, self.lineEditName) Dialog.setTabOrder(self.lineEditName, self.comboBoxExtension) Dialog.setTabOrder(self.comboBoxExtension, self.lineEditPath) Dialog.setTabOrder(self.lineEditPath, self.toolButton)
def __init__(self, parent): super().__init__( parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint | QtCore.Qt.WindowCloseButtonHint) self.setupUi(self) self._help_dlg = None themes = system.icon_themes() if themes: self.comboBoxIconTheme.addItems(themes) else: self.comboBoxIconTheme.hide() self.lblIconTheme.hide() self.tabWidget.setTabIcon( 0, QtGui.QIcon.fromTheme( 'accessories-text-editor', QtGui.QIcon(':/ide-icons/rc/cobol-mimetype.png'))) theme = 'application-x-executable' if QtGui.QIcon.hasThemeIcon('run-build'): theme = 'run-build' self.tabWidget.setTabIcon( 2, QtGui.QIcon.fromTheme( theme, QtGui.QIcon(':/ide-icons/rc/application-x-executable.png'))) self.tabWidget.setTabIcon( 1, QtGui.QIcon.fromTheme( 'applications-graphics', QtGui.QIcon(':/ide-icons/rc/applications-graphics.png'))) self.tabWidget.setTabIcon( 3, QtGui.QIcon.fromTheme( 'media-playback-start', QtGui.QIcon(':/ide-icons/rc/media-playback-start.png'))) icon_add = QtGui.QIcon.fromTheme( 'list-add', QtGui.QIcon(':/ide-icons/rc/list-add.png')) icon_remove = QtGui.QIcon.fromTheme( 'list-remove', QtGui.QIcon(':/ide-icons/rc/list-remove.png')) icon_open_folder = QtGui.QIcon.fromTheme( 'folder-open', QtGui.QIcon(':/ide-icons/rc/document-open.png')) icon_clear = QtGui.QIcon.fromTheme( 'edit-clear', QtGui.QIcon(':/ide-icons/rc/edit-clear.png')) self.bt_add_run_env.setIcon(icon_add) self.bt_rm_run_env.setIcon(icon_remove) self.bt_clear_run_env.setIcon(icon_clear) self.btAddAbsoluteCopyPath.setIcon(icon_open_folder) self.btAddRelativeCopyPath.setIcon(icon_add) self.btRemoveCopyPath.setIcon(icon_remove) self.toolButtonAddLibPath.setIcon(icon_open_folder) self.toolButtonAddRelativeLibPath.setIcon(icon_add) self.toolButtonRemoveLibPath.setIcon(icon_remove) self.toolButtonCheckCompiler.setIcon( QtGui.QIcon.fromTheme( 'emblem-checked', QtGui.QIcon(':/ide-icons/rc/emblem-checked.png'))) self.buttonBox.button(self.buttonBox.Reset).clicked.connect(self.reset) self.buttonBox.button(self.buttonBox.RestoreDefaults).clicked.connect( self.restore_defaults) self.checkBoxRunExtTerm.toggled.connect( self.lineEditRunTerm.setEnabled) self.listWidgetColorSchemes.currentItemChanged.connect( self.update_color_scheme_preview) self.plainTextEdit.setPlainText(DEFAULT_TEMPLATE, '', '') self.lineEditDbpre.setReadOnly(True) self.lineEditDbpreFramework.setReadOnly(True) self.lineEditCobmysqlapi.setReadOnly(True) self.toolButtonDbpre.clicked.connect(self._select_dbpre) self.toolButtonDbpreFramework.clicked.connect( self._select_dbpre_framework) self.toolButtonCobMySqlApiPath.clicked.connect( self._select_cobmysqlapi) self.checkBoxShowDbPass.stateChanged.connect( self._on_show_pass_state_changed) self.toolButtonVCVARS.clicked.connect(self._select_vcvarsall) self.toolButtonCustomCompilerPath.clicked.connect( self._select_custom_compiler_path) self.toolButtonAddLibPath.clicked.connect(self._add_lib_path) self.toolButtonAddRelativeLibPath.clicked.connect( self._add_rel_lib_path) self.toolButtonRemoveLibPath.clicked.connect(self._rm_lib_path) self.btAddAbsoluteCopyPath.clicked.connect(self._add_copy_path) self.btAddRelativeCopyPath.clicked.connect(self._add_rel_copy_path) self.btRemoveCopyPath.clicked.connect(self._rm_copy_path) self.toolButtonESQLOC.clicked.connect(self._select_esqloc) self.btCompilerFlagsHelp.clicked.connect(self._show_gnu_cobol_help) if not system.windows: self.labelVCVARS.hide() self.lineEditVCVARS.hide() self.toolButtonVCVARS.hide() self.combo_arch.hide() self.stackedWidgetSQL.setCurrentIndex(0) else: self.stackedWidgetSQL.setCurrentIndex(1) self.toolButtonCheckCompiler.clicked.connect(self._check_compiler) self.cbPATH.stateChanged.connect(self.PATH.setEnabled) self.cbCOB_CONFIG_DIR.stateChanged.connect( self.COB_CONFIG_DIR.setEnabled) self.cbCOB_COPY_DIR.stateChanged.connect(self.COB_COPY_DIR.setEnabled) self.cbCOB_INCLUDE_PATH.stateChanged.connect( self.COB_INCLUDE_PATH.setEnabled) self.cbCOB_LIB_PATH.stateChanged.connect(self.COB_LIB_PATH.setEnabled) self.PATH.setEnabled(self.cbPATH.isChecked()) self.COB_CONFIG_DIR.setEnabled(self.cbCOB_CONFIG_DIR.isChecked()) self.COB_COPY_DIR.setEnabled(self.cbCOB_COPY_DIR.isChecked()) self.COB_INCLUDE_PATH.setEnabled(self.cbCOB_INCLUDE_PATH.isChecked()) self.COB_LIB_PATH.setEnabled(self.cbCOB_LIB_PATH.isChecked()) self.bt_add_run_env.clicked.connect(self._add_run_env_variable) self.bt_rm_run_env.clicked.connect(self._rm_run_env_variable) self.bt_clear_run_env.clicked.connect(self._clear_run_env) self._margin_spin_boxes = [ self.spin_box_margin_1, self.spin_box_margin_2, self.spin_box_margin_3, self.spin_box_margin_4 ] self._margin_color_pickers = [ self.color_picker_1, self.color_picker_2, self.color_picker_3, self.color_picker_4 ] self.bt_working_dir.clicked.connect(self._select_working_dir) self.initial_settings = Settings().export_to_dict() self.reset(all_tabs=True)
def test_background(editor): mode = get_mode(editor) assert mode.background.name() == '#ccffcc' mode.background = QtGui.QColor('#404040') assert mode.background.name() == '#404040'
def _init_style(self): self._bg = QtGui.QColor('yellow') self._outline = QtGui.QPen(QtGui.QColor('gray'), 1)
def test_foreground(editor): mode = get_mode(editor) assert mode.foreground is None mode.foreground = QtGui.QColor('#202020') assert mode.foreground.name() == '#202020'
def setupUi(self, Dialog): Dialog.setObjectName("Dialog") Dialog.resize(933, 539) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(":/icons/Preferences-system.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) Dialog.setWindowIcon(icon) self.verticalLayout = QtWidgets.QVBoxLayout(Dialog) self.verticalLayout.setObjectName("verticalLayout") self.horizontalLayout = QtWidgets.QHBoxLayout() self.horizontalLayout.setContentsMargins(-1, -1, 0, -1) self.horizontalLayout.setObjectName("horizontalLayout") self.categories = QtWidgets.QTreeWidget(Dialog) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.categories.sizePolicy().hasHeightForWidth()) self.categories.setSizePolicy(sizePolicy) self.categories.setMinimumSize(QtCore.QSize(250, 0)) self.categories.setObjectName("categories") item_0 = QtWidgets.QTreeWidgetItem(self.categories) icon = QtGui.QIcon.fromTheme("preferences-system") item_0.setIcon(0, icon) item_0 = QtWidgets.QTreeWidgetItem(self.categories) icon = QtGui.QIcon.fromTheme("accessories-text-editor") item_0.setIcon(0, icon) item_1 = QtWidgets.QTreeWidgetItem(item_0) icon = QtGui.QIcon.fromTheme("applications-graphics") item_1.setIcon(0, icon) item_1 = QtWidgets.QTreeWidgetItem(item_0) icon = QtGui.QIcon.fromTheme("network-wired") item_1.setIcon(0, icon) item_0 = QtWidgets.QTreeWidgetItem(self.categories) icon1 = QtGui.QIcon() icon1.addPixmap(QtGui.QPixmap(":/icons/interpreter-sys.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) item_0.setIcon(0, icon1) self.categories.header().setVisible(False) self.horizontalLayout.addWidget(self.categories) self.line = QtWidgets.QFrame(Dialog) self.line.setFrameShape(QtWidgets.QFrame.VLine) self.line.setFrameShadow(QtWidgets.QFrame.Sunken) self.line.setObjectName("line") self.horizontalLayout.addWidget(self.line) self.pages = QtWidgets.QStackedWidget(Dialog) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.pages.sizePolicy().hasHeightForWidth()) self.pages.setSizePolicy(sizePolicy) self.pages.setObjectName("pages") self.pageNotFound = QtWidgets.QWidget() self.pageNotFound.setObjectName("pageNotFound") self.gridLayout = QtWidgets.QGridLayout(self.pageNotFound) self.gridLayout.setObjectName("gridLayout") self.label = QtWidgets.QLabel(self.pageNotFound) self.label.setAlignment(QtCore.Qt.AlignCenter) self.label.setObjectName("label") self.gridLayout.addWidget(self.label, 0, 0, 1, 1) self.pages.addWidget(self.pageNotFound) self.horizontalLayout.addWidget(self.pages) self.verticalLayout.addLayout(self.horizontalLayout) self.buttons = QtWidgets.QDialogButtonBox(Dialog) self.buttons.setOrientation(QtCore.Qt.Horizontal) self.buttons.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok|QtWidgets.QDialogButtonBox.Reset|QtWidgets.QDialogButtonBox.RestoreDefaults) self.buttons.setObjectName("buttons") self.verticalLayout.addWidget(self.buttons) self.retranslateUi(Dialog) self.buttons.accepted.connect(Dialog.accept) self.buttons.rejected.connect(Dialog.reject) QtCore.QMetaObject.connectSlotsByName(Dialog)
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self._color = None self.color = QtGui.QColor('red') self.setMaximumWidth(32) self.pressed.connect(self.pick_color)
def _icon(val): if isinstance(val, tuple): theme, icon = val return QtGui.QIcon.fromTheme(theme, QtGui.QIcon(icon)) else: QtGui.QIcon(val)
def _get_icon(self): return QtGui.QIcon(icons.ICON_MIMETYPE)