def __init__(self, menuProject, toolbar): QObject.__init__(self) runAction = menuProject.addAction( QIcon(resources.IMAGES['play']), self.tr("Run Project (%1)").arg( resources.get_shortcut("Run-project").toString( QKeySequence.NativeText))) # debugAction = menuProject.addAction( # QIcon(resources.IMAGES['debug']), # self.tr("Debug Project (%1)").arg( # resources.get_shortcut("Debug").toString( # QKeySequence.NativeText))) runFileAction = menuProject.addAction( QIcon(resources.IMAGES['file-run']), self.tr("Run File (%1)").arg( resources.get_shortcut("Run-file").toString( QKeySequence.NativeText))) stopAction = menuProject.addAction( QIcon(resources.IMAGES['stop']), self.tr("Stop (%1)").arg( resources.get_shortcut("Stop-execution").toString( QKeySequence.NativeText))) menuProject.addSeparator() projectPropertiesAction = menuProject.addAction( self.tr("Open Project Properties")) menuProject.addSeparator() previewAction = menuProject.addAction( QIcon(resources.IMAGES['preview-web']), self.tr("Preview Web in Default Browser")) # diagramView = menuProject.addAction(self.tr("Diagram View")) self.toolbar_items = { 'run-project': runAction, 'run-file': runFileAction, 'stop': stopAction, 'preview-web': previewAction } self.connect(runAction, SIGNAL("triggered()"), actions.Actions().execute_project) self.connect(runFileAction, SIGNAL("triggered()"), actions.Actions().execute_file) self.connect(stopAction, SIGNAL("triggered()"), actions.Actions().kill_execution) self.connect(previewAction, SIGNAL("triggered()"), actions.Actions().preview_in_browser) self.connect(projectPropertiesAction, SIGNAL("triggered()"), actions.Actions().open_project_properties)
def __init__(self): QObject.__init__(self) self._explorer = explorer_container.ExplorerContainer() self._action = actions.Actions() self.connect(self._explorer, SIGNAL("projectOpened(QString)"), self._projectOpened) self.connect(self._action, SIGNAL("projectExecuted(QString)"), self._projectExecuted)
def save(self): """ Save all shortcuts to settings """ settings = QSettings(resources.SETTINGS_PATH, QSettings.IniFormat) settings.beginGroup("shortcuts") for index in range(self.result_widget.topLevelItemCount()): item = self.result_widget.topLevelItem(index) shortcut_keys = item.text(1) shortcut_name = item.text(2) settings.setValue(shortcut_name, shortcut_keys) settings.endGroup() actions.Actions().update_shortcuts()
def save(self): """ Save all shortcuts to settings """ settings = IDE.ninja_settings() settings.beginGroup("shortcuts") for index in range(self.result_widget.topLevelItemCount()): item = self.result_widget.topLevelItem(index) shortcut_keys = item.text(1) shortcut_name = item.text(2) settings.setValue(shortcut_name, shortcut_keys) settings.endGroup() actions.Actions().update_shortcuts()
def __init__(self): QObject.__init__(self) self._main = main_container.MainContainer() self._action = actions.Actions() self._explorer = explorer_container.ExplorerContainer() #Connect signals self.connect(self._main, SIGNAL("editorKeyPressEvent(QEvent)"), self._keyPressEvent) self.connect(self._main, SIGNAL("beforeFileSaved(QString)"), self._beforeFileSaved) self.connect(self._main, SIGNAL("fileSaved(QString)"), self._fileSaved) self.connect(self._main, SIGNAL("currentTabChanged(QString)"), self._currentTabChanged) self.connect(self._action, SIGNAL("fileExecuted(QString)"), self._fileExecuted) self.connect(self._main, SIGNAL("fileOpened(QString)"), self._fileOpened)
def __init__(self, start_server=False): QMainWindow.__init__(self) self.setWindowTitle('NINJA-IDE {Ninja-IDE Is Not Just Another IDE}') self.setMinimumSize(700, 500) #Load the size and the position of the main window self.load_window_geometry() #Start server if needed self.s_listener = None if start_server: self.s_listener = QLocalServer() self.s_listener.listen("ninja_ide") self.connect(self.s_listener, SIGNAL("newConnection()"), self._process_connection) #Profile handler self.profile = None #Opacity self.opacity = settings.MAX_OPACITY #Define Actions object before the UI self.actions = actions.Actions() #StatusBar self.status = status_bar.StatusBar(self) self.status.hide() self.setStatusBar(self.status) #Main Widget - Create first than everything else self.central = central_widget.CentralWidget(self) self.load_ui(self.central) self.setCentralWidget(self.central) #ToolBar self.toolbar = QToolBar(self) self.toolbar.setToolTip(self.tr("Press and Drag to Move")) self.toolbar.setToolButtonStyle(Qt.ToolButtonIconOnly) self.addToolBar(settings.TOOLBAR_AREA, self.toolbar) if settings.HIDE_TOOLBAR: self.toolbar.hide() #Install Shortcuts after the UI has been initialized self.actions.install_shortcuts(self) self.connect(self.mainContainer, SIGNAL("currentTabChanged(QString)"), self.actions.update_explorer) #Menu menubar = self.menuBar() file_ = menubar.addMenu(self.tr("&File")) edit = menubar.addMenu(self.tr("&Edit")) view = menubar.addMenu(self.tr("&View")) source = menubar.addMenu(self.tr("&Source")) project = menubar.addMenu(self.tr("&Project")) self.pluginsMenu = menubar.addMenu(self.tr("&Addins")) about = menubar.addMenu(self.tr("Abou&t")) #The order of the icons in the toolbar is defined by this calls self._menuFile = menu_file.MenuFile(file_, self.toolbar, self) self._menuView = menu_view.MenuView(view, self.toolbar, self) self._menuEdit = menu_edit.MenuEdit(edit, self.toolbar) self._menuSource = menu_source.MenuSource(source) self._menuProject = menu_project.MenuProject(project, self.toolbar) self._menuPlugins = menu_plugins.MenuPlugins(self.pluginsMenu) self._menuAbout = menu_about.MenuAbout(about) self.load_toolbar() #Plugin Manager services = { 'editor': plugin_services.MainService(), 'toolbar': plugin_services.ToolbarService(self.toolbar), 'menuApp': plugin_services.MenuAppService(self.pluginsMenu), 'explorer': plugin_services.ExplorerService(), 'misc': plugin_services.MiscContainerService(self.misc) } serviceLocator = plugin_manager.ServiceLocator(services) self.plugin_manager = plugin_manager.PluginManager( resources.PLUGINS, serviceLocator) self.plugin_manager.discover() #load all plugins! self.plugin_manager.load_all() #Tray Icon self.trayIcon = updates.TrayIconUpdates(self) self.trayIcon.show() self.connect(self._menuFile, SIGNAL("openFile(QString)"), self.mainContainer.open_file) self.connect(self.mainContainer, SIGNAL("fileSaved(QString)"), self.show_status_message) self.connect(self.mainContainer, SIGNAL("recentTabsModified(QStringList)"), self._menuFile.update_recent_files)
def __init__(self, menuSource): QObject.__init__(self) indentMoreAction = menuSource.addAction( QIcon(resources.IMAGES['indent-more']), (self.trUtf8("Indent More (%s)") % QKeySequence(Qt.Key_Tab).toString(QKeySequence.NativeText))) indentLessAction = menuSource.addAction( QIcon(resources.IMAGES['indent-less']), (self.trUtf8("Indent Less (%s)") % resources.get_shortcut("Indent-less").toString( QKeySequence.NativeText))) menuSource.addSeparator() commentAction = menuSource.addAction( QIcon(resources.IMAGES['comment-code']), (self.trUtf8("Comment (%s)") % resources.get_shortcut("Comment").toString( QKeySequence.NativeText))) unCommentAction = menuSource.addAction( QIcon(resources.IMAGES['uncomment-code']), (self.trUtf8("Uncomment (%s)") % resources.get_shortcut("Uncomment").toString( QKeySequence.NativeText))) horizontalLineAction = menuSource.addAction( (self.trUtf8("Insert Horizontal Line (%s)") % resources.get_shortcut("Horizontal-line").toString( QKeySequence.NativeText))) titleCommentAction = menuSource.addAction( (self.trUtf8("Insert Title Comment (%s)") % resources.get_shortcut("Title-comment").toString( QKeySequence.NativeText))) countCodeLinesAction = menuSource.addAction( self.trUtf8("Count Code Lines")) menuSource.addSeparator() # tellTaleAction = menuSource.addAction( # self.trUtf8("Tell me a Tale of Code")) # tellTaleAction.setEnabled(False) goToDefinitionAction = menuSource.addAction( QIcon(resources.IMAGES['go-to-definition']), (self.trUtf8("Go To Definition (%s or %s+Click)") % (resources.get_shortcut("Go-to-definition").toString( QKeySequence.NativeText), settings.OS_KEY))) insertImport = menuSource.addAction( QIcon(resources.IMAGES['insert-import']), (self.trUtf8("Insert &Import (%s)") % resources.get_shortcut("Import").toString( QKeySequence.NativeText))) menu_debugging = menuSource.addMenu(self.trUtf8("Debugging Tricks")) insertPrints = menu_debugging.addAction( self.trUtf8("Insert Prints per selected line.")) insertPdb = menu_debugging.addAction( self.trUtf8("Insert pdb.set_trace()")) # organizeImportsAction = menuSource.addAction( # self.trUtf8("&Organize Imports")) # removeUnusedImportsAction = menuSource.addAction( # self.trUtf8("Remove Unused &Imports")) # extractMethodAction = menuSource.addAction( # self.trUtf8("Extract selected &code as Method")) menuSource.addSeparator() removeTrailingSpaces = menuSource.addAction( self.trUtf8("&Remove Trailing Spaces")) replaceTabsSpaces = menuSource.addAction( self.trUtf8("Replace Tabs With &Spaces")) moveUp = menuSource.addAction( (self.trUtf8("Move &Up (%s)") % resources.get_shortcut("Move-up").toString( QKeySequence.NativeText))) moveDown = menuSource.addAction( (self.trUtf8("Move &Down (%s)") % resources.get_shortcut("Move-down").toString( QKeySequence.NativeText))) duplicate = menuSource.addAction( (self.trUtf8("Duplica&te (%s)") % resources.get_shortcut("Duplicate").toString( QKeySequence.NativeText))) remove = menuSource.addAction( (self.trUtf8("&Remove Line (%s)") % resources.get_shortcut("Remove-line").toString( QKeySequence.NativeText))) self.toolbar_items = { 'indent-more': indentMoreAction, 'indent-less': indentLessAction, 'comment': commentAction, 'uncomment': unCommentAction, 'go-to-definition': goToDefinitionAction, 'insert-import': insertImport } self.connect(goToDefinitionAction, SIGNAL("triggered()"), actions.Actions().editor_go_to_definition) self.connect(countCodeLinesAction, SIGNAL("triggered()"), actions.Actions().count_file_code_lines) self.connect(insertImport, SIGNAL("triggered()"), actions.Actions().import_from_everywhere) self.connect(indentMoreAction, SIGNAL("triggered()"), actions.Actions().editor_indent_more) self.connect(indentLessAction, SIGNAL("triggered()"), actions.Actions().editor_indent_less) self.connect(commentAction, SIGNAL("triggered()"), actions.Actions().editor_comment) self.connect(unCommentAction, SIGNAL("triggered()"), actions.Actions().editor_uncomment) self.connect(horizontalLineAction, SIGNAL("triggered()"), actions.Actions().editor_insert_horizontal_line) self.connect(titleCommentAction, SIGNAL("triggered()"), actions.Actions().editor_insert_title_comment) # QObject.connect(removeUnusedImportsAction, SIGNAL("triggered()"), # lambda: self._main._central.obtain_editor().remove_unused_imports()) ## QObject.connect(addMissingImportsAction, SIGNAL("triggered()"), # lambda: self._main._central.obtain_editor().add_missing_imports()) # QObject.connect(organizeImportsAction, SIGNAL("triggered()"), # lambda: self._main._central.obtain_editor().organize_imports()) # QObject.connect(extractMethodAction, SIGNAL("triggered()"), # lambda: self._main._central.obtain_editor().extract_method()) self.connect(moveUp, SIGNAL("triggered()"), actions.Actions().editor_move_up) self.connect(moveDown, SIGNAL("triggered()"), actions.Actions().editor_move_down) self.connect(duplicate, SIGNAL("triggered()"), actions.Actions().editor_duplicate) self.connect(replaceTabsSpaces, SIGNAL("triggered()"), actions.Actions().editor_replace_tabs_with_spaces) self.connect(removeTrailingSpaces, SIGNAL("triggered()"), actions.Actions().editor_remove_trailing_spaces) self.connect(remove, SIGNAL("triggered()"), actions.Actions().editor_remove_line) self.connect(insertPrints, SIGNAL("triggered()"), actions.Actions().editor_insert_debugging_prints) self.connect(insertPdb, SIGNAL("triggered()"), actions.Actions().editor_insert_pdb)