Пример #1
0
    def save_to_conf(self):
        """
        Save settings to configuration file
        """

        for checkbox, (option, _default) in self.checkboxes.items():
            self.set_option(option, checkbox.isChecked())
        for radiobutton, (option, _default) in self.radiobuttons.items():
            self.set_option(option, radiobutton.isChecked())
        for lineedit, (option, _default) in self.lineedits.items():
            self.set_option(option, unicode(lineedit.text()))
        for spinbox, (option, _default) in self.spinboxes.items():
            self.set_option(option, spinbox.value())
        for combobox, (option, _default) in self.comboboxes.items():
            data = combobox.itemData(combobox.currentIndex())
            self.set_option(option, from_qvariant(data, unicode))
        for (fontbox, sizebox), option in self.fontboxes.items():
            font = fontbox.currentFont()
            font.setPointSize(sizebox.value())
            self.set_font(font, option)
        for clayout, (option, _default) in self.coloredits.items():
            self.set_option(option, unicode(clayout.lineedit.text()))
        for (clayout, cb_bold, cb_italic), (option, _default) in self.scedits.items():
            color = unicode(clayout.lineedit.text())
            bold = cb_bold.isChecked()
            italic = cb_italic.isChecked()
            self.set_option(option, (color, bold, italic))
            
        for dateedit, (option, _default) in self.dateedits.items():
            value = dateedit.date().toString("yyyy-MM-dd") 
            self.set_option(option, value)
Пример #2
0
    def save_to_conf(self):
        """
        Save settings to configuration file
        """

        for checkbox, (option, _default) in self.checkboxes.items():
            self.set_option(option, checkbox.isChecked())
        for radiobutton, (option, _default) in self.radiobuttons.items():
            self.set_option(option, radiobutton.isChecked())
        for lineedit, (option, _default) in self.lineedits.items():
            self.set_option(option, unicode(lineedit.text()))
        for spinbox, (option, _default) in self.spinboxes.items():
            self.set_option(option, spinbox.value())
        for combobox, (option, _default) in self.comboboxes.items():
            data = combobox.itemData(combobox.currentIndex())
            self.set_option(option, from_qvariant(data, unicode))
        for (fontbox, sizebox), option in self.fontboxes.items():
            font = fontbox.currentFont()
            font.setPointSize(sizebox.value())
            self.set_font(font, option)
        for clayout, (option, _default) in self.coloredits.items():
            self.set_option(option, unicode(clayout.lineedit.text()))
        for (clayout, cb_bold, cb_italic), (option,
                                            _default) in self.scedits.items():
            color = unicode(clayout.lineedit.text())
            bold = cb_bold.isChecked()
            italic = cb_italic.isChecked()
            self.set_option(option, (color, bold, italic))

        for dateedit, (option, _default) in self.dateedits.items():
            value = dateedit.date().toString("yyyy-MM-dd")
            self.set_option(option, value)
Пример #3
0
 def setEditorData(self, editor, index):
     text = from_qvariant(index.model().data(index, Qt.DisplayRole), str)
     if index.column() in (MOD1, MOD2, MOD3, KEY):
         i = editor.findText(text)
         if i == -1:
             i = 0
         editor.setCurrentIndex(i)
     else:
         QItemDelegate.setEditorData(self, editor, index)
Пример #4
0
 def setEditorData(self, editor, index):
     text = from_qvariant(index.model().data(index, Qt.DisplayRole), str)
     if index.column() in (MOD1, MOD2, MOD3, KEY):
         i = editor.findText(text)
         if i == -1:
             i = 0
         editor.setCurrentIndex(i)
     else:
         QItemDelegate.setEditorData(self, editor, index)
Пример #5
0
 def setData(self, index, value, role=Qt.EditRole):
     if index.isValid() and 0 <= index.row() < len(self.shortcuts):
         shortcut = self.shortcuts[index.row()]
         key = shortcut.key
         column = index.column()
         text = from_qvariant(value, str)
         if column == MOD1:
             key.modifiers[0] = Key.modifier_from_name(text)
         elif column == MOD2:
             key.modifiers[1] = Key.modifier_from_name(text)
         elif column == MOD3:
             key.modifiers[2] = Key.modifier_from_name(text)
         elif column == KEY:
             key.key = Key.key_from_str(text)
         self.emit(SIGNAL("dataChanged(QModelIndex,QModelIndex)"), index,
                   index)
         return True
     return False
