Beispiel #1
0
class Settings(QtGui.QDialog):
    def __init__(self, WebinyNotifier):
        QtGui.QDialog.__init__(self)
        self.ui = SettingsWindow()
        self.ui.setupUi(self)
        self._settings = SettingsObj()
        self.parent = WebinyNotifier

    def show(self):
        self.ui.getPort().setText(str(self._settings.port))
        self.ui.getRequestsLimit().setText(str(self._settings.requests_limit))
        self.ui.getShowBalloon().setChecked(bool(self._settings.show_balloon))
        # Set log levels table data
        self.ui.getLogLevelsTable().verticalHeader().setVisible(False)
        self.ui.getLogLevelsTable().setModel(self._settings.createLogLevelsModel(self))
        self.ui.getLogLevelsTable().resizeColumnsToContents()
        self.ui.getLogLevelsTable().horizontalHeader().setStretchLastSection(True)
        super(Settings, self).show()

    def on_buttonBox_rejected(self):
        self.hide()

    def on_buttonBox_accepted(self):
        self.hide()
        self._save()

    def _save(self):
        # Store some data for extra processing
        oldRequestsLimit = self._settings.requests_limit
        # Assign new port and restart listener if port is changed
        oldPort = self._settings.port
        self._settings.port = int(self.ui.getPort().text())
        self._settings.requests_limit = int(self.ui.getRequestsLimit().text())
        self._settings.show_balloon = int(self.ui.getShowBalloon().isChecked())
        # Get data from model
        self._settings.log_levels = self._settings._LOG_LEVELS_TABLE_MODEL.getData()
        # Save to DB
        self._settings.save()

        # Extra processing
        if self._settings.requests_limit != oldRequestsLimit:
            Request.all(True)
            self.parent.refreshRequestsModel()

        if self._settings.port != oldPort:
            self.parent.restartListener()
        self.hide()

    def btnCancel(self):
        self.hide()
Beispiel #2
0
    def paint(self, painter, option, index):
        # This method will be called every time a particular cell is
        # in view and that view is changed in some way. We ask the 
        # delegates parent (in this case a table view) if the index
        # in question (the table cell) already has a widget associated 
        # with it. If not, create one with the text for this index and
        # connect its clicked signal to a slot in the parent view so 
        # we are notified when its used and can do something. 
        if not self.parent().indexWidget(index):
            rowData = Settings.getLogLevelsModel().getRowData(index)

            col = QColor(rowData[2])
            self.frm = ColorPickerFrame()
            # Set index of current table row
            self.frm.setIndex(index)
            self.frm.setStyleSheet("QWidget { background-color: %s }" % col.name())
            self.frm.setGeometry(130, 22, 100, 100)
            self.frm.setLineWidth(0)
            self.frm.setMidLineWidth(2)
            self.frm.setFrameStyle(QFrame.Box)
            self.frm.setFrameShadow(QFrame.Sunken)
            self.connect(self.frm, QtCore.SIGNAL('colorPickerClicked'), self.colorPickerClicked)
            self.parent().setIndexWidget(index, self.frm)
Beispiel #3
0
    def colorPickerClicked(self, item):
        col = QtGui.QColorDialog.getColor()

        if col.isValid():
            item.setStyleSheet("QWidget { background-color: %s }" % col.name())
            Settings.getLogLevelsModel().setData(item.getIndex(), col.name(), QtCore.Qt.DisplayRole)
Beispiel #4
0
 def __init__(self, WebinyNotifier):
     QtGui.QDialog.__init__(self)
     self.ui = SettingsWindow()
     self.ui.setupUi(self)
     self._settings = SettingsObj()
     self.parent = WebinyNotifier