|
1 # -*- coding: utf-8 -*- |
|
2 |
|
3 # Copyright (c) 2002 - 2009 Detlev Offenbach <detlev@die-offenbachs.de> |
|
4 # |
|
5 |
|
6 """ |
|
7 Module implementing a dialog to configure the various view profiles. |
|
8 """ |
|
9 |
|
10 from PyQt4.QtCore import * |
|
11 from PyQt4.QtGui import * |
|
12 |
|
13 from Ui_ViewProfileDialog import Ui_ViewProfileDialog |
|
14 from Ui_ViewProfileToolboxesDialog import Ui_ViewProfileToolboxesDialog |
|
15 from Ui_ViewProfileSidebarsDialog import Ui_ViewProfileSidebarsDialog |
|
16 |
|
17 class ViewProfileDialog(QDialog): |
|
18 """ |
|
19 Class implementing a dialog to configure the various view profiles. |
|
20 """ |
|
21 def __init__(self, layout, profiles, separateShell, separateBrowser, parent = None): |
|
22 """ |
|
23 Constructor |
|
24 |
|
25 @param layout type of the window layout (string) |
|
26 @param profiles dictionary of tuples containing the visibility |
|
27 of the windows for the various profiles |
|
28 @param separateShell flag indicating that the Python shell |
|
29 is a separate window (boolean) |
|
30 @param separateBrowser flag indicating that the file browser |
|
31 is a separate window (boolean) |
|
32 @param parent parent widget of this dialog (QWidget) |
|
33 """ |
|
34 QDialog.__init__(self, parent) |
|
35 |
|
36 self.__layout = layout |
|
37 if self.__layout == "Toolboxes": |
|
38 self.ui = Ui_ViewProfileToolboxesDialog() |
|
39 elif self.__layout == "Sidebars": |
|
40 self.ui = Ui_ViewProfileSidebarsDialog() |
|
41 else: |
|
42 self.ui = Ui_ViewProfileDialog() |
|
43 self.ui.setupUi(self) |
|
44 |
|
45 self.profiles = profiles |
|
46 |
|
47 # set the editor profile |
|
48 profile = self.profiles["edit"][0] |
|
49 self.ui.epdbCheckBox.setChecked(profile[2]) |
|
50 if self.__layout in ["Toolboxes", "Sidebars"]: |
|
51 profile = self.profiles["edit"][5] |
|
52 self.ui.epvtCheckBox.setChecked(profile[0]) |
|
53 self.ui.ephtCheckBox.setChecked(profile[1]) |
|
54 else: |
|
55 self.ui.eppbCheckBox.setChecked(profile[0]) |
|
56 if separateBrowser: |
|
57 self.ui.epfbCheckBox.setChecked(profile[1]) |
|
58 else: |
|
59 self.ui.epfbCheckBox.setChecked(False) |
|
60 self.ui.epfbCheckBox.setEnabled(False) |
|
61 if separateShell: |
|
62 self.ui.eppsCheckBox.setChecked(profile[3]) |
|
63 else: |
|
64 self.ui.eppsCheckBox.setChecked(False) |
|
65 self.ui.eppsCheckBox.setEnabled(False) |
|
66 self.ui.eplvCheckBox.setChecked(profile[4]) |
|
67 self.ui.eptvCheckBox.setChecked(profile[5]) |
|
68 self.ui.eptevCheckBox.setChecked(profile[6]) |
|
69 self.ui.epmpbCheckBox.setChecked(profile[7]) |
|
70 self.ui.eptwCheckBox.setChecked(profile[8]) |
|
71 |
|
72 # set the debug profile |
|
73 profile = self.profiles["debug"][0] |
|
74 self.ui.dpdbCheckBox.setChecked(profile[2]) |
|
75 if self.__layout in ["Toolboxes", "Sidebars"]: |
|
76 profile = self.profiles["edit"][5] |
|
77 self.ui.dpvtCheckBox.setChecked(profile[0]) |
|
78 self.ui.dphtCheckBox.setChecked(profile[1]) |
|
79 else: |
|
80 self.ui.dppbCheckBox.setChecked(profile[0]) |
|
81 if separateBrowser: |
|
82 self.ui.dpfbCheckBox.setChecked(profile[1]) |
|
83 else: |
|
84 self.ui.dpfbCheckBox.setChecked(False) |
|
85 self.ui.dpfbCheckBox.setEnabled(False) |
|
86 if separateShell: |
|
87 self.ui.dppsCheckBox.setChecked(profile[3]) |
|
88 else: |
|
89 self.ui.dppsCheckBox.setChecked(False) |
|
90 self.ui.dppsCheckBox.setEnabled(False) |
|
91 self.ui.dplvCheckBox.setChecked(profile[4]) |
|
92 self.ui.dptvCheckBox.setChecked(profile[5]) |
|
93 self.ui.dptevCheckBox.setChecked(profile[6]) |
|
94 self.ui.dpmpbCheckBox.setChecked(profile[7]) |
|
95 self.ui.dptwCheckBox.setChecked(profile[8]) |
|
96 |
|
97 def getProfiles(self): |
|
98 """ |
|
99 Public method to retrieve the configured profiles. |
|
100 |
|
101 @return dictionary of tuples containing the visibility |
|
102 of the windows for the various profiles |
|
103 """ |
|
104 if self.__layout in ["Toolboxes", "Sidebars"]: |
|
105 # get the edit profile |
|
106 self.profiles["edit"][0][2] = self.ui.epdbCheckBox.isChecked() |
|
107 self.profiles["edit"][5] = [\ |
|
108 self.ui.epvtCheckBox.isChecked(), |
|
109 self.ui.ephtCheckBox.isChecked(), |
|
110 ] |
|
111 # get the debug profile |
|
112 self.profiles["debug"][0][2] = self.ui.dpdbCheckBox.isChecked() |
|
113 self.profiles["debug"][5] = [\ |
|
114 self.ui.dpvtCheckBox.isChecked(), |
|
115 self.ui.dphtCheckBox.isChecked(), |
|
116 ] |
|
117 else: |
|
118 # get the edit profile |
|
119 self.profiles["edit"][0] = [\ |
|
120 self.ui.eppbCheckBox.isChecked(), |
|
121 self.ui.epfbCheckBox.isChecked(), |
|
122 self.ui.epdbCheckBox.isChecked(), |
|
123 self.ui.eppsCheckBox.isChecked(), |
|
124 self.ui.eplvCheckBox.isChecked(), |
|
125 self.ui.eptvCheckBox.isChecked(), |
|
126 self.ui.eptevCheckBox.isChecked(), |
|
127 self.ui.epmpbCheckBox.isChecked(), |
|
128 self.ui.eptwCheckBox.isChecked(), |
|
129 ] |
|
130 |
|
131 # get the debug profile |
|
132 self.profiles["debug"][0] = [\ |
|
133 self.ui.dppbCheckBox.isChecked(), |
|
134 self.ui.dpfbCheckBox.isChecked(), |
|
135 self.ui.dpdbCheckBox.isChecked(), |
|
136 self.ui.dppsCheckBox.isChecked(), |
|
137 self.ui.dplvCheckBox.isChecked(), |
|
138 self.ui.dptvCheckBox.isChecked(), |
|
139 self.ui.dptevCheckBox.isChecked(), |
|
140 self.ui.dpmpbCheckBox.isChecked(), |
|
141 self.ui.dptwCheckBox.isChecked(), |
|
142 ] |
|
143 |
|
144 return self.profiles |