def __init__(self, parent): super().__init__() self._preferences = parent vbox = QVBoxLayout(self) # Groups group_box_start = QGroupBox(translations.TR_PREFERENCES_GENERAL_START) group_box_workspace = QGroupBox( translations.TR_PREFERENCES_GENERAL_WORKSPACE) # Group start box_start = QVBoxLayout(group_box_start) self._check_last_session = QCheckBox( translations.TR_PREFERENCES_GENERAL_LOAD_LAST_SESSION) self._check_notify_updates = QCheckBox( translations.TR_PREFERENCES_GENERAL_NOTIFY_UPDATES) box_start.addWidget(self._check_last_session) box_start.addWidget(self._check_notify_updates) # Workspace and Project grid_workspace = QGridLayout(group_box_workspace) self._text_workspace = ui_tools.LineEditButton( QIcon(self.style().standardPixmap(self.style().SP_TrashIcon))) self._text_workspace.buttonClicked.connect(self._text_workspace.clear) self._text_workspace.setReadOnly(True) grid_workspace.addWidget( QLabel(translations.TR_PREFERENCES_GENERAL_WORKSPACE), 0, 0) grid_workspace.addWidget(self._text_workspace, 0, 1) # Add groups to main layout vbox.addWidget(group_box_start) vbox.addWidget(group_box_workspace) vbox.addSpacerItem( QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Expanding))
def __init__(self, parent): super(GeneralConfiguration, self).__init__() self._preferences = parent vbox = QVBoxLayout(self) groupBoxStart = QGroupBox(translations.TR_PREFERENCES_GENERAL_START) groupBoxClose = QGroupBox(translations.TR_PREFERENCES_GENERAL_CLOSE) groupBoxWorkspace = QGroupBox( translations.TR_PREFERENCES_GENERAL_WORKSPACE) groupBoxReset = QGroupBox(translations.TR_PREFERENCES_GENERAL_RESET) #Start vboxStart = QVBoxLayout(groupBoxStart) self._checkLastSession = QCheckBox( translations.TR_PREFERENCES_GENERAL_LOAD_LAST_SESSION) self._checkActivatePlugins = QCheckBox( translations.TR_PREFERENCES_GENERAL_ACTIVATE_PLUGINS) self._checkNotifyUpdates = QCheckBox( translations.TR_PREFERENCES_GENERAL_NOTIFY_UPDATES) self._checkShowStartPage = QCheckBox( translations.TR_PREFERENCES_GENERAL_SHOW_START_PAGE) vboxStart.addWidget(self._checkLastSession) vboxStart.addWidget(self._checkActivatePlugins) vboxStart.addWidget(self._checkNotifyUpdates) vboxStart.addWidget(self._checkShowStartPage) #Close vboxClose = QVBoxLayout(groupBoxClose) self._checkConfirmExit = QCheckBox( translations.TR_PREFERENCES_GENERAL_CONFIRM_EXIT) vboxClose.addWidget(self._checkConfirmExit) #Workspace and Project gridWorkspace = QGridLayout(groupBoxWorkspace) self._txtWorkspace = QLineEdit() ui_tools.LineEditButton( self._txtWorkspace, self._txtWorkspace.clear, self.style().standardPixmap(self.style().SP_TrashIcon)) self._txtWorkspace.setReadOnly(True) self._btnWorkspace = QPushButton(QIcon(':img/openFolder'), '') gridWorkspace.addWidget( QLabel(translations.TR_PREFERENCES_GENERAL_WORKSPACE), 0, 0, Qt.AlignRight) gridWorkspace.addWidget(self._txtWorkspace, 0, 1) gridWorkspace.addWidget(self._btnWorkspace, 0, 2) self._txtExtensions = QLineEdit() gridWorkspace.addWidget( QLabel(translations.TR_PREFERENCES_GENERAL_SUPPORTED_EXT), 1, 0, Qt.AlignRight) gridWorkspace.addWidget(self._txtExtensions, 1, 1) # Resetting preferences vboxReset = QVBoxLayout(groupBoxReset) self._btnReset = QPushButton( translations.TR_PREFERENCES_GENERAL_RESET_PREFERENCES) vboxReset.addWidget(self._btnReset, alignment=Qt.AlignLeft) #Settings qsettings = IDE.ninja_settings() qsettings.beginGroup('preferences') qsettings.beginGroup('general') self._checkLastSession.setChecked( qsettings.value('loadFiles', True, type=bool)) self._checkActivatePlugins.setChecked( qsettings.value('activatePlugins', defaultValue=True, type=bool)) self._checkNotifyUpdates.setChecked(settings.NOTIFY_UPDATES) self._checkShowStartPage.setChecked(settings.SHOW_START_PAGE) self._checkConfirmExit.setChecked(settings.CONFIRM_EXIT) self._txtWorkspace.setText(settings.WORKSPACE) extensions = ', '.join(settings.SUPPORTED_EXTENSIONS) self._txtExtensions.setText(extensions) qsettings.endGroup() qsettings.endGroup() vbox.addWidget(groupBoxStart) vbox.addWidget(groupBoxClose) vbox.addWidget(groupBoxWorkspace) vbox.addWidget(groupBoxReset) #Signals self.connect(self._btnWorkspace, SIGNAL("clicked()"), self._load_workspace) self.connect(self._btnReset, SIGNAL('clicked()'), self._reset_preferences) self.connect(self._preferences, SIGNAL("savePreferences()"), self.save)
def __init__(self, parent): super(ProjectExecution, self).__init__() self._parent = parent grid = QGridLayout(self) grid.addWidget(QLabel(self.tr("Main File:")), 0, 0) self.path = QLineEdit() ui_tools.LineEditButton( self.path, self.path.clear, self.style().standardPixmap(self.style().SP_TrashIcon)) self.path.setText(self._parent._item.mainFile) self.path.setReadOnly(True) self.btnBrowse = QPushButton( QIcon(self.style().standardPixmap(self.style().SP_FileIcon)), '') grid.addWidget(self.path, 0, 1) grid.addWidget(self.btnBrowse, 0, 2) # this should be changed, and ALL pythonPath names to # python_custom_interpreter or something like that. this is NOT the # PYTHONPATH self.txtPythonPath = QLineEdit() self.txtPythonPath.setText(self._parent._item.pythonPath) self.btnPythonPath = QPushButton(QIcon(resources.IMAGES['open']), '') grid.addWidget(QLabel(self.tr("Python Custom Interpreter:")), 1, 0) grid.addWidget(self.txtPythonPath, 1, 1) grid.addWidget(self.btnPythonPath, 1, 2) # THIS IS THE MODAFUCKA REAL PYTHONPATH BRO, YEAH !!! grid.addWidget(QLabel(self.tr("Custom PYTHONPATH:")), 2, 0) self.PYTHONPATH = QPlainTextEdit() # TODO : better widget self.PYTHONPATH.setPlainText(self._parent._item.PYTHONPATH) self.PYTHONPATH.setToolTip(self.tr("One path per line")) grid.addWidget(self.PYTHONPATH, 2, 1) self.txtPreExec = QLineEdit() ui_tools.LineEditButton( self.txtPreExec, self.txtPreExec.clear, self.style().standardPixmap(self.style().SP_TrashIcon)) self.txtPreExec.setReadOnly(True) self.txtPreExec.setText(self._parent._item.preExecScript) self.btnPreExec = QPushButton(QIcon(resources.IMAGES['open']), '') grid.addWidget(QLabel(self.tr("Pre-exec Script:")), 3, 0) grid.addWidget(self.txtPreExec, 3, 1) grid.addWidget(self.btnPreExec, 3, 2) self.txtPostExec = QLineEdit() ui_tools.LineEditButton( self.txtPostExec, self.txtPostExec.clear, self.style().standardPixmap(self.style().SP_TrashIcon)) self.txtPostExec.setReadOnly(True) self.txtPostExec.setText(self._parent._item.postExecScript) self.btnPostExec = QPushButton(QIcon(resources.IMAGES['open']), '') grid.addWidget(QLabel(self.tr("Post-exec Script:")), 4, 0) grid.addWidget(self.txtPostExec, 4, 1) grid.addWidget(self.btnPostExec, 4, 2) grid.addItem( QSpacerItem(5, 10, QSizePolicy.Expanding, QSizePolicy.Expanding), 5, 0) # Properties grid.addWidget(QLabel(self.tr("Properties:")), 6, 0) self.txtParams = QLineEdit() self.txtParams.setToolTip( self.tr("Separate the params with commas (ie: help, verbose)")) self.txtParams.setText(self._parent._item.programParams) grid.addWidget(QLabel(self.tr("Params (comma separated):")), 7, 0) grid.addWidget(self.txtParams, 7, 1) #Widgets for virtualenv properties self.txtVenvPath = QLineEdit() ui_tools.LineEditButton( self.txtVenvPath, self.txtVenvPath.clear, self.style().standardPixmap(self.style().SP_TrashIcon)) self.txtVenvPath.setText(self._parent._item.venv) self.txtVenvPath.setReadOnly(True) self.btnVenvPath = QPushButton(QIcon(resources.IMAGES['open']), '') grid.addWidget(QLabel(self.tr("Virtualenv Folder:")), 8, 0) grid.addWidget(self.txtVenvPath, 8, 1) grid.addWidget(self.btnVenvPath, 8, 2) self.connect(self.btnBrowse, SIGNAL("clicked()"), self.select_file) self.connect(self.btnPythonPath, SIGNAL("clicked()"), self._load_python_path) self.connect(self.btnVenvPath, SIGNAL("clicked()"), self._load_python_venv) self.connect(self.btnPreExec, SIGNAL("clicked()"), self.select_pre_exec_script) self.connect(self.btnPostExec, SIGNAL("clicked()"), self.select_post_exec_script)
def __init__(self, parent): super(ProjectExecution, self).__init__() self._parent = parent grid = QGridLayout(self) grid.addWidget(QLabel(self.tr("Main File:")), 0, 0) self.path = QLineEdit() ui_tools.LineEditButton( self.path, self.path.clear, self.style().standardPixmap(self.style().SP_TrashIcon)) self.path.setText(self._parent._item.mainFile) self.path.setReadOnly(True) self.btnBrowse = QPushButton( QIcon(self.style().standardPixmap(self.style().SP_FileIcon)), '') grid.addWidget(self.path, 0, 1) grid.addWidget(self.btnBrowse, 0, 2) self.txtPythonPath = QLineEdit() self.txtPythonPath.setText(self._parent._item.pythonPath) self.btnPythonPath = QPushButton(QIcon(resources.IMAGES['open']), '') grid.addWidget(QLabel(self.tr("Python Path:")), 1, 0) grid.addWidget(self.txtPythonPath, 1, 1) grid.addWidget(self.btnPythonPath, 1, 2) self.txtPreExec = QLineEdit() ui_tools.LineEditButton( self.txtPreExec, self.txtPreExec.clear, self.style().standardPixmap(self.style().SP_TrashIcon)) self.txtPreExec.setReadOnly(True) self.txtPreExec.setText(self._parent._item.preExecScript) self.btnPreExec = QPushButton(QIcon(resources.IMAGES['open']), '') grid.addWidget(QLabel(self.tr("Pre-exec Script:")), 2, 0) grid.addWidget(self.txtPreExec, 2, 1) grid.addWidget(self.btnPreExec, 2, 2) self.txtPostExec = QLineEdit() ui_tools.LineEditButton( self.txtPostExec, self.txtPostExec.clear, self.style().standardPixmap(self.style().SP_TrashIcon)) self.txtPostExec.setReadOnly(True) self.txtPostExec.setText(self._parent._item.postExecScript) self.btnPostExec = QPushButton(QIcon(resources.IMAGES['open']), '') grid.addWidget(QLabel(self.tr("Post-exec Script:")), 3, 0) grid.addWidget(self.txtPostExec, 3, 1) grid.addWidget(self.btnPostExec, 3, 2) grid.addItem( QSpacerItem(5, 10, QSizePolicy.Expanding, QSizePolicy.Expanding), 4, 0) # Properties grid.addWidget(QLabel(self.tr("Properties:")), 5, 0) self.txtParams = QLineEdit() self.txtParams.setToolTip( self.tr("Separate the params with commas (ie: help, verbose)")) self.txtParams.setText(self._parent._item.programParams) grid.addWidget(QLabel(self.tr("Params (comma separated):")), 6, 0) grid.addWidget(self.txtParams, 6, 1) #Widgets for virtualenv properties self.txtVenvPath = QLineEdit() ui_tools.LineEditButton( self.txtVenvPath, self.txtVenvPath.clear, self.style().standardPixmap(self.style().SP_TrashIcon)) self.txtVenvPath.setText(self._parent._item.venv) self.txtVenvPath.setReadOnly(True) self.btnVenvPath = QPushButton(QIcon(resources.IMAGES['open']), '') grid.addWidget(QLabel(self.tr("Virtualenv Folder:")), 7, 0) grid.addWidget(self.txtVenvPath, 7, 1) grid.addWidget(self.btnVenvPath, 7, 2) self.connect(self.btnBrowse, SIGNAL("clicked()"), self.select_file) self.connect(self.btnPythonPath, SIGNAL("clicked()"), self._load_python_path) self.connect(self.btnVenvPath, SIGNAL("clicked()"), self._load_python_venv) self.connect(self.btnPreExec, SIGNAL("clicked()"), self.select_pre_exec_script) self.connect(self.btnPostExec, SIGNAL("clicked()"), self.select_post_exec_script)
def __init__(self, parent): super(GeneralConfiguration, self).__init__() self._preferences = parent vbox = QVBoxLayout(self) groupBoxStart = QGroupBox(translations.TR_PREFERENCES_GENERAL_START) groupBoxClose = QGroupBox(translations.TR_PREFERENCES_GENERAL_CLOSE) groupBoxWorkspace = QGroupBox( translations.TR_PREFERENCES_GENERAL_WORKSPACE) groupBoxNoti = QGroupBox(translations.TR_NOTIFICATION) groupBoxReset = QGroupBox(translations.TR_PREFERENCES_GENERAL_RESET) #Start vboxStart = QVBoxLayout(groupBoxStart) self._checkLastSession = QCheckBox( translations.TR_PREFERENCES_GENERAL_LOAD_LAST_SESSION) self._checkActivatePlugins = QCheckBox( translations.TR_PREFERENCES_GENERAL_ACTIVATE_PLUGINS) self._checkNotifyUpdates = QCheckBox( translations.TR_PREFERENCES_GENERAL_NOTIFY_UPDATES) self._checkShowStartPage = QCheckBox( translations.TR_PREFERENCES_GENERAL_SHOW_START_PAGE) vboxStart.addWidget(self._checkLastSession) vboxStart.addWidget(self._checkActivatePlugins) vboxStart.addWidget(self._checkNotifyUpdates) vboxStart.addWidget(self._checkShowStartPage) #Close vboxClose = QVBoxLayout(groupBoxClose) self._checkConfirmExit = QCheckBox( translations.TR_PREFERENCES_GENERAL_CONFIRM_EXIT) vboxClose.addWidget(self._checkConfirmExit) #Workspace and Project gridWorkspace = QGridLayout(groupBoxWorkspace) self._txtWorkspace = QLineEdit() ui_tools.LineEditButton( self._txtWorkspace, self._txtWorkspace.clear, self.style().standardPixmap(self.style().SP_TrashIcon)) self._txtWorkspace.setReadOnly(True) self._btnWorkspace = QPushButton(QIcon(':img/openFolder'), '') gridWorkspace.addWidget( QLabel(translations.TR_PREFERENCES_GENERAL_WORKSPACE), 0, 0, Qt.AlignRight) gridWorkspace.addWidget(self._txtWorkspace, 0, 1) gridWorkspace.addWidget(self._btnWorkspace, 0, 2) self._txtExtensions = QLineEdit() self._txtExtensions.setToolTip( translations.TR_PROJECT_EXTENSIONS_TOOLTIP) gridWorkspace.addWidget( QLabel(translations.TR_PREFERENCES_GENERAL_SUPPORTED_EXT), 1, 0, Qt.AlignRight) gridWorkspace.addWidget(self._txtExtensions, 1, 1) labelTooltip = QLabel(translations.TR_PROJECT_EXTENSIONS_INSTRUCTIONS) gridWorkspace.addWidget(labelTooltip, 2, 1) # Notification hboxNoti, self._notify_position = QHBoxLayout( groupBoxNoti), QComboBox() self._notify_position.addItems([ translations.TR_BOTTOM + "-" + translations.TR_LEFT, translations.TR_BOTTOM + "-" + translations.TR_RIGHT, translations.TR_TOP + "-" + translations.TR_LEFT, translations.TR_TOP + "-" + translations.TR_RIGHT ]) self._notify_color = QPushButton( translations.TR_EDITOR_SCHEME_PICK_COLOR) self._notification_choosed_color = settings.NOTIFICATION_COLOR hboxNoti.addWidget(QLabel(translations.TR_POSITION_ON_SCREEN)) hboxNoti.addWidget(self._notify_position) hboxNoti.addWidget(self._notify_color, 0, Qt.AlignRight) # Resetting preferences vboxReset = QVBoxLayout(groupBoxReset) self._btnReset = QPushButton( translations.TR_PREFERENCES_GENERAL_RESET_PREFERENCES) vboxReset.addWidget(self._btnReset, alignment=Qt.AlignLeft) #Settings qsettings = IDE.ninja_settings() qsettings.beginGroup('preferences') qsettings.beginGroup('general') self._checkLastSession.setChecked( qsettings.value('loadFiles', True, type=bool)) self._checkActivatePlugins.setChecked( qsettings.value('activatePlugins', defaultValue=True, type=bool)) self._checkNotifyUpdates.setChecked( qsettings.value('preferences/general/notifyUpdates', defaultValue=True, type=bool)) self._checkShowStartPage.setChecked(settings.SHOW_START_PAGE) self._checkConfirmExit.setChecked(settings.CONFIRM_EXIT) self._txtWorkspace.setText(settings.WORKSPACE) extensions = ', '.join(settings.SUPPORTED_EXTENSIONS) self._txtExtensions.setText(extensions) self._notify_position.setCurrentIndex(settings.NOTIFICATION_POSITION) qsettings.endGroup() qsettings.endGroup() vbox.addWidget(groupBoxStart) vbox.addWidget(groupBoxClose) vbox.addWidget(groupBoxWorkspace) vbox.addWidget(groupBoxNoti) vbox.addWidget(groupBoxReset) #Signals self.connect(self._btnWorkspace, SIGNAL("clicked()"), self._load_workspace) self.connect(self._notify_color, SIGNAL("clicked()"), self._pick_color) self.connect(self._btnReset, SIGNAL('clicked()'), self._reset_preferences) self.connect(self._preferences, SIGNAL("savePreferences()"), self.save)
def __init__(self, parent): super(ProjectExecution, self).__init__() self._parent = parent grid = QGridLayout(self) grid.addWidget(QLabel(translations.TR_PROJECT_MAIN_FILE), 0, 0) self.path = QLineEdit() self.path.setPlaceholderText( os.path.join(os.path.expanduser("~"), 'path', 'to', 'main.py')) ui_tools.LineEditButton( self.path, self.path.clear, self.style().standardPixmap(self.style().SP_TrashIcon)) self.path.setText(self._parent.project.main_file) self.path.setReadOnly(True) self.btnBrowse = QPushButton( QIcon(self.style().standardPixmap(self.style().SP_FileIcon)), '') grid.addWidget(self.path, 0, 1) grid.addWidget(self.btnBrowse, 0, 2) # this should be changed, and ALL pythonPath names to # python_custom_interpreter or something like that. this is NOT the # PYTHONPATH self.txtPythonInterpreter = QLineEdit() self.txtPythonInterpreter.setText(self._parent.project.python_exec) self.txtPythonInterpreter.setCompleter( QCompleter( ('python', 'python2', 'python3', 'python.exe', 'pythonw.exe'))) self.txtPythonInterpreter.setPlaceholderText("python") self.btnPythonPath = QPushButton(QIcon(":img/open"), '') grid.addWidget(QLabel(translations.TR_PROJECT_PYTHON_INTERPRETER), 1, 0) grid.addWidget(self.txtPythonInterpreter, 1, 1) grid.addWidget(self.btnPythonPath, 1, 2) grid.addWidget(QLabel(translations.TR_PROJECT_PYTHON_PATH), 2, 0) self.txtPythonPath = QPlainTextEdit() # TODO : better widget self.txtPythonPath.setPlainText(self._parent.project.python_path) self.txtPythonPath.setToolTip(translations.TR_PROJECT_PATH_PER_LINE) grid.addWidget(self.txtPythonPath, 2, 1) # Additional builtins/globals for pyflakes grid.addWidget(QLabel(translations.TR_PROJECT_BUILTINS), 3, 0) self.additional_builtins = QLineEdit() self.additional_builtins.setText(' '.join( self._parent.project.additional_builtins)) self.additional_builtins.setToolTip( translations.TR_PROJECT_BUILTINS_TOOLTIP) grid.addWidget(self.additional_builtins, 3, 1) self.txtPreExec = QLineEdit() ui_tools.LineEditButton( self.txtPreExec, self.txtPreExec.clear, self.style().standardPixmap(self.style().SP_TrashIcon)) self.txtPreExec.setReadOnly(True) self.txtPreExec.setText(self._parent.project.pre_exec_script) self.txtPreExec.setPlaceholderText( os.path.join(os.path.expanduser("~"), 'path', 'to', 'script.sh')) self.btnPreExec = QPushButton(QIcon(":img/open"), '') grid.addWidget(QLabel(translations.TR_PROJECT_PRE_EXEC), 4, 0) grid.addWidget(self.txtPreExec, 4, 1) grid.addWidget(self.btnPreExec, 4, 2) self.txtPostExec = QLineEdit() ui_tools.LineEditButton( self.txtPostExec, self.txtPostExec.clear, self.style().standardPixmap(self.style().SP_TrashIcon)) self.txtPostExec.setReadOnly(True) self.txtPostExec.setText(self._parent.project.post_exec_script) self.txtPostExec.setPlaceholderText( os.path.join(os.path.expanduser("~"), 'path', 'to', 'script.sh')) self.btnPostExec = QPushButton(QIcon(":img/open"), '') grid.addWidget(QLabel(translations.TR_PROJECT_POST_EXEC), 5, 0) grid.addWidget(self.txtPostExec, 5, 1) grid.addWidget(self.btnPostExec, 5, 2) grid.addItem( QSpacerItem(5, 10, QSizePolicy.Expanding, QSizePolicy.Expanding), 6, 0) # Properties grid.addWidget(QLabel(translations.TR_PROJECT_PROPERTIES), 7, 0) self.txtParams = QLineEdit() self.txtParams.setToolTip(translations.TR_PROJECT_PARAMS_TOOLTIP) self.txtParams.setText(self._parent.project.program_params) self.txtParams.setPlaceholderText('verbose, debug, force') grid.addWidget(QLabel(translations.TR_PROJECT_PARAMS), 8, 0) grid.addWidget(self.txtParams, 8, 1) #Widgets for virtualenv properties self.txtVenvPath = QLineEdit() ui_tools.LineEditButton( self.txtVenvPath, self.txtVenvPath.clear, self.style().standardPixmap(self.style().SP_TrashIcon)) self.txtVenvPath.setText(self._parent.project.venv) self._dir_completer = QCompleter() self._dir_completer.setModel(QDirModel(self._dir_completer)) self.txtVenvPath.setCompleter(self._dir_completer) self.txtVenvPath.setPlaceholderText( os.path.join(os.path.expanduser("~"), 'path', 'to', 'virtualenv')) self.btnVenvPath = QPushButton(QIcon(":img/open"), '') grid.addWidget(QLabel(translations.TR_PROJECT_VIRTUALENV), 9, 0) grid.addWidget(self.txtVenvPath, 9, 1) grid.addWidget(self.btnVenvPath, 9, 2) self.btnBrowse.clicked['bool'].connect(self.select_file) self.btnPythonPath.clicked['bool'].connect(self._load_python_path) self.btnVenvPath.clicked['bool'].connect(self._load_python_venv) self.btnPreExec.clicked['bool'].connect(self.select_pre_exec_script) self.btnPostExec.clicked['bool'].connect(self.select_post_exec_script)
def __init__(self, item, parent=None): QDialog.__init__(self, parent, Qt.Dialog) self.setModal(True) self._item = item self.setWindowTitle(self.tr("Project Properties")) grid = QGridLayout(self) grid.addWidget(QLabel(self.tr("Name:")), 0, 0) self.name = QLineEdit() if self._item.name == '': self.name.setText(file_manager.get_basename(self._item.path)) else: self.name.setText(self._item.name) grid.addWidget(self.name, 0, 1) grid.addWidget(QLabel(self.tr("Project Type:")), 1, 0) self.txtType = QLineEdit() completer = QCompleter(sorted(settings.PROJECT_TYPES)) completer.setCompletionMode(QCompleter.UnfilteredPopupCompletion) self.txtType.setCompleter(completer) self.txtType.setText(self._item.projectType) grid.addWidget(self.txtType, 1, 1) grid.addWidget(QLabel(self.tr("Description:")), 2, 0) self.description = QPlainTextEdit() self.description.setPlainText(self._item.description) grid.addWidget(self.description, 2, 1) grid.addWidget(QLabel(self.tr("URL:")), 3, 0) self.url = QLineEdit() self.url.setText(self._item.url) grid.addWidget(self.url, 3, 1) grid.addWidget(QLabel(self.tr("Licence:")), 4, 0) self.cboLicense = QComboBox() self.cboLicense.addItem('Apache License 2.0') self.cboLicense.addItem('Artistic License/GPL') self.cboLicense.addItem('Eclipse Public License 1.0') self.cboLicense.addItem('GNU General Public License v2') self.cboLicense.addItem('GNU General Public License v3') self.cboLicense.addItem('GNU Lesser General Public License') self.cboLicense.addItem('MIT License') self.cboLicense.addItem('Mozilla Public License 1.1') self.cboLicense.addItem('New BSD License') self.cboLicense.addItem('Other Open Source') self.cboLicense.addItem('Other') self.cboLicense.setCurrentIndex(4) index = self.cboLicense.findText(self._item.license) self.cboLicense.setCurrentIndex(index) grid.addWidget(self.cboLicense, 4, 1) grid.addWidget(QLabel(self.tr("Main File:")), 5, 0) self.path = QLineEdit() ui_tools.LineEditButton( self.path, self.path.clear, self.style().standardPixmap(self.style().SP_TrashIcon)) self.path.setText(self._item.mainFile) self.path.setReadOnly(True) self.btnBrowse = QPushButton( QIcon(self.style().standardPixmap(self.style().SP_FileIcon)), '') hbox = QHBoxLayout() hbox.addWidget(self.path) hbox.addWidget(self.btnBrowse) grid.addLayout(hbox, 5, 1) self.txtExtensions = QLineEdit() self.txtExtensions.setText(str(', '.join(self._item.extensions))) grid.addWidget(QLabel(self.tr("Supported Extensions:")), 6, 0) grid.addWidget(self.txtExtensions, 6, 1) self.txtPythonPath = QLineEdit() self.txtPythonPath.setText(self._item.pythonPath) self.btnPythonPath = QPushButton(QIcon(resources.IMAGES['open']), '') grid.addWidget(QLabel(self.tr("Python Path:")), 7, 0) grid.addWidget(self.txtPythonPath, 7, 1) grid.addWidget(self.btnPythonPath, 7, 2) self.txtParams = QLineEdit() self.txtParams.setToolTip( self.tr("Separate the params with commas (ie: help, verbose)")) self.txtParams.setText(self._item.programParams) grid.addWidget(QLabel(self.tr("Params (comma separated):")), 8, 0) grid.addWidget(self.txtParams, 8, 1) #Widgets for virtualenv properties self.txtVenvPath = QLineEdit() ui_tools.LineEditButton( self.txtVenvPath, self.txtVenvPath.clear, self.style().standardPixmap(self.style().SP_TrashIcon)) self.txtVenvPath.setText(self._item.venv) self.txtVenvPath.setReadOnly(True) self.btnVenvPath = QPushButton(QIcon(resources.IMAGES['open']), '') grid.addWidget(QLabel(self.tr("Virtualenv Folder:")), 9, 0) grid.addWidget(self.txtVenvPath, 9, 1) grid.addWidget(self.btnVenvPath, 9, 2) self.btnSave = QPushButton(self.tr("Save")) self.btnCancel = QPushButton(self.tr("Cancel")) hbox3 = QHBoxLayout() hbox3.addWidget(self.btnCancel) hbox3.addWidget(self.btnSave) grid.addLayout(hbox3, 10, 1) self.connect(self.btnBrowse, SIGNAL("clicked()"), self.select_file) self.connect(self.btnCancel, SIGNAL("clicked()"), self.close) self.connect(self.btnSave, SIGNAL("clicked()"), self.save_properties) self.connect(self.btnPythonPath, SIGNAL("clicked()"), self._load_python_path) self.connect(self.btnVenvPath, SIGNAL("clicked()"), self._load_python_venv)