summaryrefslogtreecommitdiff
path: root/qhexedit2/python/python2_pyqt4/optionsdialog.py
blob: 4b10a32b6db60db5146c8e8e888f93fa082cdc82 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#!/usr/bin/env python

import sys
from PyQt4 import QtCore, QtGui

from Ui_optionsdialog import Ui_OptionsDialog


class OptionsDialog(QtGui.QDialog):
    accepted = QtCore.pyqtSignal()

    def __init__(self, fileName=None):
        super(OptionsDialog, self).__init__()
        self.ui = Ui_OptionsDialog()
        self.ui.setupUi(self)
        
        self.readSettings()
        self.writeSettings()

    def show(self):
        self.readSettings()
        super(OptionsDialog, self).show()
        
    def accept(self):
        self.writeSettings()
        self.accepted.emit()
        super(OptionsDialog, self).hide()
        
    def readSettings(self):
        settings = QtCore.QSettings()
        
        self.setColor(self.ui.lbHighlightingColor, QtGui.QColor(settings.value("HighlightingColor", QtGui.QColor(0xff, 0xff, 0x99, 0xff))))
        self.setColor(self.ui.lbAddressAreaColor, QtGui.QColor(settings.value("AddressAreaColor", QtGui.QColor(0xd4, 0xd4, 0xd4, 0xff))))
        self.setColor(self.ui.lbSelectionColor, QtGui.QColor(settings.value("SelectionColor", QtGui.QColor(0x6d, 0x9e, 0xff, 0xff))))
        self.ui.leWidgetFont.setFont(QtGui.QFont(settings.value("WidgetFont", QtGui.QFont(QtGui.QFont("Courier New", 10)))))

        if sys.version_info >= (3, 0):
            self.ui.sbAddressAreaWidth.setValue(int(settings.value("AddressAreaWidth", 4)))
            self.ui.cbAddressArea.setChecked(settings.value("AddressArea", 'true')=='true')
            self.ui.cbAsciiArea.setChecked(settings.value("AsciiArea", 'true')=='true')
            self.ui.cbHighlighting.setChecked(settings.value("Highlighting", 'true')=='true')
            self.ui.cbOverwriteMode.setChecked(settings.value("OverwriteMode", 'true')=='true')
            self.ui.cbReadOnly.setChecked(settings.value("ReadOnly", 'false')=='true')

        else:
            self.ui.sbAddressAreaWidth.setValue(settings.value("AddressAreaWidth", 4).toInt()[0])
            self.ui.cbAddressArea.setChecked(settings.value("AddressArea", True).toBool())
            self.ui.cbAsciiArea.setChecked(settings.value("AsciiArea", True).toBool())
            self.ui.cbHighlighting.setChecked(settings.value("Highlighting", True).toBool())
            self.ui.cbOverwriteMode.setChecked(settings.value("OverwriteMode", True).toBool())
            self.ui.cbReadOnly.setChecked(settings.value("ReadOnly", False).toBool())


    def writeSettings(self):
        settings = QtCore.QSettings()
        if sys.version_info >= (3, 0):
            def b(b):
                if b: return 'true'
                else: return 'false'
            settings.setValue("AddressArea", b(self.ui.cbAddressArea.isChecked()))
            settings.setValue("AsciiArea", b(self.ui.cbAsciiArea.isChecked()))
            settings.setValue("Highlighting", b(self.ui.cbHighlighting.isChecked()))
            settings.setValue("OverwriteMode", b(self.ui.cbOverwriteMode.isChecked()))
            settings.setValue("ReadOnly", b(self.ui.cbReadOnly.isChecked()))
        else:
            settings.setValue("AddressArea", self.ui.cbAddressArea.isChecked())
            settings.setValue("AsciiArea", self.ui.cbAsciiArea.isChecked())
            settings.setValue("Highlighting", self.ui.cbHighlighting.isChecked())
            settings.setValue("OverwriteMode", self.ui.cbOverwriteMode.isChecked())
            settings.setValue("ReadOnly", self.ui.cbReadOnly.isChecked())
        
        settings.setValue("HighlightingColor", self.ui.lbHighlightingColor.palette().color(QtGui.QPalette.Background))
        settings.setValue("AddressAreaColor", self.ui.lbAddressAreaColor.palette().color(QtGui.QPalette.Background))
        settings.setValue("SelectionColor", self.ui.lbSelectionColor.palette().color(QtGui.QPalette.Background))
        settings.setValue("WidgetFont", self.ui.leWidgetFont.font())
        
        settings.setValue("AddressAreaWidth", self.ui.sbAddressAreaWidth.value())
        
    def reject(self):
        super(OptionsDialog, self).hide()
        
    def setColor(self, label, color):
        palette = label.palette()
        palette.setColor(QtGui.QPalette.Background, color)
        label.setPalette(palette)
        label.setAutoFillBackground(True)

    def on_pbHighlightingColor_pressed(self):
        print("hier")
        color = QtGui.QColorDialog.getColor(self.ui.lbHighlightingColor.palette().color(QtGui.QPalette.Background), self)
        if color.isValid():
            self.setColor(self.ui.lbHighlightingColor, color)
        
    def on_pbAddressAreaColor_pressed(self):
        color = QtGui.QColorDialog.getColor(self.ui.lbAddressAreaColor.palette().color(QtGui.QPalette.Background), self)
        if color.isValid():
            self.setColor(self.ui.lbAddressAreaColor, color)
        
    def on_pbSelectionColor_pressed(self):
        color = QtGui.QColorDialog.getColor(self.ui.lbSelectionColor.palette().color(QtGui.QPalette.Background), self)
        if color.isValid():
            self.setColor(self.ui.lbSelectioncColor, color)
        
    def on_pbWidgetFont_pressed(self):
        font, ok = QtGui.QFontDialog().getFont(self.ui.leWidgetFont.font(), self)
        if ok:
            self.ui.leWidgetFont.setFont(font)