Esempio n. 1
0
 def setupSysTray(self):
     settings = Settings()
     settings.beginGroup(settings.keys.main)
     if settings.value('useSystemTrayIcon', QVariant(1)).toInt()[0]:
         icon = self.windowIcon()
         try:
             trayIcon = self.trayIcon
         except (AttributeError, ):
             self.trayIcon = trayIcon = QSystemTrayIcon(self)
             self.trayMenu = trayMenu = QMenu()
             trayIcon.setIcon(icon)
             trayMenu.addAction(icon, applicationName())
             trayMenu.addSeparator()
             for action in self.menuFile.actions():
                 trayMenu.addAction(action)
                 trayIcon.setContextMenu(trayMenu)
             self.connect(trayIcon, Signals.trayIconActivated,
                          self.on_trayIcon_activated)
         trayIcon.show()
     else:
         try:
             trayIcon = self.trayIcon
         except (AttributeError, ):
             pass
         else:
             trayIcon.hide()
Esempio n. 2
0
 def setupColors(self):
     settings = Settings()
     settings.beginGroup(settings.keys.appearance)
     cls = ValueColorItem
     keys = ['increaseColor', 'neutralColor', 'decreaseColor']
     attrs = [k.replace('Color', '') for k in keys]
     values = [QColor(settings.value(key, getattr(cls, attr)))
                  for key, attr in zip(keys, attrs)]
     cls.setColors(*values)
Esempio n. 3
0
 def setCurrentSession(self, filename):
     settings = Settings()
     settings.beginGroup(settings.keys.main)
     files = settings.value('recentSessions').toStringList()
     files.removeAll(filename)
     files.prepend(filename)
     files = files[:self.maxRecentSessions]
     settings.setValue('recentSessions', files)
     self.updateRecentSessions()
Esempio n. 4
0
    def saveSettings(self):
        """ Signal handler for last window closing.  Saves selected keys.

        @return None
        """
        settings = Settings()
        settings.beginGroup(settings.keys.account)
        keys = [QVariant([key, currency]) for (key, currency), item in
                    self.sharedKeys.items() if item is not None]
        settings.setValue(self.settingKey, keys)
Esempio n. 5
0
    def writeSettings(self):
        """ Saves some main window settings.

        """
        settings = Settings()
        settings.beginGroup(settings.keys.main)
        settings.setValue(settings.keys.size, self.size())
        settings.setValue(settings.keys.position, self.pos())
        settings.setValue(settings.keys.maximized, self.isMaximized())
        settings.setValue(settings.keys.winstate, self.saveState())
        settings.setValueDump(settings.keys.ctabstate, self.centralTabState())
        settings.endGroup()
Esempio n. 6
0
    def __init__(self, parent=None):
        """ Initializer.

        @param parent ancestor of this widget
        """
        QFrame.__init__(self, parent)
        self.setupUi(self)
        self.settings = Settings()
        self.settings.beginGroup(self.settings.keys.plots)
        self.setupOptionsMenu()
        self.setupPlotsMenu()
        self.setupPlot()
Esempio n. 7
0
 def on_actionStrategyDesigner_triggered(self):
     from profit.strategydesigner.main import StrategyDesigner
     settings = Settings()
     settings.beginGroup(settings.keys.strategy)
     if settings.value('type', '').toString()=='file':
         filename = settings.value('location', '').toString()
         def x(name):
             print '## strategy file named %s updated' % (name, )
     else:
         def x(name):
             print "## strategy file updated but i don't care"
         filename = None
     win = StrategyDesigner(filename=filename, parent=self)
     win.show()
Esempio n. 8
0
    def readSettings(self):
        """ Reads selected keys from saved settings.

        @return None
        """
        settings = Settings()
        settings.beginGroup(settings.keys.account)
        keys = settings.value(self.settingKey)
        if keys.isValid():
            keys = [[str(b) for b in a.toStringList()] for a in keys.toList()]
        else:
            keys = self.defaultKeys
        setup = self.dataModel.setAccountKeyDisplay
        for key, currency in keys:
            setup(key, currency, True, self.summaryView)
Esempio n. 9
0
 def readSettings(self):
     settings = Settings()
     settings.beginGroup(settings.keys.main)
     size = settings.value(settings.keys.size,
                           defaults.windowSize).toSize()
     pos = settings.value(settings.keys.position,
                          defaults.windowPosition).toPoint()
     maxed = settings.value(settings.keys.maximized, False).toBool()
     self.resize(size)
     self.move(pos)
     if maxed:
         self.showMaximized()
     state = settings.value(settings.keys.winstate, QVariant())
     self.restoreState(state.toByteArray())
     settings.endGroup()
Esempio n. 10
0
    def readSettings(self):
        """ Applies stored setting values to instance.

        @return None
        """
        self.settings = obj = Settings()
        obj.beginGroup(obj.keys.designer)
        self.resize(obj.value(obj.keys.size, defaults.windowSize).toSize())
        self.move(
            obj.value(obj.keys.position, defaults.windowPosition).toPoint())
        if obj.value(obj.keys.maximized, False).toBool():
            self.showMaximized()
        self.restoreState(
            obj.value(obj.keys.winstate, QVariant()).toByteArray())
        self.splitter.restoreState(
            obj.value(obj.keys.splitstate, QVariant()).toByteArray())