Пример #6
0
 def setData(self, index, value, role=Qt.EditRole):
     if index.isValid() and 0 <= index.row() < len(self.shortcuts):
         shortcut = self.shortcuts[index.row()]
         key = shortcut.key
         column = index.column()
         text = from_qvariant(value, str)
         if column == MOD1:
             key.modifiers[0] = Key.modifier_from_name(text)
         elif column == MOD2:
             key.modifiers[1] = Key.modifier_from_name(text)
         elif column == MOD3:
             key.modifiers[2] = Key.modifier_from_name(text)
         elif column == KEY:
             key.key = Key.key_from_str(text)
         self.emit(SIGNAL("dataChanged(QModelIndex,QModelIndex)"),
                   index, index)
         return True
     return False
Пример #7
0
 def load_from_conf(self):
     """Load settings from configuration file"""
     for checkbox, (option, default) in self.checkboxes.items():
         checkbox.setChecked(self.get_option(option, default))
         self.connect(checkbox, SIGNAL("clicked(bool)"),
                      lambda _foo, opt=option: self.has_been_modified(opt))
     for radiobutton, (option, default) in self.radiobuttons.items():
         radiobutton.setChecked(self.get_option(option, default))
         
         self.connect(radiobutton, SIGNAL("toggled(bool)"),
                      lambda _foo, opt=option: self.has_been_modified(opt))
     for lineedit, (option, default) in self.lineedits.items():
         lineedit.setText(self.get_option(option, default))
         self.connect(lineedit, SIGNAL("textChanged(QString)"),
                      lambda _foo, opt=option: self.has_been_modified(opt))
     for spinbox, (option, default) in self.spinboxes.items():
         spinbox.setValue(self.get_option(option, default))
         self.connect(spinbox, SIGNAL('valueChanged(int)'),
                      lambda _foo, opt=option: self.has_been_modified(opt))
     for combobox, (option, default) in self.comboboxes.items():
         value = self.get_option(option, default)
         for index in range(combobox.count()):
             data = from_qvariant(combobox.itemData(index), unicode)
             # For PyQt API v2, it is necessary to convert `data` to 
             # unicode in case the original type was not a string, like an 
             # integer for example (see src.gui.qt.compat.from_qvariant):
             if unicode(data) == unicode(value):
                 break
         combobox.setCurrentIndex(index)
         self.connect(combobox, SIGNAL('currentIndexChanged(int)'),
                      lambda _foo, opt=option: self.has_been_modified(opt))
     for (fontbox, sizebox), option in self.fontboxes.items():
         font = self.get_font(option)
         fontbox.setCurrentFont(font)
         sizebox.setValue(font.pointSize())
         if option is None:
             property = 'plugin_font'
         else:
             property = option
         self.connect(fontbox, SIGNAL('currentIndexChanged(int)'),
                      lambda _foo, opt=property: self.has_been_modified(opt))
         self.connect(sizebox, SIGNAL('valueChanged(int)'),
                      lambda _foo, opt=property: self.has_been_modified(opt))
     for clayout, (option, default) in self.coloredits.items():
         property = to_qvariant(option)
         edit = clayout.lineedit
         btn = clayout.colorbtn
         edit.setText(self.get_option(option, default))
         self.connect(btn, SIGNAL('clicked()'),
                      lambda opt=option: self.has_been_modified(opt))
         self.connect(edit, SIGNAL("textChanged(QString)"),
                      lambda _foo, opt=option: self.has_been_modified(opt))
     
     for dateedit, (option, default) in self.dateedits.items():
         def extract_qdate_from_str(x):
             return QDate(int(x[:4]), int(x[5:7]), int(x[8:10]))
         dateedit.setDate(extract_qdate_from_str(self.get_option(option, default)))
         self.connect(dateedit, SIGNAL('dateChanged(QDate)'),
                      lambda _foo, opt=option: self.has_been_modified(opt))
     
 
     for (clayout, cb_bold, cb_italic
          ), (option, default) in self.scedits.items():
         edit = clayout.lineedit
         btn = clayout.colorbtn
         color, bold, italic = self.get_option(option, default)
         edit.setText(color)
         cb_bold.setChecked(bold)
         cb_italic.setChecked(italic)
         self.connect(btn, SIGNAL('clicked()'),
                      lambda opt=option: self.has_been_modified(opt))
         self.connect(edit, SIGNAL("textChanged(QString)"),
                      lambda _foo, opt=option: self.has_been_modified(opt))
         self.connect(cb_bold, SIGNAL("clicked(bool)"),
                      lambda _foo, opt=option: self.has_been_modified(opt))
         self.connect(cb_italic, SIGNAL("clicked(bool)"),
                      lambda _foo, opt=option: self.has_been_modified(opt))
