Diffstat (limited to 'core/settings/launcher/tabdialog.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | core/settings/launcher/tabdialog.cpp | 121 |
1 files changed, 111 insertions, 10 deletions
diff --git a/core/settings/launcher/tabdialog.cpp b/core/settings/launcher/tabdialog.cpp index ca48e66..86202f0 100644 --- a/core/settings/launcher/tabdialog.cpp +++ b/core/settings/launcher/tabdialog.cpp | |||
@@ -1,6 +1,33 @@ | |||
1 | /* | ||
2 | =. This file is part of the OPIE Project | ||
3 | .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org> | ||
4 | .>+-= | ||
5 | _;:, .> :=|. This file is free software; you can | ||
6 | .> <`_, > . <= redistribute it and/or modify it under | ||
7 | :`=1 )Y*s>-.-- : the terms of the GNU General Public | ||
8 | .="- .-=="i, .._ License as published by the Free Software | ||
9 | - . .-<_> .<> Foundation; either version 2 of the License, | ||
10 | ._= =} : or (at your option) any later version. | ||
11 | .%`+i> _;_. | ||
12 | .i_,=:_. -<s. This file is distributed in the hope that | ||
13 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | ||
14 | : .. .:, . . . without even the implied warranty of | ||
15 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | ||
16 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General | ||
17 | ..}^=.= = ; Public License for more details. | ||
18 | ++= -. .` .: | ||
19 | : = ...= . :.=- You should have received a copy of the GNU | ||
20 | -. .:....=;==+<; General Public License along with this file; | ||
21 | -_. . . )=. = see the file COPYING. If not, write to the | ||
22 | -- :-=` Free Software Foundation, Inc., | ||
23 | 59 Temple Place - Suite 330, | ||
24 | Boston, MA 02111-1307, USA. | ||
25 | |||
26 | */ | ||
1 | 27 | ||
2 | #include <qpe/resource.h> | 28 | #include <qpe/resource.h> |
3 | #include <qpe/config.h> | 29 | #include <qpe/config.h> |
30 | #include <qpe/applnk.h> | ||
4 | 31 | ||
5 | #include <qlayout.h> | 32 | #include <qlayout.h> |
6 | #include <qvbox.h> | 33 | #include <qvbox.h> |
@@ -10,10 +37,12 @@ | |||
10 | #include <qlabel.h> | 37 | #include <qlabel.h> |
11 | #include <qradiobutton.h> | 38 | #include <qradiobutton.h> |
12 | #include <qbuttongroup.h> | 39 | #include <qbuttongroup.h> |
40 | #include <qpushbutton.h> | ||
13 | 41 | ||
14 | #include <opie/ofontselector.h> | 42 | #include <opie/ofontselector.h> |
15 | #include <opie/otabwidget.h> | 43 | #include <opie/otabwidget.h> |
16 | #include <opie/ocolorbutton.h> | 44 | #include <opie/ocolorbutton.h> |
45 | #include <opie/ofiledialog.h> | ||
17 | 46 | ||
18 | #include "tabdialog.h" | 47 | #include "tabdialog.h" |
19 | 48 | ||
@@ -38,7 +67,8 @@ public: | |||
38 | return (QPixmap *) &m_small; | 67 | return (QPixmap *) &m_small; |
39 | else | 68 | else |
40 | return (QPixmap *) &m_large; | 69 | return (QPixmap *) &m_large; |
41 | } | 70 | } |
71 | |||
42 | private: | 72 | private: |
43 | QPixmap m_large, m_small; | 73 | QPixmap m_large, m_small; |
44 | }; | 74 | }; |
@@ -185,6 +215,12 @@ public: | |||
185 | 215 | ||
186 | void paletteChange( const QPalette &p ) | 216 | void paletteChange( const QPalette &p ) |
187 | { | 217 | { |
218 | static bool excllock = false; | ||
219 | |||
220 | if ( excllock ) | ||
221 | return; | ||
222 | excllock = true; | ||
223 | |||
188 | unsetPalette ( ); | 224 | unsetPalette ( ); |
189 | QIconView::paletteChange ( p ); | 225 | QIconView::paletteChange ( p ); |
190 | if ( m_bgtype == TabConfig::Ruled ) | 226 | if ( m_bgtype == TabConfig::Ruled ) |
@@ -192,6 +228,8 @@ public: | |||
192 | QColorGroup cg = colorGroup ( ); | 228 | QColorGroup cg = colorGroup ( ); |
193 | cg.setColor ( QColorGroup::Text, m_textcolor ); | 229 | cg.setColor ( QColorGroup::Text, m_textcolor ); |
194 | setPalette ( QPalette ( cg, cg, cg )); | 230 | setPalette ( QPalette ( cg, cg, cg )); |
231 | |||
232 | excllock = false; | ||
195 | } | 233 | } |
196 | 234 | ||
197 | void setBackgroundPixmap ( const QPixmap &pm ) | 235 | void setBackgroundPixmap ( const QPixmap &pm ) |
@@ -212,7 +250,7 @@ public: | |||
212 | } | 250 | } |
213 | else | 251 | else |
214 | p-> fillRect ( r, m_bgcolor ); | 252 | p-> fillRect ( r, m_bgcolor ); |
215 | } | 253 | } |
216 | 254 | ||
217 | private: | 255 | private: |
218 | QColor m_textcolor; | 256 | QColor m_textcolor; |
@@ -252,8 +290,11 @@ TabDialog::TabDialog ( const QPixmap *tabicon, const QString &tabname, TabConfig | |||
252 | 290 | ||
253 | m_iconsize-> setButton ( tc. m_view ); | 291 | m_iconsize-> setButton ( tc. m_view ); |
254 | iconSizeClicked ( tc. m_view ); | 292 | iconSizeClicked ( tc. m_view ); |
293 | m_iconcolor-> setColor ( QColor ( m_tc. m_text_color )); | ||
294 | iconColorClicked ( m_iconcolor-> color ( )); | ||
255 | m_bgtype-> setButton ( tc. m_bg_type ); | 295 | m_bgtype-> setButton ( tc. m_bg_type ); |
256 | m_solidcolor-> setColor ( QColor ( tc. m_bg_color )); | 296 | m_solidcolor-> setColor ( QColor ( tc. m_bg_color )); |
297 | m_bgimage = tc. m_bg_image; | ||
257 | bgTypeClicked ( tc. m_bg_type ); | 298 | bgTypeClicked ( tc. m_bg_type ); |
258 | m_fontselect-> setSelectedFont ( tc. m_font_family, tc. m_font_style, tc. m_font_size ); | 299 | m_fontselect-> setSelectedFont ( tc. m_font_family, tc. m_font_style, tc. m_font_size ); |
259 | fontClicked ( m_fontselect-> selectedFont ( )); | 300 | fontClicked ( m_fontselect-> selectedFont ( )); |
@@ -302,16 +343,30 @@ QWidget *TabDialog::createBgTab ( QWidget *parent ) | |||
302 | hb-> addSpacing ( 10 ); | 343 | hb-> addSpacing ( 10 ); |
303 | 344 | ||
304 | m_solidcolor = new OColorButton ( tab ); | 345 | m_solidcolor = new OColorButton ( tab ); |
305 | connect ( m_solidcolor, SIGNAL( colorSelected ( const QColor & )), this, SLOT( colorClicked ( const QColor & ))); | 346 | connect ( m_solidcolor, SIGNAL( colorSelected ( const QColor & )), this, SLOT( bgColorClicked ( const QColor & ))); |
306 | hb-> addWidget ( m_solidcolor ); | 347 | hb-> addWidget ( m_solidcolor ); |
348 | hb-> addStretch ( 10 ); | ||
307 | 349 | ||
308 | gridLayout-> addLayout ( hb, 1, 1 ); | 350 | gridLayout-> addLayout ( hb, 1, 1 ); |
309 | 351 | ||
310 | rb = new QRadioButton( tr( "Image" ), tab, "image" ); | 352 | hb = new QHBoxLayout ( ); |
353 | hb-> setSpacing ( 4 ); | ||
354 | |||
355 | rb = new QRadioButton( tr( "Image" ), tab, "image" ); | ||
311 | m_bgtype-> insert ( rb, TabConfig::Image ); | 356 | m_bgtype-> insert ( rb, TabConfig::Image ); |
312 | gridLayout-> addWidget( rb, 3, 1 ); | 357 | hb-> addWidget( rb ); |
358 | hb-> addSpacing ( 10 ); | ||
359 | |||
360 | m_imagebrowse = new QPushButton ( tr( "Select..." ), tab ); | ||
361 | connect ( m_imagebrowse, SIGNAL( clicked ( )), this, SLOT( bgImageClicked ( ))); | ||
362 | hb-> addWidget ( m_imagebrowse ); | ||
363 | hb-> addStretch ( 10 ); | ||
364 | |||
365 | gridLayout-> addLayout ( hb, 2, 1 ); | ||
313 | 366 | ||
314 | //QPushButton *p; | 367 | QPushButton *p = new QPushButton ( tr( "Default" ), tab ); |
368 | connect ( p, SIGNAL( clicked ( )), this, SLOT( bgDefaultClicked ( ))); | ||
369 | gridLayout-> addWidget ( p, 3, 1 ); | ||
315 | 370 | ||
316 | connect ( m_bgtype, SIGNAL( clicked ( int )), this, SLOT( bgTypeClicked ( int ))); | 371 | connect ( m_bgtype, SIGNAL( clicked ( int )), this, SLOT( bgTypeClicked ( int ))); |
317 | 372 | ||
@@ -345,6 +400,18 @@ QWidget *TabDialog::createIconTab ( QWidget *parent ) | |||
345 | 400 | ||
346 | connect ( m_iconsize, SIGNAL( clicked ( int )), this, SLOT( iconSizeClicked ( int ))); | 401 | connect ( m_iconsize, SIGNAL( clicked ( int )), this, SLOT( iconSizeClicked ( int ))); |
347 | 402 | ||
403 | //vertLayout-> addSpacing ( 8 ); | ||
404 | |||
405 | //gridLayout = new QGridLayout ( vertLayout ); | ||
406 | gridLayout-> addRowSpacing ( 2, 8 ); | ||
407 | |||
408 | label = new QLabel ( tr( "Color:" ), tab ); | ||
409 | gridLayout-> addWidget ( label, 3, 0 ); | ||
410 | |||
411 | m_iconcolor = new OColorButton ( tab ); | ||
412 | connect ( m_iconcolor, SIGNAL( colorSelected ( const QColor & )), this, SLOT( iconColorClicked ( const QColor & ))); | ||
413 | gridLayout-> addWidget ( m_iconcolor, 3, 1, AlignLeft ); | ||
414 | |||
348 | vertLayout-> addStretch ( 10 ); | 415 | vertLayout-> addStretch ( 10 ); |
349 | 416 | ||
350 | return tab; | 417 | return tab; |
@@ -365,19 +432,51 @@ void TabDialog::bgTypeClicked ( int t ) | |||
365 | { | 432 | { |
366 | QString s; | 433 | QString s; |
367 | 434 | ||
435 | if ( m_bgtype-> id ( m_bgtype-> selected ( )) != t ) | ||
436 | m_bgtype-> setButton ( t ); | ||
437 | |||
368 | m_solidcolor-> setEnabled ( t == TabConfig::SolidColor ); | 438 | m_solidcolor-> setEnabled ( t == TabConfig::SolidColor ); |
369 | //m_imagebrowse-> setEnabled ( t == TabConfig::Image ); | 439 | m_imagebrowse-> setEnabled ( t == TabConfig::Image ); |
370 | //m_imagedefault-> setEnabled ( t == TabConfig::Image ); | ||
371 | 440 | ||
372 | if ( t == TabConfig::SolidColor ) | 441 | if ( t == TabConfig::SolidColor ) |
373 | s = m_solidcolor-> color ( ). name ( ); | 442 | s = m_solidcolor-> color ( ). name ( ); |
443 | else if ( t == TabConfig::Image ) | ||
444 | s = m_bgimage; | ||
374 | 445 | ||
375 | m_sample-> setBackgroundType ((TabConfig::BackgroundType) t, s ); | 446 | m_sample-> setBackgroundType ((TabConfig::BackgroundType) t, s ); |
376 | } | 447 | } |
377 | 448 | ||
378 | void TabDialog::colorClicked ( const QColor &col ) | 449 | void TabDialog::bgColorClicked ( const QColor & ) |
450 | { | ||
451 | bgTypeClicked ( TabConfig::SolidColor ); | ||
452 | } | ||
453 | |||
454 | void TabDialog::iconColorClicked ( const QColor &col ) | ||
455 | { | ||
456 | m_sample-> setTextColor ( col ); | ||
457 | } | ||
458 | |||
459 | void TabDialog::bgImageClicked ( ) | ||
460 | { | ||
461 | // ### use OFileSelector here ### | ||
462 | // this is just a quick c&p from the old appearance app | ||
463 | |||
464 | MimeTypes types; | ||
465 | QStringList list; | ||
466 | list << "image/*"; | ||
467 | types. insert ( "Images", list ); | ||
468 | |||
469 | QString file = OFileDialog::getOpenFileName ( 1, "/", QString::null, types ); | ||
470 | if ( !file. isEmpty ( )) { | ||
471 | m_bgimage = DocLnk ( file ). file ( ); | ||
472 | bgTypeClicked ( TabConfig::Image ); | ||
473 | } | ||
474 | } | ||
475 | |||
476 | void TabDialog::bgDefaultClicked ( ) | ||
379 | { | 477 | { |
380 | m_sample-> setBackgroundType ( TabConfig::SolidColor, col. name ( )); | 478 | m_bgimage = Resource::findPixmap ( "launcher/opie-background.jpg" ); |
479 | bgTypeClicked ( TabConfig::Image ); | ||
381 | } | 480 | } |
382 | 481 | ||
383 | void TabDialog::accept ( ) | 482 | void TabDialog::accept ( ) |
@@ -385,6 +484,8 @@ void TabDialog::accept ( ) | |||
385 | m_tc. m_view = (TabConfig::ViewMode) m_iconsize-> id ( m_iconsize-> selected ( )); | 484 | m_tc. m_view = (TabConfig::ViewMode) m_iconsize-> id ( m_iconsize-> selected ( )); |
386 | m_tc. m_bg_type = (TabConfig::BackgroundType) m_bgtype-> id ( m_bgtype-> selected ( )); | 485 | m_tc. m_bg_type = (TabConfig::BackgroundType) m_bgtype-> id ( m_bgtype-> selected ( )); |
387 | m_tc. m_bg_color = m_solidcolor-> color ( ). name ( ); | 486 | m_tc. m_bg_color = m_solidcolor-> color ( ). name ( ); |
487 | m_tc. m_bg_image = m_bgimage; | ||
488 | m_tc. m_text_color = m_iconcolor-> color ( ). name ( ); | ||
388 | m_tc. m_font_family = m_fontselect-> fontFamily ( ); | 489 | m_tc. m_font_family = m_fontselect-> fontFamily ( ); |
389 | m_tc. m_font_size = m_fontselect-> fontSize ( ); | 490 | m_tc. m_font_size = m_fontselect-> fontSize ( ); |
390 | m_tc. m_font_style = m_fontselect-> fontStyle ( ); | 491 | m_tc. m_font_style = m_fontselect-> fontStyle ( ); |