def new_scheme_on_new_window(self): """New scheme. Return QDialog.Rejected if the user canceled the operation and QDialog.Accepted otherwise. """ window = self.instantiate_window() document = window.current_document() if document.isModifiedStrict(): # Ask for save changes if window.ask_save_changes() == QDialog.Rejected: return QDialog.Rejected new_scheme = config.workflow_constructor(parent=self) settings = QSettings() show = settings.value("schemeinfo/show-at-new-scheme", True, type=bool) if show: status = window.show_scheme_properties_for(new_scheme, self.tr("New Workflow")) if status == QDialog.Rejected: return QDialog.Rejected window.set_new_scheme(new_scheme) return QDialog.Accepted
def __init__(self, parent=None, **kwargs): super().__init__(parent, **kwargs) # Insert a 'Working Directory' row in the editor form. layout = self.editor.layout() self.working_dir_edit = QWidget(self) self.working_dir_edit.setLayout(QHBoxLayout()) self.working_dir_edit.layout().setContentsMargins(0, 0, 0, 0) settings = QSettings() self.working_dir_line = QLineEdit(self) self.working_dir_line.setReadOnly(True) cur_wd = (settings.value("output/default-working-directory", "", type=str) or os.path.expanduser("~/Oasys")) self.working_dir_line.setText(cur_wd) pb = QPushButton("Change ...") pb.clicked.connect(self.__change_working_directory) self.working_dir_edit.layout().addWidget(self.working_dir_line) self.working_dir_edit.layout().addWidget(pb) layout.insertRow( 2, self.tr("Working directory"), self.working_dir_edit) # Fix the widget tab order. item = layout.itemAt(1, QFormLayout.FieldRole) if item.widget() is not None: QWidget.setTabOrder(item.widget(), self.working_dir_line) QWidget.setTabOrder(self.working_dir_line, pb)
def new_scheme_on_new_window(self): """New scheme. Return QDialog.Rejected if the user canceled the operation and QDialog.Accepted otherwise. """ window = self.instantiate_window() document = window.current_document() if document.isModifiedStrict(): # Ask for save changes if window.ask_save_changes() == QDialog.Rejected: return QDialog.Rejected new_scheme = config.workflow_constructor(parent=self) settings = QSettings() show = settings.value("schemeinfo/show-at-new-scheme", True, type=bool) if show: status = window.show_scheme_properties_for( new_scheme, self.tr("New Workflow") ) if status == QDialog.Rejected: return QDialog.Rejected window.set_new_scheme(new_scheme) return QDialog.Accepted
def __init__(self, parent=None, existing_scheme=False, **kwargs): super().__init__(parent, **kwargs) # Insert a 'Working Directory' row in the editor form. layout = self.editor.layout() self.working_dir_edit = QWidget(self) self.working_dir_edit.setLayout(QHBoxLayout()) self.working_dir_edit.layout().setContentsMargins(0, 0, 0, 0) settings = QSettings() self.working_dir_line = QLineEdit(self) self.working_dir_line.setReadOnly(True) cur_wd = (settings.value( "output/default-working-directory", "", type=str) or os.path.expanduser("~/Oasys")) self.working_dir_line.setText(cur_wd) pb = QPushButton("Change ...") pb.clicked.connect(self.__change_working_directory) self.working_dir_edit.layout().addWidget(self.working_dir_line) self.working_dir_edit.layout().addWidget(pb) layout.insertRow(2, self.tr("Working directory"), self.working_dir_edit) self.units_edit = QWidget(self) self.units_edit.setLayout(QGridLayout()) self.units_edit.layout().setContentsMargins(0, 0, 0, 0) self.combo_units = QComboBox() self.combo_units.addItems([self.tr("m"), self.tr("cm"), self.tr("mm")]) self.combo_units.setEnabled(not existing_scheme) label = QLabel("") richText = "<html><head><meta name=\"qrichtext\" content=\"1\" /></head>" + \ "<body style=\" white-space: pre-wrap; " + \ "font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;\">" + \ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; " +\ "margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;\">Units in use in the Scheme </p>" "</body></html>" label.setText(richText) self.units_edit.layout().addWidget(label, 0, 0) self.units_edit.layout().addWidget(self.combo_units, 0, 1, Qt.AlignRight) layout.insertRow(2, self.tr("Units"), self.units_edit) # Fix the widget tab order. item = layout.itemAt(1, QFormLayout.FieldRole) if item.widget() is not None: QWidget.setTabOrder(item.widget(), self.combo_units) QWidget.setTabOrder(self.combo_units, self.working_dir_line) QWidget.setTabOrder(self.working_dir_line, pb)
def __init__(self, parent=None, **kwargs): super().__init__(parent, **kwargs) self.menu_registry = None settings = QSettings() updateperiod = settings.value( "oasys/addon-update-check-period", defaultValue=1, type=int) try: timestamp = os.stat(addons_cache_path()).st_mtime except OSError: timestamp = 0 lastdelta = datetime.now() - datetime.fromtimestamp(timestamp) self._log = logging.getLogger(__name__) self._log.info("Time from last update %s (%s)", lastdelta, timestamp) check = updateperiod >= 0 and \ abs(lastdelta) > timedelta(days=updateperiod) self.__executor = concurrent.futures.ThreadPoolExecutor(max_workers=1) self.__pypi_addons_f = None self.__pypi_addons = None self.__updatable = 0 if check: f = self.__executor.submit( addons.pypi_search, oasysconf.addon_pypi_search_spec(), timeout=10 ) f.add_done_callback( addons.method_queued(self.__set_pypi_addons_f, (object,))) self.__pypi_addons_f = f else: try: items = load_pypi_packages() except Exception: pass else: self.__set_pypi_addons(items)
def __init__(self, parent=None, **kwargs): super().__init__(parent, **kwargs) self.is_main = True self.menu_registry = None settings = QSettings() updateperiod = settings.value("oasys/addon-update-check-period", defaultValue=1, type=int) try: timestamp = os.stat(addons_cache_path()).st_mtime except OSError: timestamp = 0 lastdelta = datetime.now() - datetime.fromtimestamp(timestamp) self._log = logging.getLogger(__name__) self._log.info("Time from last update %s (%s)", lastdelta, timestamp) check = updateperiod >= 0 and \ abs(lastdelta) > timedelta(days=updateperiod) self.__executor = concurrent.futures.ThreadPoolExecutor(max_workers=1) self.__pypi_addons_f = None self.__pypi_addons = None self.__updatable = 0 if check: f = self.__executor.submit(addons.list_available_versions) f.add_done_callback( addons.method_queued(self.__set_pypi_addons_f, (object, ))) self.__pypi_addons_f = f else: try: items = load_pypi_packages() except Exception: pass else: self.__set_pypi_addons(items) self.automatic_save.connect(self.automatic_save_scheme) self.new_action_on_new_window = \ QAction(self.tr("New on a New Window"), self, objectName="action-new-new-window", toolTip=self.tr("Open a new workflow on a new window."), triggered=self.new_scheme_on_new_window, icon=canvasmain.canvas_icons("New.svg") ) self.open_action_on_new_window = \ QAction(self.tr("Open on a New Window"), self, objectName="action-open-new-window", toolTip=self.tr("Open a workflow on a new window."), triggered=self.open_scheme_on_new_window, icon=canvasmain.canvas_icons("Open.svg") ) file_menu = self.menuBar().children()[-1] file_menu.insertAction(file_menu.actions()[2], self.open_action_on_new_window) file_menu.insertAction(file_menu.actions()[1], self.new_action_on_new_window)
def __init__(self, parent=None, **kwargs): super().__init__(parent, **kwargs) self.is_main = True self.menu_registry = None settings = QSettings() updateperiod = settings.value( "oasys/addon-update-check-period", defaultValue=1, type=int) try: timestamp = os.stat(addons_cache_path()).st_mtime except OSError: timestamp = 0 lastdelta = datetime.now() - datetime.fromtimestamp(timestamp) self._log = logging.getLogger(__name__) self._log.info("Time from last update %s (%s)", lastdelta, timestamp) check = updateperiod >= 0 and \ abs(lastdelta) > timedelta(days=updateperiod) self.__executor = concurrent.futures.ThreadPoolExecutor(max_workers=1) self.__pypi_addons_f = None self.__pypi_addons = None self.__updatable = 0 if check: f = self.__executor.submit( addons.pypi_search, oasysconf.addon_pypi_search_spec(), timeout=10 ) f.add_done_callback( addons.method_queued(self.__set_pypi_addons_f, (object,))) self.__pypi_addons_f = f else: try: items = load_pypi_packages() except Exception: pass else: self.__set_pypi_addons(items) self.automatic_save.connect(self.automatic_save_scheme) self.new_action_on_new_window = \ QAction(self.tr("New on a New Window"), self, objectName="action-new-new-window", toolTip=self.tr("Open a new workflow on a new window."), triggered=self.new_scheme_on_new_window, icon=canvasmain.canvas_icons("New.svg") ) self.open_action_on_new_window = \ QAction(self.tr("Open on a New Window"), self, objectName="action-open-new-window", toolTip=self.tr("Open a workflow on a new window."), triggered=self.open_scheme_on_new_window, icon=canvasmain.canvas_icons("Open.svg") ) if sys.platform == "darwin": file_menu = self.menuBar().children()[1] else: file_menu = self.menuBar().children()[2] file_menu.insertAction(file_menu.actions()[2], self.open_action_on_new_window) file_menu.insertAction(file_menu.actions()[1], self.new_action_on_new_window)
def __init__(self, parent=None, existing_scheme=False, **kwargs): super().__init__(parent, **kwargs) # Insert a 'Working Directory' row in the editor form. layout = self.editor.layout() self.working_dir_edit = QWidget(self) self.working_dir_edit.setLayout(QHBoxLayout()) self.working_dir_edit.layout().setContentsMargins(0, 0, 0, 0) settings = QSettings() self.working_dir_line = QLineEdit(self) self.working_dir_line.setReadOnly(True) cur_wd = (settings.value("output/default-working-directory", "", type=str) or os.path.expanduser("~/Oasys")) self.working_dir_line.setText(cur_wd) pb = QPushButton("Change ...") pb.clicked.connect(self.__change_working_directory) self.working_dir_edit.layout().addWidget(self.working_dir_line) self.working_dir_edit.layout().addWidget(pb) layout.insertRow( 2, self.tr("Working directory"), self.working_dir_edit) self.units_edit = QWidget(self) self.units_edit.setLayout(QGridLayout()) self.units_edit.layout().setContentsMargins(0, 0, 0, 0) self.combo_units = QComboBox() self.combo_units.addItems([self.tr("m"), self.tr("cm"), self.tr("mm")]) self.combo_units.setEnabled(not existing_scheme) label = QLabel("") richText = "<html><head><meta name=\"qrichtext\" content=\"1\" /></head>" + \ "<body style=\" white-space: pre-wrap; " + \ "font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;\">" + \ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; " +\ "margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;\">Units in use in the Scheme </p>" "</body></html>" label.setText(richText) self.units_edit.layout().addWidget(label, 0, 0) self.units_edit.layout().addWidget(self.combo_units, 0, 1, Qt.AlignRight) layout.insertRow( 2, self.tr("Units"), self.units_edit) # Fix the widget tab order. item = layout.itemAt(1, QFormLayout.FieldRole) if item.widget() is not None: QWidget.setTabOrder(item.widget(), self.combo_units) QWidget.setTabOrder(self.combo_units, self.working_dir_line) QWidget.setTabOrder(self.working_dir_line, pb)