Пример #8
0
    def load_from_conf(self):
        """Load settings from configuration file"""
        for checkbox, (option, default) in self.checkboxes.items():
            checkbox.setChecked(self.get_option(option, default))
            self.connect(checkbox,
                         SIGNAL("clicked(bool)"),
                         lambda _foo, opt=option: self.has_been_modified(opt))
        for radiobutton, (option, default) in self.radiobuttons.items():
            radiobutton.setChecked(self.get_option(option, default))

            self.connect(radiobutton,
                         SIGNAL("toggled(bool)"),
                         lambda _foo, opt=option: self.has_been_modified(opt))
        for lineedit, (option, default) in self.lineedits.items():
            lineedit.setText(self.get_option(option, default))
            self.connect(lineedit,
                         SIGNAL("textChanged(QString)"),
                         lambda _foo, opt=option: self.has_been_modified(opt))
        for spinbox, (option, default) in self.spinboxes.items():
            spinbox.setValue(self.get_option(option, default))
            self.connect(spinbox,
                         SIGNAL('valueChanged(int)'),
                         lambda _foo, opt=option: self.has_been_modified(opt))
        for combobox, (option, default) in self.comboboxes.items():
            value = self.get_option(option, default)
            for index in range(combobox.count()):
                data = from_qvariant(combobox.itemData(index), unicode)
                # For PyQt API v2, it is necessary to convert `data` to
                # unicode in case the original type was not a string, like an
                # integer for example (see src.gui.qt.compat.from_qvariant):
                if unicode(data) == unicode(value):
                    break
            combobox.setCurrentIndex(index)
            self.connect(combobox,
                         SIGNAL('currentIndexChanged(int)'),
                         lambda _foo, opt=option: self.has_been_modified(opt))
        for (fontbox, sizebox), option in self.fontboxes.items():
            font = self.get_font(option)
            fontbox.setCurrentFont(font)
            sizebox.setValue(font.pointSize())
            if option is None:
                property = 'plugin_font'
            else:
                property = option
            self.connect(
                fontbox,
                SIGNAL('currentIndexChanged(int)'),
                lambda _foo, opt=property: self.has_been_modified(opt))
            self.connect(
                sizebox,
                SIGNAL('valueChanged(int)'),
                lambda _foo, opt=property: self.has_been_modified(opt))
        for clayout, (option, default) in self.coloredits.items():
            property = to_qvariant(option)
            edit = clayout.lineedit
            btn = clayout.colorbtn
            edit.setText(self.get_option(option, default))
            self.connect(btn,
                         SIGNAL('clicked()'),
                         lambda opt=option: self.has_been_modified(opt))
            self.connect(edit,
                         SIGNAL("textChanged(QString)"),
                         lambda _foo, opt=option: self.has_been_modified(opt))

        for dateedit, (option, default) in self.dateedits.items():

            def extract_qdate_from_str(x):
                return QDate(int(x[:4]), int(x[5:7]), int(x[8:10]))

            dateedit.setDate(
                extract_qdate_from_str(self.get_option(option, default)))
            self.connect(dateedit,
                         SIGNAL('dateChanged(QDate)'),
                         lambda _foo, opt=option: self.has_been_modified(opt))

        for (clayout, cb_bold, cb_italic), (option,
                                            default) in self.scedits.items():
            edit = clayout.lineedit
            btn = clayout.colorbtn
            color, bold, italic = self.get_option(option, default)
            edit.setText(color)
            cb_bold.setChecked(bold)
            cb_italic.setChecked(italic)
            self.connect(btn,
                         SIGNAL('clicked()'),
                         lambda opt=option: self.has_been_modified(opt))
            self.connect(edit,
                         SIGNAL("textChanged(QString)"),
                         lambda _foo, opt=option: self.has_been_modified(opt))
            self.connect(cb_bold,
                         SIGNAL("clicked(bool)"),
                         lambda _foo, opt=option: self.has_been_modified(opt))
            self.connect(cb_italic,
                         SIGNAL("clicked(bool)"),
                         lambda _foo, opt=option: self.has_been_modified(opt))
Пример #9
0
def keybinding(attr):
    """Return keybinding"""
    ks = getattr(QKeySequence, attr)
    return from_qvariant(QKeySequence.keyBindings(ks)[0], str)
Пример #10
0
def get_item_user_text(item):
    """Get QTreeWidgetItem user role string"""
    return from_qvariant(item.data(0, Qt.UserRole), unicode)