Esempio n. 11
0
 def updateRecentSessions(self):
     settings = Settings()
     settings.beginGroup(settings.keys.main)
     files = settings.value('recentSessions').toStringList()
     files = set([abspath(str(s)) for s in files])
     files = list(files)
     count = min(len(files), self.maxRecentSessions)
     for i in range(count):
         text = files[i]
         action = self.recentSessionsActions[i]
         action.setText(basename(str(text)))
         action.setData(QVariant(text))
         action.setVisible(True)
     for i in range(count, self.maxRecentSessions):
         action = self.recentSessionsActions[i]
         action.setVisible(False)
     self.recentSeparator.setVisible(count > 0)
Esempio n. 12
0
 def urlActions(self, symbol):
     settings = Settings()
     settings.beginGroup(settings.keys.urls)
     urls = settings.value(settings.keys.tickerurls, defaults.tickerUrls())
     settings.endGroup()
     urls = [str(s) for s in defaults.tickerUrls()]
     actions = []
     for url in urls:  #urls.toStringList():
         try:
             name, url = str(url).split(':', 1)
             url = Template(url).substitute(symbol=symbol)
         except (
                 KeyError,
                 ValueError,
         ):
             continue
         action = makeUrlAction(name, url, toolTip='%s %s' % (symbol, name))
         actions.append(action)
     return actions
Esempio n. 13
0
    def setSessionPlot(self, session, collection, tickerId, *args):
        """ Associate a session with this instance.

        @param session Session instance
        @param tickerId id of ticker as integer
        @param *indexes unused
        @return None
        """
        self.sessionArgs = (session, collection, tickerId, args)
        if not self.plotWidgets:
            settings = Settings()
            settings.beginGroup('Plots')
            settings.beginGroup('%s' % tickerId)
            #count = settings.value('displaycount', QVariant(1)).toInt()[0]
            count = 1
            for i in range(count):
                self.addPlot()
        else:
            for plot in self.plotWidgets:
                plot.setSessionPlot(session, collection, tickerId, *args)
Esempio n. 14
0
 def checkClose(self):
     check = True
     settings = Settings()
     settings.beginGroup(settings.keys.main)
     confirm = settings.value('confirmCloseWhenModified', QVariant(1))
     confirm = confirm.toInt()[0]
     if self.session.isModified() and confirm:
         buttons = QMessageBox.Save|QMessageBox.Discard|QMessageBox.Cancel
         text = 'This session has been modified'
         if self.session.isConnected():
             text += ' and is connected and receiving messages.'
         else:
             text += '.'
         text += '\n\nDo you want to save your changes?'
         msg = QMessageBox.question(
             self, applicationName(), text, buttons, QMessageBox.Save)
         if msg == QMessageBox.Discard:
             pass
         elif msg == QMessageBox.Cancel:
             check = False
         elif msg == QMessageBox.Save:
             self.actionSaveSession.trigger()
     return check
Esempio n. 15
0
 def saveCount(self):
     settings = Settings()
     settings.beginGroup('Plots')
     settings.beginGroup('%s' % self.sessionArgs[1].__class__.__name__)
     settings.setValue('displaycount', len(self.plotWidgets))
Esempio n. 16
0
    @pyqtSignature('')
    def on_tickerUrlUp_clicked(self):
        self.moveTickerUrl(-1)

    @pyqtSignature('')
    def on_tickerUrlDown_clicked(self):
        self.moveTickerUrl(1)

    def moveTickerUrl(self, offset):
        widget = self.tickerUrls
        item = widget.currentItem()
        other = widget.item(widget.currentRow() + offset)
        itemtext, othertext = item.text(), other.text()
        item.setText(othertext)
        other.setText(itemtext)
        selmodel = widget.selectionModel()
        selmodel.clear()
        selmodel.setCurrentIndex(widget.indexFromItem(other), selmodel.Select)

    def accept(self):
        self.writeSettings(Settings())
        QDialog.accept(self)


if __name__ == '__main__':
    app = QApplication([])
    win = SettingsDialog()
    win.readSettings(Settings())
    win.exec_()
Esempio n. 17
0
 def accept(self):
     self.writeSettings(Settings())
     QDialog.accept(self)
Esempio n. 18
0
 def on_actionClearRecentMenu_triggered(self, checked=False):
     for action in self.recentSessionsActions:
         action.setVisible(False)
     settings = Settings()
     settings.beginGroup(settings.keys.main)
     settings.remove('recentSessions')
Esempio n. 19
0
 def on_actionSettings_triggered(self):
     from profit.workbench.settingsdialog import SettingsDialog
     dlg = SettingsDialog()
     dlg.readSettings(Settings())
     if dlg.exec_() == dlg.Accepted:
         self.emit(Signals.settingsChanged)