~encukou/picard/options-autoui

« back to all changes in this revision

Viewing changes to picard/ui/option.py

  • Committer: Petr Viktorin
  • Date: 2010-02-06 14:37:43 UTC
  • Revision ID: encukou@gmail.com-20100206143743-vudhi6rnlseff3xm
Add File Browser button
Convert the Moving options page

Show diffs side-by-side

added added

removed removed

Lines of Context:
25
25
        self.option = option
26
26
        self.stretch = parameters.pop('stretch', 0)
27
27
        self.default_button = parameters.pop('default_button', False)
 
28
        self.file_browser = parameters.pop('file_browser', False)
28
29
        self.description = parameters.pop('description', None)
29
30
        self.caption = parameters.pop('caption', '')
30
31
        # Translate
31
32
        if self.caption:
32
33
            self.caption = _(self.caption)
33
 
        else:
 
34
        elif self.caption is not None:
34
35
            self.caption = self.option.name
35
36
 
36
37
    def _end_init(self, parameters):
43
44
        self.addDescription(layout)
44
45
        if stretch is None:
45
46
            stretch = self.stretch
46
 
        if self.default_button:
 
47
        extra_buttons = self.default_button or self.file_browser
 
48
        if extra_buttons:
47
49
            myLayout = QtGui.QHBoxLayout()
48
50
            myLayout.addWidget(self.widget)
49
 
            default_button = QtGui.QPushButton(_("Default"))
50
 
            default_button.connect(default_button, QtCore.SIGNAL('clicked()'), self.resetToDefault)
51
 
            myLayout.addWidget(default_button)
 
51
            if self.default_button:
 
52
                button = QtGui.QPushButton(_("Default"))
 
53
                button.connect(button, QtCore.SIGNAL('clicked()'), self.resetToDefault)
 
54
                myLayout.addWidget(button)
 
55
            if self.file_browser:
 
56
                button = QtGui.QPushButton(_("Browse..."))
 
57
                button.connect(button, QtCore.SIGNAL('clicked()'), self.openFileBrowser)
 
58
                myLayout.addWidget(button)
52
59
            layout.addLayout(myLayout)
53
60
            added=myLayout
54
61
        else:
65
72
    def resetToDefault(self):
66
73
        self.setValue(self.option.default)
67
74
 
 
75
    def openFileBrowser(self):
 
76
        path = QtGui.QFileDialog.getExistingDirectory(self.widget, "", self.getValue())
 
77
        if path:
 
78
            path = os.path.normpath(unicode(path))
 
79
            self.setValue(path)
 
80
 
68
81
class CaptionedOptionUi(OptionUi):
69
82
    layout_class = QtGui.QVBoxLayout
70
83