Diffstat (limited to 'core/settings/launcher/tabssettings.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | core/settings/launcher/tabssettings.cpp | 150 |
1 files changed, 99 insertions, 51 deletions
diff --git a/core/settings/launcher/tabssettings.cpp b/core/settings/launcher/tabssettings.cpp index 292c615..fc2d2c9 100644 --- a/core/settings/launcher/tabssettings.cpp +++ b/core/settings/launcher/tabssettings.cpp | |||
@@ -24,154 +24,202 @@ | |||
24 | #include <qpe/resource.h> | 24 | #include <qpe/resource.h> |
25 | #include <qpe/applnk.h> | 25 | #include <qpe/applnk.h> |
26 | #include <qpe/mimetype.h> | 26 | #include <qpe/mimetype.h> |
27 | #include <qpe/qcopenvelope_qws.h> | 27 | #include <qpe/qcopenvelope_qws.h> |
28 | #include <qpe/config.h> | 28 | #include <qpe/config.h> |
29 | 29 | ||
30 | #include <qlistview.h> | 30 | #include <qlistbox.h> |
31 | #include <qheader.h> | 31 | #include <qpushbutton.h> |
32 | #include <qlayout.h> | 32 | #include <qlayout.h> |
33 | #include <qlabel.h> | 33 | #include <qlabel.h> |
34 | #include <qwhatsthis.h> | 34 | #include <qwhatsthis.h> |
35 | 35 | ||
36 | #include "tabdialog.h" | ||
37 | |||
36 | #include <stdlib.h> | 38 | #include <stdlib.h> |
39 | #include <qmessagebox.h> | ||
40 | |||
41 | |||
37 | 42 | ||
38 | TabsSettings::TabsSettings ( QWidget *parent, const char *name ) | 43 | TabsSettings::TabsSettings ( QWidget *parent, const char *name ) |
39 | : QWidget ( parent, name ) | 44 | : QWidget ( parent, name ) |
40 | { | 45 | { |
41 | QBoxLayout *lay = new QVBoxLayout ( this, 4, 4 ); | 46 | QGridLayout *lay = new QGridLayout ( this, 0, 0, 4, 4 ); |
42 | 47 | ||
43 | QLabel *l = new QLabel ( tr( "Launcher Tabs:" ), this ); | 48 | QLabel *l = new QLabel ( tr( "Launcher Tabs:" ), this ); |
44 | lay-> addWidget ( l ); | 49 | lay-> addMultiCellWidget ( l, 0, 0, 0, 1 ); |
45 | |||
46 | m_list = new QListView ( this ); | ||
47 | m_list-> addColumn ( "foobar" ); | ||
48 | m_list-> header ( )-> hide ( ); | ||
49 | 50 | ||
50 | lay-> addWidget ( m_list ); | 51 | m_list = new QListBox ( this ); |
52 | lay-> addMultiCellWidget ( m_list, 1, 4, 0, 0 ); | ||
51 | 53 | ||
52 | QWhatsThis::add ( m_list, tr( "foobar" )); | 54 | QWhatsThis::add ( m_list, tr( "foobar" )); |
53 | 55 | ||
56 | QPushButton *p; | ||
57 | p = new QPushButton ( tr( "New" ), this ); | ||
58 | lay-> addWidget ( p, 1, 1 ); | ||
59 | connect ( p, SIGNAL( clicked ( )), this, SLOT( newClicked ( ))); | ||
60 | |||
61 | p = new QPushButton ( tr( "Edit" ), this ); | ||
62 | lay-> addWidget ( p, 2, 1 ); | ||
63 | connect ( p, SIGNAL( clicked ( )), this, SLOT( editClicked ( ))); | ||
64 | |||
65 | p = new QPushButton ( tr( "Delete" ), this ); | ||
66 | lay-> addWidget ( p, 3, 1 ); | ||
67 | connect ( p, SIGNAL( clicked ( )), this, SLOT( deleteClicked ( ))); | ||
68 | |||
69 | lay-> setRowStretch ( 4, 10 ); | ||
70 | |||
54 | init ( ); | 71 | init ( ); |
55 | } | 72 | } |
56 | 73 | ||
57 | void TabsSettings::init ( ) | 74 | void TabsSettings::init ( ) |
58 | { | 75 | { |
59 | QListViewItem *lvi; | ||
60 | |||
61 | AppLnkSet rootFolder( MimeType::appsFolderName ( )); | 76 | AppLnkSet rootFolder( MimeType::appsFolderName ( )); |
62 | QStringList types = rootFolder. types ( ); | 77 | QStringList types = rootFolder. types ( ); |
78 | |||
63 | for ( QStringList::Iterator it = types. begin ( ); it != types. end ( ); ++it ) { | 79 | for ( QStringList::Iterator it = types. begin ( ); it != types. end ( ); ++it ) { |
64 | lvi = new QListViewItem ( m_list, rootFolder. typeName ( *it )); | 80 | m_list-> insertItem ( rootFolder. typePixmap ( *it ), rootFolder. typeName ( *it )); |
65 | lvi-> setPixmap ( 0, rootFolder. typePixmap ( *it )); | ||
66 | m_ids << *it; | 81 | m_ids << *it; |
67 | } | 82 | } |
68 | QImage img ( Resource::loadImage ( "DocsIcon" )); | 83 | QImage img ( Resource::loadImage ( "DocsIcon" )); |
69 | QPixmap pix; | 84 | QPixmap pix; |
70 | pix = img. smoothScale ( AppLnk::smallIconSize ( ), AppLnk::smallIconSize ( )); | 85 | pix = img. smoothScale ( AppLnk::smallIconSize ( ), AppLnk::smallIconSize ( )); |
71 | lvi = new QListViewItem ( m_list, tr( "Documents" )); | 86 | m_list-> insertItem ( pix, tr( "Documents" )); |
72 | lvi-> setPixmap ( 0, pix ); | ||
73 | m_ids += "Documents"; // No tr | 87 | m_ids += "Documents"; // No tr |
74 | 88 | ||
75 | readTabSettings ( ); | 89 | readTabSettings ( ); |
76 | } | 90 | } |
77 | 91 | ||
78 | void TabsSettings::readTabSettings ( ) | 92 | void TabsSettings::readTabSettings ( ) |
79 | { | 93 | { |
80 | Config cfg ( "Launcher" ); | 94 | Config cfg ( "Launcher" ); |
81 | QString grp ( "Tab %1" ); // No tr | 95 | QString grp ( "Tab %1" ); // No tr |
82 | m_tabs. clear ( ); | 96 | m_tabs. clear ( ); |
83 | 97 | ||
84 | for ( QStringList::Iterator it = m_ids. begin ( ); it != m_ids. end ( ); ++it ) { | 98 | for ( QStringList::Iterator it = m_ids. begin ( ); it != m_ids. end ( ); ++it ) { |
85 | TabSettings ts; | 99 | TabConfig tc; |
86 | ts. m_view = Icon; | 100 | tc. m_view = TabConfig::Icon; |
87 | ts. m_bg_type = Ruled; | 101 | tc. m_bg_type = TabConfig::Ruled; |
88 | ts. m_changed = false; | 102 | tc. m_changed = false; |
89 | 103 | ||
90 | cfg. setGroup ( grp. arg ( *it )); | 104 | cfg. setGroup ( grp. arg ( *it )); |
91 | 105 | ||
92 | QString view = cfg. readEntry ( "View", "Icon" ); | 106 | QString view = cfg. readEntry ( "View", "Icon" ); |
93 | if ( view == "List" ) // No tr | 107 | if ( view == "List" ) // No tr |
94 | ts. m_view = List; | 108 | tc. m_view = TabConfig::List; |
95 | 109 | ||
96 | QString bgType = cfg. readEntry ( "BackgroundType", "Ruled" ); | 110 | QString bgType = cfg. readEntry ( "BackgroundType", "Ruled" ); |
97 | if ( bgType == "SolidColor" ) | 111 | if ( bgType == "SolidColor" ) |
98 | ts. m_bg_type = SolidColor; | 112 | tc. m_bg_type = TabConfig::SolidColor; |
99 | else if ( bgType == "Image" ) // No tr | 113 | else if ( bgType == "Image" ) // No tr |
100 | ts. m_bg_type = Image; | 114 | tc. m_bg_type = TabConfig::Image; |
101 | 115 | ||
102 | ts. m_bg_image = cfg. readEntry ( "BackgroundImage", "wallpaper/opie" ); | 116 | tc. m_bg_image = cfg. readEntry ( "BackgroundImage", "wallpaper/opie" ); |
103 | ts. m_bg_color = cfg. readEntry ( "BackgroundColor" ); | 117 | tc. m_bg_color = cfg. readEntry ( "BackgroundColor" ); |
104 | ts. m_text_color = cfg. readEntry ( "TextColor" ); | 118 | tc. m_text_color = cfg. readEntry ( "TextColor" ); |
105 | QStringList f = cfg. readListEntry ( "Font", ',' ); | 119 | QStringList f = cfg. readListEntry ( "Font", ',' ); |
106 | if ( f. count ( ) == 4 ) { | 120 | if ( f. count ( ) == 4 ) { |
107 | ts. m_font_family = f [0]; | 121 | tc. m_font_family = f [0]; |
108 | ts. m_font_size = f [1]. toInt ( ); | 122 | tc. m_font_size = f [1]. toInt ( ); |
109 | } else { | 123 | } else { |
110 | ts. m_font_family = font ( ). family ( ); | 124 | tc. m_font_family = font ( ). family ( ); |
111 | ts. m_font_size = font ( ). pointSize ( ); | 125 | tc. m_font_size = font ( ). pointSize ( ); |
112 | } | 126 | } |
113 | m_tabs [*it] = ts; | 127 | m_tabs [*it] = tc; |
114 | } | 128 | } |
115 | } | 129 | } |
116 | 130 | ||
117 | 131 | ||
118 | void TabsSettings::accept ( ) | 132 | void TabsSettings::accept ( ) |
119 | { | 133 | { |
120 | Config cfg ( "Launcher" ); | 134 | Config cfg ( "Launcher" ); |
121 | 135 | ||
122 | // Launcher Tab | 136 | // Launcher Tab |
123 | QString grp ( "Tab %1" ); // No tr | 137 | QString grp ( "Tab %1" ); // No tr |
124 | 138 | ||
125 | for ( QStringList::Iterator it = m_ids. begin ( ); it != m_ids. end ( ); ++it ) { | 139 | for ( QStringList::Iterator it = m_ids. begin ( ); it != m_ids. end ( ); ++it ) { |
126 | TabSettings &tab = m_tabs [*it]; | 140 | TabConfig &tc = m_tabs [*it]; |
127 | 141 | ||
128 | cfg. setGroup ( grp. arg ( *it )); | 142 | cfg. setGroup ( grp. arg ( *it )); |
129 | if ( !tab. m_changed ) | 143 | if ( !tc. m_changed ) |
130 | continue; | 144 | continue; |
131 | switch ( tab. m_view ) { | 145 | switch ( tc. m_view ) { |
132 | case Icon: | 146 | case TabConfig::Icon: |
133 | cfg.writeEntry ( "View", "Icon" ); | 147 | cfg.writeEntry ( "View", "Icon" ); |
134 | break; | 148 | break; |
135 | case List: | 149 | case TabConfig::List: |
136 | cfg.writeEntry ( "View", "List" ); | 150 | cfg.writeEntry ( "View", "List" ); |
137 | break; | 151 | break; |
138 | } | 152 | } |
139 | 153 | ||
140 | QCopEnvelope e ( "QPE/Launcher", "setTabView(QString,int)" ); | 154 | QCopEnvelope e ( "QPE/Launcher", "setTabView(QString,int)" ); |
141 | e << *it << tab. m_view; | 155 | e << *it << tc. m_view; |
142 | 156 | ||
143 | cfg. writeEntry ( "BackgroundImage", tab. m_bg_image ); | 157 | cfg. writeEntry ( "BackgroundImage", tc. m_bg_image ); |
144 | cfg. writeEntry ( "BackgroundColor", tab. m_bg_color ); | 158 | cfg. writeEntry ( "BackgroundColor", tc. m_bg_color ); |
145 | cfg. writeEntry ( "TextColor", tab. m_text_color ); | 159 | cfg. writeEntry ( "TextColor", tc. m_text_color ); |
146 | 160 | ||
147 | QString f = tab. m_font_family + "," + QString::number ( tab. m_font_size ) + ",50,0"; | 161 | QString f = tc. m_font_family + "," + QString::number ( tc. m_font_size ) + ",50,0"; |
148 | cfg. writeEntry ( "Font", f ); | 162 | cfg. writeEntry ( "Font", f ); |
149 | QCopEnvelope be ( "QPE/Launcher", "setTabBackground(QString,int,QString)" ); | 163 | QCopEnvelope be ( "QPE/Launcher", "setTabBackground(QString,int,QString)" ); |
150 | 164 | ||
151 | switch ( tab. m_bg_type ) { | 165 | switch ( tc. m_bg_type ) { |
152 | case Ruled: | 166 | case TabConfig::Ruled: |
153 | cfg.writeEntry( "BackgroundType", "Ruled" ); | 167 | cfg.writeEntry( "BackgroundType", "Ruled" ); |
154 | be << *it << tab. m_bg_type << QString(""); | 168 | be << *it << tc. m_bg_type << QString(""); |
155 | break; | 169 | break; |
156 | case SolidColor: | 170 | case TabConfig::SolidColor: |
157 | cfg.writeEntry( "BackgroundType", "SolidColor" ); | 171 | cfg.writeEntry( "BackgroundType", "SolidColor" ); |
158 | be << *it << tab. m_bg_type << tab. m_bg_color; | 172 | be << *it << tc. m_bg_type << tc. m_bg_color; |
159 | break; | 173 | break; |
160 | case Image: | 174 | case TabConfig::Image: |
161 | cfg.writeEntry( "BackgroundType", "Image" ); | 175 | cfg.writeEntry( "BackgroundType", "Image" ); |
162 | be << *it << tab. m_bg_type << tab. m_bg_image; | 176 | be << *it << tc. m_bg_type << tc. m_bg_image; |
163 | break; | 177 | break; |
164 | } | 178 | } |
165 | 179 | ||
166 | QCopEnvelope te( "QPE/Launcher", "setTextColor(QString,QString)" ); | 180 | QCopEnvelope te( "QPE/Launcher", "setTextColor(QString,QString)" ); |
167 | te << *it << tab. m_text_color; | 181 | te << *it << tc. m_text_color; |
168 | 182 | ||
169 | QCopEnvelope fe ( "QPE/Launcher", "setFont(QString,QString,int,int,int)" ); | 183 | QCopEnvelope fe ( "QPE/Launcher", "setFont(QString,QString,int,int,int)" ); |
170 | fe << *it << tab. m_font_family; | 184 | fe << *it << tc. m_font_family; |
171 | fe << tab. m_font_size; | 185 | fe << tc. m_font_size; |
172 | fe << 50 << 0; | 186 | fe << 50 << 0; |
173 | 187 | ||
174 | tab. m_changed = false; | 188 | tc. m_changed = false; |
189 | } | ||
190 | } | ||
191 | |||
192 | void TabsSettings::newClicked ( ) | ||
193 | { | ||
194 | QMessageBox::information ( this, tr( "Error" ), tr( "Not implemented yet" )); | ||
175 | } | 195 | } |
196 | |||
197 | void TabsSettings::deleteClicked ( ) | ||
198 | { | ||
199 | int ind = m_list-> currentItem ( ); | ||
200 | |||
201 | if ( ind < 0 ) | ||
202 | return; | ||
203 | |||
204 | QMessageBox::information ( this, tr( "Error" ), tr( "Not implemented yet" )); | ||
176 | } | 205 | } |
177 | 206 | ||
207 | void TabsSettings::editClicked ( ) | ||
208 | { | ||
209 | int ind = m_list-> currentItem ( ); | ||
210 | |||
211 | if ( ind < 0 ) | ||
212 | return; | ||
213 | |||
214 | TabConfig tc = m_tabs [m_ids [ind]]; | ||
215 | |||
216 | TabDialog *d = new TabDialog ( m_list-> pixmap ( ind ), m_list-> text ( ind ), tc, this, "TabDialog", true ); | ||
217 | |||
218 | d-> showMaximized ( ); | ||
219 | if ( d-> exec ( ) == QDialog::Accepted ) { | ||
220 | tc. m_changed = true; | ||
221 | m_tabs [m_ids [ind]] = tc; | ||
222 | } | ||
223 | |||
224 | delete d; | ||
225 | } | ||