Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
 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
Exemplo n.º 5
0
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
Exemplo n.º 6
0
    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)
Exemplo n.º 7
0
 def _userconfirmed():
     session_hist = QSettings(filename, QSettings.IniFormat)
     session_hist.beginGroup(namespace)
     session_hist.setValue("{}/confirmed".format(message.persistent_id),
                           True)
     session_hist.sync()
Exemplo n.º 8
0
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
Exemplo n.º 9
0
 def _userconfirmed():
     session_hist = QSettings(filename, QSettings.IniFormat)
     session_hist.beginGroup(namespace)
     session_hist.setValue(
         "{}/confirmed".format(message.persistent_id), True)
     session_hist.sync()