summaryrefslogtreecommitdiff
path: root/core
authorsandman <sandman>2002-10-02 22:15:33 (UTC)
committer sandman <sandman>2002-10-02 22:15:33 (UTC)
commit7e864eb22b5663ad9771b562fbe901042dc68657 (patch) (unidiff)
treec7cc270012ff2aba51308088b51022b2056f9721 /core
parentc8d4ed632ac27261219e5824f988a320b96b8ae2 (diff)
downloadopie-7e864eb22b5663ad9771b562fbe901042dc68657.zip
opie-7e864eb22b5663ad9771b562fbe901042dc68657.tar.gz
opie-7e864eb22b5663ad9771b562fbe901042dc68657.tar.bz2
Launcher settings now also supports the new menu applets interface
Diffstat (limited to 'core') (more/less context) (ignore whitespace changes)
-rw-r--r--core/settings/launcher/guisettings.cpp153
-rw-r--r--core/settings/launcher/guisettings.h65
-rw-r--r--core/settings/launcher/launcher.pro4
-rw-r--r--core/settings/launcher/launchersettings.cpp9
-rw-r--r--core/settings/launcher/launchersettings.h4
-rw-r--r--core/settings/launcher/tabssettings.cpp22
-rw-r--r--core/settings/launcher/tabssettings.h5
-rw-r--r--core/settings/launcher/taskbarsettings.cpp68
8 files changed, 70 insertions, 260 deletions
diff --git a/core/settings/launcher/guisettings.cpp b/core/settings/launcher/guisettings.cpp
deleted file mode 100644
index a292663..0000000
--- a/core/settings/launcher/guisettings.cpp
+++ b/dev/null
@@ -1,153 +0,0 @@
1/*
2                This file is part of the OPIE Project
3 =. Copyright (c) 2002 Trolltech AS <info@trolltech.com>
4             .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org>
5           .>+-=
6 _;:,     .>    :=|. This file is free software; you can
7.> <`_,   >  .   <= redistribute it and/or modify it under
8:`=1 )Y*s>-.--   : the terms of the GNU General Public
9.="- .-=="i,     .._ License as published by the Free Software
10 - .   .-<_>     .<> Foundation; either version 2 of the License,
11     ._= =}       : or (at your option) any later version.
12    .%`+i>       _;_.
13    .i_,=:_.      -<s. This file is distributed in the hope that
14     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
15    : ..    .:,     . . . without even the implied warranty of
16    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
17  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU General
18..}^=.=       =       ; Public License for more details.
19++=   -.     .`     .:
20 :     =  ...= . :.=- You should have received a copy of the GNU
21 -.   .:....=;==+<; General Public License along with this file;
22  -_. . .   )=.  = see the file COPYING. If not, write to the
23    --        :-=` Free Software Foundation, Inc.,
24 59 Temple Place - Suite 330,
25 Boston, MA 02111-1307, USA.
26
27*/
28
29#include "guisettings.h"
30
31#include <qpe/config.h>
32#include <qpe/qpeapplication.h>
33#include <qpe/qcopenvelope_qws.h>
34
35#include <qlistview.h>
36#include <qcheckbox.h>
37#include <qheader.h>
38#include <qlayout.h>
39#include <qlabel.h>
40#include <qwhatsthis.h>
41
42#include <stdlib.h>
43
44
45GuiSettings::GuiSettings ( QWidget *parent, const char *name )
46 : QWidget ( parent, name )
47{
48 m_menu_changed = false;
49 m_busy_changed = false;
50
51 QGridLayout *lay = new QGridLayout ( this, 0, 0, 4, 4 );
52 lay-> addColSpacing ( 0, 16 );
53
54 m_omenu = new QCheckBox ( tr( "Show O-Menu" ), this );
55 lay-> addMultiCellWidget ( m_omenu, 0, 0, 0, 1 );
56
57 m_omenu_tabs = new QCheckBox ( tr( "Add Launcher tabs to O-Menu" ), this );
58 lay-> addWidget ( m_omenu_tabs, 1, 1 );
59
60 m_omenu_home = new QCheckBox ( tr( "Add 'Home' shortcut to O-Menu" ), this );
61 lay-> addWidget ( m_omenu_home, 2, 1 );
62
63 m_omenu_suspend = new QCheckBox ( tr( "Add 'Suspend' shortcut to O-Menu" ), this );
64 lay-> addWidget ( m_omenu_suspend, 3, 1 );
65
66 QWhatsThis::add( m_omenu_tabs, tr( "Adds the contents of the Launcher as menus in the O-Menu." ));
67 QWhatsThis::add( m_omenu, tr( "Check if you want the O-Menu in the taskbar." ));
68
69 connect ( m_omenu, SIGNAL( toggled ( bool )), m_omenu_tabs, SLOT( setEnabled ( bool )));
70 connect ( m_omenu, SIGNAL( toggled ( bool )), m_omenu_home, SLOT( setEnabled ( bool )));
71 connect ( m_omenu, SIGNAL( toggled ( bool )), m_omenu_suspend, SLOT( setEnabled ( bool )));
72
73 connect ( m_omenu, SIGNAL( toggled ( bool )), this, SLOT( menuChanged ( )));
74 connect ( m_omenu_tabs, SIGNAL( toggled ( bool )), this, SLOT( menuChanged ( )));
75 connect ( m_omenu_home, SIGNAL( toggled ( bool )), this, SLOT( menuChanged ( )));
76 connect ( m_omenu_suspend, SIGNAL( toggled ( bool )), this, SLOT( menuChanged ( )));
77
78 lay-> addRowSpacing ( 4, 8 );
79
80 m_busy = new QCheckBox ( tr( "Enable blinking busy indicator" ), this );
81 lay-> addMultiCellWidget ( m_busy, 5, 5, 0, 1 );
82
83 connect ( m_busy, SIGNAL( toggled( bool )), this, SLOT( busyChanged ( )));
84
85 lay-> setRowStretch ( 6, 10 );
86
87 init ( );
88}
89
90void GuiSettings::init ( )
91{
92 Config cfg ( "Taskbar" );
93 cfg. setGroup ( "Menu" );
94
95 m_omenu-> setChecked ( cfg. readBoolEntry ( "ShowMenu", true ));
96 m_omenu_tabs-> setChecked ( cfg. readBoolEntry ( "LauncherTabs", true ));
97 m_omenu_home-> setChecked ( cfg. readBoolEntry ( "Home", true ));
98 m_omenu_suspend-> setChecked ( cfg. readBoolEntry ( "Suspend", true ));
99
100 m_omenu_tabs-> setEnabled ( m_omenu-> isChecked ( ));
101 m_omenu_home-> setEnabled ( m_omenu-> isChecked ( ));
102 m_omenu_suspend-> setEnabled ( m_omenu-> isChecked ( ));
103
104 Config cfg2 ( "Launcher" );
105 cfg2. setGroup ( "GUI" );
106
107 m_busy-> setChecked ( cfg2. readEntry ( "BusyType" ). lower ( ) == "blink" );
108}
109
110void GuiSettings::menuChanged()
111{
112 m_menu_changed = true;
113}
114
115void GuiSettings::busyChanged()
116{
117 m_busy_changed = true;
118}
119
120void GuiSettings::accept ( )
121{
122 Config cfg ( "Taskbar" );
123 cfg. setGroup ( "Menu" );
124
125 if ( m_menu_changed ) {
126 cfg. writeEntry ( "ShowMenu", m_omenu-> isChecked ( ));
127 cfg. writeEntry ( "LauncherTabs", m_omenu_tabs-> isChecked ( ));
128 cfg. writeEntry ( "Home", m_omenu_home-> isChecked ( ));
129 cfg. writeEntry ( "Suspend", m_omenu_suspend-> isChecked ( ));
130 }
131 cfg. write ( );
132
133 if ( m_menu_changed )
134 QCopEnvelope ( "QPE/TaskBar", "reloadApplets()" );
135
136 Config cfg2 ( "Launcher" );
137 cfg2. setGroup ( "GUI" );
138
139 QString busytype = QString ( m_busy-> isChecked ( ) ? "blink" : "" );
140
141 if ( m_busy_changed ) {
142
143 cfg2. writeEntry ( "BusyType", busytype );
144 }
145
146 cfg2. write ( );
147
148 if ( m_busy_changed ) {
149 QCopEnvelope e ( "QPE/Launcher", "setBusyIndicatorType(QString)" );
150 e << busytype;
151 }
152}
153
diff --git a/core/settings/launcher/guisettings.h b/core/settings/launcher/guisettings.h
deleted file mode 100644
index 2673981..0000000
--- a/core/settings/launcher/guisettings.h
+++ b/dev/null
@@ -1,65 +0,0 @@
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*/
27
28#ifndef __GUI_SETTINGS_H__
29#define __GUI_SETTINGS_H__
30
31#include <qwidget.h>
32#include <qmap.h>
33
34class QListView;
35class QCheckListItem;
36class QCheckBox;
37
38
39class GuiSettings : public QWidget {
40 Q_OBJECT
41
42public:
43 GuiSettings ( QWidget *parent = 0, const char *name = 0 );
44
45 void accept ( );
46
47protected slots:
48 void menuChanged ( );
49 void busyChanged ( );
50
51protected:
52 void init ( );
53
54private:
55 QCheckBox *m_omenu;
56 QCheckBox *m_omenu_tabs;
57 QCheckBox *m_omenu_home;
58 QCheckBox *m_omenu_suspend;
59 QCheckBox *m_busy;
60
61 bool m_menu_changed;
62 bool m_busy_changed;
63};
64
65#endif
diff --git a/core/settings/launcher/launcher.pro b/core/settings/launcher/launcher.pro
index 0554d0a..1c72126 100644
--- a/core/settings/launcher/launcher.pro
+++ b/core/settings/launcher/launcher.pro
@@ -4,7 +4,7 @@ DESTDIR = $(OPIEDIR)/bin
4HEADERS = launchersettings.h \ 4HEADERS = launchersettings.h \
5 tabssettings.h \ 5 tabssettings.h \
6 taskbarsettings.h \ 6 taskbarsettings.h \
7 guisettings.h \ 7 menusettings.h \
8 tabconfig.h \ 8 tabconfig.h \
9 tabdialog.h 9 tabdialog.h
10 10
@@ -12,7 +12,7 @@ SOURCES = main.cpp \
12 launchersettings.cpp \ 12 launchersettings.cpp \
13 tabssettings.cpp \ 13 tabssettings.cpp \
14 taskbarsettings.cpp \ 14 taskbarsettings.cpp \
15 guisettings.cpp \ 15 menusettings.cpp \
16 tabdialog.cpp 16 tabdialog.cpp
17 17
18INCLUDEPATH += $(OPIEDIR)/include 18INCLUDEPATH += $(OPIEDIR)/include
diff --git a/core/settings/launcher/launchersettings.cpp b/core/settings/launcher/launchersettings.cpp
index 22bf1d1..c32d998 100644
--- a/core/settings/launcher/launchersettings.cpp
+++ b/core/settings/launcher/launchersettings.cpp
@@ -26,13 +26,14 @@
26*/ 26*/
27 27
28#include <qlayout.h> 28#include <qlayout.h>
29#include <qapplication.h>
29 30
30#include <opie/otabwidget.h> 31#include <opie/otabwidget.h>
31 32
32#include "launchersettings.h" 33#include "launchersettings.h"
33#include "tabssettings.h" 34#include "tabssettings.h"
35#include "menusettings.h"
34#include "taskbarsettings.h" 36#include "taskbarsettings.h"
35#include "guisettings.h"
36 37
37 38
38LauncherSettings::LauncherSettings ( ) : QDialog ( 0, "LauncherSettings", false ) 39LauncherSettings::LauncherSettings ( ) : QDialog ( 0, "LauncherSettings", false )
@@ -46,11 +47,11 @@ LauncherSettings::LauncherSettings ( ) : QDialog ( 0, "LauncherSettings", false
46 47
47 m_tabs = new TabsSettings ( tw ); 48 m_tabs = new TabsSettings ( tw );
48 m_taskbar = new TaskbarSettings ( tw ); 49 m_taskbar = new TaskbarSettings ( tw );
49 m_gui = new GuiSettings ( tw ); 50 m_menu = new MenuSettings ( tw );
50 51
51 tw-> addTab ( m_taskbar, "launchersettings/taskbartab.png", tr( "Taskbar" )); 52 tw-> addTab ( m_taskbar, "launchersettings/taskbartab.png", tr( "Taskbar" ));
53 tw-> addTab ( m_menu, "launchersettings/menutab.png", tr( "O-Menu" ));
52 tw-> addTab ( m_tabs, "launchersettings/tabstab.png", tr( "Tabs" )); 54 tw-> addTab ( m_tabs, "launchersettings/tabstab.png", tr( "Tabs" ));
53 tw-> addTab ( m_gui, "launchersettings/guitab.png", tr( "GUI" ));
54 55
55 tw-> setCurrentTab ( m_taskbar ); 56 tw-> setCurrentTab ( m_taskbar );
56} 57}
@@ -58,8 +59,8 @@ LauncherSettings::LauncherSettings ( ) : QDialog ( 0, "LauncherSettings", false
58void LauncherSettings::accept ( ) 59void LauncherSettings::accept ( )
59{ 60{
60 m_taskbar-> accept ( ); 61 m_taskbar-> accept ( );
62 m_menu-> accept ( );
61 m_tabs-> accept ( ); 63 m_tabs-> accept ( );
62 m_gui-> accept ( );
63 64
64 QDialog::accept ( ); 65 QDialog::accept ( );
65} 66}
diff --git a/core/settings/launcher/launchersettings.h b/core/settings/launcher/launchersettings.h
index fa9977e..56c916e 100644
--- a/core/settings/launcher/launchersettings.h
+++ b/core/settings/launcher/launchersettings.h
@@ -32,7 +32,7 @@
32 32
33class TabsSettings; 33class TabsSettings;
34class TaskbarSettings; 34class TaskbarSettings;
35class GuiSettings; 35class MenuSettings;
36 36
37class LauncherSettings : public QDialog { 37class LauncherSettings : public QDialog {
38 Q_OBJECT 38 Q_OBJECT
@@ -46,7 +46,7 @@ public:
46private: 46private:
47 TabsSettings *m_tabs; 47 TabsSettings *m_tabs;
48 TaskbarSettings *m_taskbar; 48 TaskbarSettings *m_taskbar;
49 GuiSettings *m_gui; 49 MenuSettings *m_menu;
50}; 50};
51 51
52#endif 52#endif
diff --git a/core/settings/launcher/tabssettings.cpp b/core/settings/launcher/tabssettings.cpp
index 8f5f7fa..6cc69c0 100644
--- a/core/settings/launcher/tabssettings.cpp
+++ b/core/settings/launcher/tabssettings.cpp
@@ -39,6 +39,7 @@
39#include <qlayout.h> 39#include <qlayout.h>
40#include <qlabel.h> 40#include <qlabel.h>
41#include <qwhatsthis.h> 41#include <qwhatsthis.h>
42#include <qcheckbox.h>
42 43
43#include "tabdialog.h" 44#include "tabdialog.h"
44 45
@@ -75,6 +76,9 @@ TabsSettings::TabsSettings ( QWidget *parent, const char *name )
75 76
76 lay-> setRowStretch ( 4, 10 ); 77 lay-> setRowStretch ( 4, 10 );
77 78
79 m_busyblink = new QCheckBox ( tr( "Enable blinking busy indicator" ), this );
80 lay-> addMultiCellWidget ( m_busyblink, 5, 5, 0, 1 );
81
78 init ( ); 82 init ( );
79} 83}
80 84
@@ -93,12 +97,16 @@ void TabsSettings::init ( )
93 m_list-> insertItem ( pix, tr( "Documents" )); 97 m_list-> insertItem ( pix, tr( "Documents" ));
94 m_ids += "Documents"; // No tr 98 m_ids += "Documents"; // No tr
95 99
96 readTabSettings ( ); 100 Config cfg ( "Launcher" );
101
102 readTabSettings ( cfg );
103
104 cfg. setGroup ( "GUI" );
105 m_busyblink-> setChecked ( cfg. readEntry ( "BusyType" ). lower ( ) == "blink" );
97} 106}
98 107
99void TabsSettings::readTabSettings ( ) 108void TabsSettings::readTabSettings ( Config &cfg )
100{ 109{
101 Config cfg ( "Launcher" );
102 QString grp ( "Tab %1" ); // No tr 110 QString grp ( "Tab %1" ); // No tr
103 m_tabs. clear ( ); 111 m_tabs. clear ( );
104 112
@@ -198,6 +206,14 @@ void TabsSettings::accept ( )
198 206
199 tc. m_changed = false; 207 tc. m_changed = false;
200 } 208 }
209 cfg. setGroup ( "GUI" );
210 QString busytype = QString ( m_busyblink-> isChecked ( ) ? "blink" : "" );
211
212 cfg. writeEntry ( "BusyType", busytype );
213 {
214 QCopEnvelope e ( "QPE/Launcher", "setBusyIndicatorType(QString)" );
215 e << busytype;
216 }
201} 217}
202 218
203void TabsSettings::newClicked ( ) 219void TabsSettings::newClicked ( )
diff --git a/core/settings/launcher/tabssettings.h b/core/settings/launcher/tabssettings.h
index b17b523..47fcee2 100644
--- a/core/settings/launcher/tabssettings.h
+++ b/core/settings/launcher/tabssettings.h
@@ -33,6 +33,8 @@
33#include "tabconfig.h" 33#include "tabconfig.h"
34 34
35class QListBox; 35class QListBox;
36class QCheckBox;
37class Config;
36 38
37 39
38class TabsSettings : public QWidget { 40class TabsSettings : public QWidget {
@@ -50,13 +52,14 @@ protected slots:
50 52
51protected: 53protected:
52 void init ( ); 54 void init ( );
53 void readTabSettings ( ); 55 void readTabSettings ( Config & );
54 56
55private: 57private:
56 QListBox *m_list; 58 QListBox *m_list;
57 //QString currentTab; 59 //QString currentTab;
58 QStringList m_ids; 60 QStringList m_ids;
59 QMap <QString, TabConfig> m_tabs; 61 QMap <QString, TabConfig> m_tabs;
62 QCheckBox *m_busyblink;
60}; 63};
61 64
62 65
diff --git a/core/settings/launcher/taskbarsettings.cpp b/core/settings/launcher/taskbarsettings.cpp
index b5c03c8..5bc5ad2 100644
--- a/core/settings/launcher/taskbarsettings.cpp
+++ b/core/settings/launcher/taskbarsettings.cpp
@@ -52,7 +52,7 @@ TaskbarSettings::TaskbarSettings ( QWidget *parent, const char *name )
52 52
53 QBoxLayout *lay = new QVBoxLayout ( this, 4, 4 ); 53 QBoxLayout *lay = new QVBoxLayout ( this, 4, 4 );
54 54
55 QLabel *l = new QLabel ( tr( "Load applets:" ), this ); 55 QLabel *l = new QLabel ( tr( "Load applets in Taskbar:" ), this );
56 lay-> addWidget ( l ); 56 lay-> addWidget ( l );
57 57
58 m_list = new QListView ( this ); 58 m_list = new QListView ( this );
@@ -84,37 +84,45 @@ void TaskbarSettings::init ( )
84 84
85 QLibrary *lib = new QLibrary ( path + "/" + *it ); 85 QLibrary *lib = new QLibrary ( path + "/" + *it );
86 lib-> queryInterface ( IID_TaskbarNamedApplet, (QUnknownInterface**) &iface ); 86 lib-> queryInterface ( IID_TaskbarNamedApplet, (QUnknownInterface**) &iface );
87 if ( iface ) { 87 if ( iface ) {
88 88 QString lang = getenv( "LANG" );
89 QString lang = getenv( "LANG" ); 89 QTranslator *trans = new QTranslator ( qApp );
90 QTranslator *trans = new QTranslator ( qApp ); 90 QString type = (*it). left ((*it). find ("."));
91 QString type = (*it). left ((*it). find (".")); 91 QString tfn = QPEApplication::qpeDir ( ) + "/i18n/" + lang + "/" + type + ".qm";
92 QString tfn = QPEApplication::qpeDir ( ) + "/i18n/" + lang + "/" + type + ".qm"; 92 if ( trans-> load ( tfn ))
93 if ( trans-> load ( tfn )) 93 qApp-> installTranslator ( trans );
94 qApp-> installTranslator ( trans ); 94 else
95 else 95 delete trans;
96 delete trans; 96 name = iface-> name ( );
97 name = iface-> name ( ); 97 icon = iface-> icon ( );
98 icon = iface-> icon ( );
99 iface-> release ( ); 98 iface-> release ( );
100 lib-> unload ( );
101 } else {
102 delete lib;
103 name = (*it). mid ( 3 );
104 int sep = name. find( ".so" );
105 if ( sep > 0 )
106 name. truncate ( sep );
107 sep = name. find ( "applet" );
108 if ( sep == (int) name.length ( ) - 6 )
109 name. truncate ( sep );
110 name[0] = name[0]. upper ( );
111 } 99 }
112 QCheckListItem *item; 100 if ( !iface ) {
113 item = new QCheckListItem ( m_list, name, QCheckListItem::CheckBox ); 101 lib-> queryInterface ( IID_TaskbarApplet, (QUnknownInterface**) &iface );
114 if ( !icon. isNull ( )) 102
115 item-> setPixmap ( 0, icon ); 103 if ( iface ) {
116 item-> setOn ( exclude. find ( *it ) == exclude. end ( )); 104 name = (*it). mid ( 3 );
117 m_applets [*it] = item; 105 int sep = name. find( ".so" );
106 if ( sep > 0 )
107 name. truncate ( sep );
108 sep = name. find ( "applet" );
109 if ( sep == (int) name.length ( ) - 6 )
110 name. truncate ( sep );
111 name[0] = name[0]. upper ( );
112 iface-> release ( );
113 }
114 }
115
116 if ( iface ) {
117 QCheckListItem *item;
118 item = new QCheckListItem ( m_list, name, QCheckListItem::CheckBox );
119 if ( !icon. isNull ( ))
120 item-> setPixmap ( 0, icon );
121 item-> setOn ( exclude. find ( *it ) == exclude. end ( ));
122 m_applets [*it] = item;
123 }
124 lib-> unload ( );
125 delete lib;
118 } 126 }
119} 127}
120 128