def __quicktipOnce(self): filename = os.path.join(settings.widget_settings_dir(), "user-session-state.ini") namespace = ( "user-message-history/{0.__module__}.{0.__qualname__}".format( type(self))) session_hist = QSettings(filename, QSettings.IniFormat) session_hist.beginGroup(namespace) messages = self.UserAdviceMessages def _ispending(msg): return not session_hist.value("{}/confirmed".format( msg.persistent_id), defaultValue=False, type=bool) messages = [msg for msg in messages if _ispending(msg)] if not messages: return message = messages[self.__msgchoice % len(messages)] self.__msgchoice += 1 self.__showMessage(message) def _userconfirmed(): session_hist = QSettings(filename, QSettings.IniFormat) session_hist.beginGroup(namespace) session_hist.setValue("{}/confirmed".format(message.persistent_id), True) session_hist.sync() self.__msgwidget.accepted.connect(_userconfirmed)
def __quicktipOnce(self): filename = os.path.join(settings.widget_settings_dir(), "user-session-state.ini") namespace = ("user-message-history/{0.__module__}.{0.__qualname__}" .format(type(self))) session_hist = QSettings(filename, QSettings.IniFormat) session_hist.beginGroup(namespace) messages = self.UserAdviceMessages def _ispending(msg): return not session_hist.value( "{}/confirmed".format(msg.persistent_id), defaultValue=False, type=bool) messages = [msg for msg in messages if _ispending(msg)] if not messages: return message = messages[self.__msgchoice % len(messages)] self.__msgchoice += 1 self.__showMessage(message) def _userconfirmed(): session_hist = QSettings(filename, QSettings.IniFormat) session_hist.beginGroup(namespace) session_hist.setValue( "{}/confirmed".format(message.persistent_id), True) session_hist.sync() self.__msgwidget.accepted.connect(_userconfirmed)
def max_active(self) -> int: value = self.__max_running # type: Optional[int] if value is None: value = mapping_get(os.environ, "MAX_ACTIVE_NODES", int, None) if value is None: s = QSettings() s.beginGroup(__name__) value = s.value("max-active-nodes", defaultValue=1, type=int) if value < 0: ccount = os.cpu_count() if ccount is None: return 1 else: return max(1, ccount + value) else: return max(1, value)
def _networkAccessManagerInstance(cls): netmanager = cls._NETMANAGER_REF and cls._NETMANAGER_REF() settings = QSettings() settings.beginGroup(__name__) cache_dir = os.path.join(config.cache_dir(), "help", __name__) cache_size = settings.value("cache_size_mb", defaultValue=50, type=int) if netmanager is None: try: os.makedirs(cache_dir, exist_ok=True) except OSError: pass netmanager = QNetworkAccessManager() cache = QNetworkDiskCache() cache.setCacheDirectory(cache_dir) cache.setMaximumCacheSize(cache_size * 2**20) netmanager.setCache(cache) cls._NETMANAGER_REF = ref(netmanager) return netmanager
def list_selected_encodings(): # type: () -> List[str] """ Return a list of all current selected encodings from user preferences. """ settings = QSettings() settings.beginGroup(SettingsGroup) res = [] for encoding, _ in ENCODING_DISPLAY_NAME: try: co = codecs.lookup(encoding) except LookupError: continue selected = settings.value(co.name, defaultValue=co.name in DEFAULT_ENCODINGS, type=bool) if selected: res.append(co.name) return res
def configureStyle(): from orangecanvas import styles args = CanvasApplication.__args settings = QSettings() settings.beginGroup("application-style") name = settings.value("style-name", "", type=str) if args is not None and args.style: # command line params take precedence name = args.style if name != "": inst = QApplication.instance() if inst is not None: if inst.style().objectName().lower() != name.lower(): QApplication.setStyle(name) theme = settings.value("palette", "", type=str) if args is not None and args.colortheme: theme = args.colortheme if theme and theme in styles.colorthemes: palette = styles.colorthemes[theme]() QApplication.setPalette(palette)
def _userconfirmed(): session_hist = QSettings(filename, QSettings.IniFormat) session_hist.beginGroup(namespace) session_hist.setValue("{}/confirmed".format(message.persistent_id), True) session_hist.sync()
def encodings_model(): # type: () -> QAbstractItemModel """ Return a list model of text encodings. The items are checkable and initialized based on current stored user preferences. Any change in check state is stored and writen back immediately. The normalized encoding (codec) names are accessible using `Qt.UserRole` Returns ------- model : QAbstractItemModel """ m = QStandardItemModel() items = [] settings = QSettings() settings.beginGroup(SettingsGroup) def is_selected(co): # type: (codecs.CodecInfo) -> bool return settings.value(co.name, defaultValue=co.name in DEFAULT_ENCODINGS, type=bool) def store_selected(index): # type: (QModelIndex) -> None # write back the selected state for index co = index.data(CodecInfoRole) state = index.data(Qt.CheckStateRole) if isinstance(co, codecs.CodecInfo): settings.setValue(co.name, state == Qt.Checked) for encoding, name in ENCODING_DISPLAY_NAME: try: co = codecs.lookup(encoding) except LookupError: continue item = QStandardItem(name) item.setData(co.name, EncodingNameRole) item.setData(co, CodecInfoRole) item.setToolTip(name + "; " + encoding) item.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled | Qt.ItemIsSelectable) item.setCheckState(Qt.Checked if is_selected(co) else Qt.Unchecked) items.append(item) def on_data_changed(first, last, roles=()): # type: (QModelIndex, QModelIndex, Iterable[int]) -> None if roles and Qt.CheckStateRole not in roles: return assert first.column() == last.column() for i in range(first.row(), last.row() + 1): index = first.sibling(i, first.column()) store_selected(index) m.invisibleRootItem().appendRows(items) m.dataChanged.connect(on_data_changed) return m
def _userconfirmed(): session_hist = QSettings(filename, QSettings.IniFormat) session_hist.beginGroup(namespace) session_hist.setValue( "{}/confirmed".format(message.persistent_id), True) session_hist.sync()