summaryrefslogtreecommitdiff
path: root/core
authormickeyl <mickeyl>2003-11-17 15:16:13 (UTC)
committer mickeyl <mickeyl>2003-11-17 15:16:13 (UTC)
commitc4a6e9c529ea6bcb1c9a42fee33a70300f116c98 (patch) (unidiff)
tree1ee68a2035b0218ba99662db1dff4c4067064cde /core
parent725e2723291fe1d71ca68cb59cec83428d40b8af (diff)
downloadopie-c4a6e9c529ea6bcb1c9a42fee33a70300f116c98.zip
opie-c4a6e9c529ea6bcb1c9a42fee33a70300f116c98.tar.gz
opie-c4a6e9c529ea6bcb1c9a42fee33a70300f116c98.tar.bz2
This patch makes the famous Documents Tab customizably optional.
Note that the document tab is so tight coupled to the rest of the launcher that it proved impossible for me to remove the tab as is. However I could make all the scanning and the displaying optional. The customization can be done via the launcher settings applications - a new doc tab category has been added. Further customization can be added to that tab. I also added a doc tab settings application for use with the "first usage wizard"
Diffstat (limited to 'core') (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/documentlist.cpp17
-rw-r--r--core/launcher/firstuse.cpp2
-rw-r--r--core/launcher/launcher.cpp35
-rw-r--r--core/launcher/launcher.h2
-rw-r--r--core/settings/launcher/doctabsettings.cpp71
-rw-r--r--core/settings/launcher/doctabsettings.h55
-rw-r--r--core/settings/launcher/inputmethodsettings.cpp3
-rw-r--r--core/settings/launcher/launcher.pro2
-rw-r--r--core/settings/launcher/launchersettings.cpp5
-rw-r--r--core/settings/launcher/launchersettings.h2
10 files changed, 184 insertions, 10 deletions
diff --git a/core/launcher/documentlist.cpp b/core/launcher/documentlist.cpp
index 7f9366e..dcea4b9 100644
--- a/core/launcher/documentlist.cpp
+++ b/core/launcher/documentlist.cpp
@@ -21,6 +21,7 @@
21#include "serverinterface.h" 21#include "serverinterface.h"
22#include "launcherglobal.h" 22#include "launcherglobal.h"
23 23
24#include <qtopia/config.h>
24#include <qtopia/mimetype.h> 25#include <qtopia/mimetype.h>
25#include <qtopia/resource.h> 26#include <qtopia/resource.h>
26#include <qtopia/global.h> 27#include <qtopia/global.h>
@@ -104,7 +105,21 @@ DocumentList::DocumentList( ServerInterface *serverGui, bool scanDocs,
104void DocumentList::startInitialScan() 105void DocumentList::startInitialScan()
105{ 106{
106 reloadAppLnks(); 107 reloadAppLnks();
107 reloadDocLnks(); 108
109 Config cfg( "Launcher" );
110 cfg.setGroup( "DocTab" );
111 bool docTabEnabled = cfg.readBoolEntry( "Enable", true );
112 if ( docTabEnabled )
113 reloadDocLnks();
114 else
115 {
116 if ( d->sendDocLnks && d->serverGui )
117 {
118 d->serverGui->documentScanningProgress( 0 );
119 d->serverGui->allDocumentsRemoved();
120 }
121 }
122
108} 123}
109 124
110DocumentList::~DocumentList() 125DocumentList::~DocumentList()
diff --git a/core/launcher/firstuse.cpp b/core/launcher/firstuse.cpp
index 57469cf..e07920f 100644
--- a/core/launcher/firstuse.cpp
+++ b/core/launcher/firstuse.cpp
@@ -78,6 +78,8 @@ settingsTable [] =
78{ 78{
79 { FALSE, "language", "raise()", "accept()", // No tr 79 { FALSE, "language", "raise()", "accept()", // No tr
80 QT_TR_NOOP("Language") }, 80 QT_TR_NOOP("Language") },
81 { FALSE, "doctab", "raise()", "accept()", // No tr
82 QT_TR_NOOP("DocTab") },
81#ifndef Q_OS_WIN32 83#ifndef Q_OS_WIN32
82 { FALSE, "systemtime", "raise()", "accept()", // No tr 84 { FALSE, "systemtime", "raise()", "accept()", // No tr
83 QT_TR_NOOP("Time and Date") }, 85 QT_TR_NOOP("Time and Date") },
diff --git a/core/launcher/launcher.cpp b/core/launcher/launcher.cpp
index d697c43..b312672 100644
--- a/core/launcher/launcher.cpp
+++ b/core/launcher/launcher.cpp
@@ -82,7 +82,7 @@ static bool isVisibleWindow( int );
82//=========================================================================== 82//===========================================================================
83 83
84LauncherTabWidget::LauncherTabWidget( Launcher* parent ) : 84LauncherTabWidget::LauncherTabWidget( Launcher* parent ) :
85 QVBox( parent ) 85 QVBox( parent ), docview( 0 )
86{ 86{
87 docLoadingWidgetEnabled = false; 87 docLoadingWidgetEnabled = false;
88 docLoadingWidget = 0; 88 docLoadingWidget = 0;
@@ -131,20 +131,32 @@ void LauncherTabWidget::createDocLoadingWidget()
131 waitPixmap->setPixmap( Resource::loadPixmap( "bigwait" ) ); 131 waitPixmap->setPixmap( Resource::loadPixmap( "bigwait" ) );
132 waitPixmap->setAlignment( int( QLabel::AlignCenter ) ); 132 waitPixmap->setAlignment( int( QLabel::AlignCenter ) );
133 133
134 Config cfg( "Launcher" );
135 cfg.setGroup( "DocTab" );
136 bool docTabEnabled = cfg.readBoolEntry( "Enable", true );
137
134 QLabel *textLabel = new QLabel( docLoadingVBox ); 138 QLabel *textLabel = new QLabel( docLoadingVBox );
135 textLabel->setText( tr( "<b>Finding Documents...</b>" ) );
136 textLabel->setAlignment( int( QLabel::AlignCenter ) ); 139 textLabel->setAlignment( int( QLabel::AlignCenter ) );
137
138 docLoadingWidgetProgress = new QProgressBar( docLoadingVBox ); 140 docLoadingWidgetProgress = new QProgressBar( docLoadingVBox );
139 docLoadingWidgetProgress->setProgress( 0 ); 141 docLoadingWidgetProgress->setProgress( 0 );
140 docLoadingWidgetProgress->setCenterIndicator( TRUE ); 142 docLoadingWidgetProgress->setCenterIndicator( TRUE );
141 docLoadingWidgetProgress->setBackgroundMode( NoBackground ); // No flicker 143 docLoadingWidgetProgress->setBackgroundMode( NoBackground ); // No flicker
142 setProgressStyle(); 144 setProgressStyle();
143 145
146 if ( docTabEnabled )
147 {
148 textLabel->setText( tr( "<b>Finding Documents...</b>" ) );
149 }
150 else
151 {
152 textLabel->setText( tr( "<b>The Documents Tab<p>has been disabled.<p>"
153 "Use Settings->Launcher->DocTab<p>to reenable it.</b></center>" ) );
154 docLoadingWidgetProgress->hide();
155 }
156
144 QWidget *space2 = new QWidget( docLoadingVBox ); 157 QWidget *space2 = new QWidget( docLoadingVBox );
145 docLoadingVBox->setStretchFactor( space2, 1 ); 158 docLoadingVBox->setStretchFactor( space2, 1 );
146 159
147 Config cfg("Launcher");
148 cfg.setGroup( "Tab Documents" ); // No tr 160 cfg.setGroup( "Tab Documents" ); // No tr
149 setTabViewAppearance( docLoadingWidget, cfg ); 161 setTabViewAppearance( docLoadingWidget, cfg );
150 162
@@ -429,6 +441,9 @@ Launcher::Launcher()
429{ 441{
430 tabs = 0; 442 tabs = 0;
431 tb = 0; 443 tb = 0;
444 Config cfg( "Launcher" );
445 cfg.setGroup( "DocTab" );
446 docTabEnabled = cfg.readBoolEntry( "Enable", true );
432} 447}
433 448
434void Launcher::createGUI() 449void Launcher::createGUI()
@@ -472,11 +487,11 @@ void Launcher::createGUI()
472 QPixmap pm; 487 QPixmap pm;
473 pm = img.smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ); 488 pm = img.smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() );
474 // It could add this itself if it handles docs 489 // It could add this itself if it handles docs
490
475 tabs->newView("Documents", pm, tr("Documents") )->setToolsEnabled( TRUE ); 491 tabs->newView("Documents", pm, tr("Documents") )->setToolsEnabled( TRUE );
476 QTimer::singleShot( 0, tabs, SLOT( initLayout() ) );
477 492
493 QTimer::singleShot( 0, tabs, SLOT( initLayout() ) );
478 qApp->setMainWidget( this ); 494 qApp->setMainWidget( this );
479
480 QTimer::singleShot( 500, this, SLOT( makeVisible() ) ); 495 QTimer::singleShot( 500, this, SLOT( makeVisible() ) );
481} 496}
482 497
@@ -734,6 +749,14 @@ void Launcher::applicationScanningProgress( int percent )
734 749
735void Launcher::documentScanningProgress( int percent ) 750void Launcher::documentScanningProgress( int percent )
736{ 751{
752 if ( !docTabEnabled )
753 {
754 qDebug( "Launcher: document tab disabled!" );
755 tabs->setLoadingProgress( 100 );
756 tabs->setLoadingWidgetEnabled( TRUE );
757 return;
758 }
759
737 switch ( percent ) { 760 switch ( percent ) {
738 case 0: { 761 case 0: {
739 tabs->setLoadingProgress( 0 ); 762 tabs->setLoadingProgress( 0 );
diff --git a/core/launcher/launcher.h b/core/launcher/launcher.h
index 2917027..1d046ee 100644
--- a/core/launcher/launcher.h
+++ b/core/launcher/launcher.h
@@ -150,6 +150,8 @@ private:
150 LauncherTabWidget *tabs; 150 LauncherTabWidget *tabs;
151 QStringList ids; 151 QStringList ids;
152 TaskBar *tb; 152 TaskBar *tb;
153
154 bool docTabEnabled;
153}; 155};
154 156
155#endif // LAUNCHERVIEW_H 157#endif // LAUNCHERVIEW_H
diff --git a/core/settings/launcher/doctabsettings.cpp b/core/settings/launcher/doctabsettings.cpp
new file mode 100644
index 0000000..8077b8c
--- a/dev/null
+++ b/core/settings/launcher/doctabsettings.cpp
@@ -0,0 +1,71 @@
1/*
2                This file is part of the OPIE Project
3 =. Copyright (c) 2002 Trolltech AS <info@trolltech.com>
4             .=l. Copyright (c) 2003 Michael Lauer <mickeyl@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 "doctabsettings.h"
30
31#include <qpe/config.h>
32#include <qpe/qlibrary.h>
33#include <qpe/qpeapplication.h>
34
35#include <qspinbox.h>
36#include <qcheckbox.h>
37#include <qlayout.h>
38#include <qlabel.h>
39#include <qwhatsthis.h>
40
41DocTabSettings::DocTabSettings( QWidget *parent, const char *name ):QWidget( parent, name )
42{
43 QBoxLayout *lay = new QVBoxLayout( this, 4, 4 );
44
45 _enable = new QCheckBox( tr( "Enable the Documents Tab" ), this );
46
47 Config cfg( "Launcher" );
48 cfg.setGroup( "DocTab" );
49 _enable->setChecked( cfg.readBoolEntry( "Enable", true ) );
50
51 lay->addWidget( _enable );
52 lay->addWidget( new QLabel( tr( "<b>Note:</b> Changing these settings may need restarting Opie to become effective." ), this ) );
53
54 lay->addStretch();
55
56 QWhatsThis::add( _enable, tr( "Check, if you want the Documents Tab to be visible." ) );
57}
58
59void DocTabSettings::appletChanged()
60{
61}
62
63void DocTabSettings::accept()
64{
65 qDebug( "DocTabSettings::accept()" );
66 Config cfg( "Launcher" );
67 cfg.setGroup( "DocTab" );
68 cfg.writeEntry( "Enable", _enable->isChecked() );
69 cfg.write();
70}
71
diff --git a/core/settings/launcher/doctabsettings.h b/core/settings/launcher/doctabsettings.h
new file mode 100644
index 0000000..ad6447c
--- a/dev/null
+++ b/core/settings/launcher/doctabsettings.h
@@ -0,0 +1,55 @@
1/*
2               =. This file is part of the OPIE Project
3             .=l. Copyright (c) 2003 Michael Lauer <mickeyl@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 __DOCTAB_SETTINGS_H__
29#define __DOCTAB_SETTINGS_H__
30
31#include <qwidget.h>
32
33class QCheckBox;
34class QSpinBox;
35
36class DocTabSettings : public QWidget
37{
38 Q_OBJECT
39
40 public:
41 DocTabSettings ( QWidget *parent = 0, const char *name = 0 );
42
43 void accept ( );
44
45 protected slots:
46 void appletChanged ( );
47
48 protected:
49 void init ( );
50
51 private:
52 QCheckBox* _enable;
53};
54
55#endif
diff --git a/core/settings/launcher/inputmethodsettings.cpp b/core/settings/launcher/inputmethodsettings.cpp
index 1aa1ae8..147a00d 100644
--- a/core/settings/launcher/inputmethodsettings.cpp
+++ b/core/settings/launcher/inputmethodsettings.cpp
@@ -45,7 +45,7 @@ InputMethodSettings::InputMethodSettings( QWidget *parent, const char *name ):QW
45 _resize = new QCheckBox( tr( "Resize application on Popup" ), this ); 45 _resize = new QCheckBox( tr( "Resize application on Popup" ), this );
46 _float = new QCheckBox( tr( "Enable floating and resizing" ), this ); 46 _float = new QCheckBox( tr( "Enable floating and resizing" ), this );
47 47
48 QHBoxLayout* hbox = new QHBoxLayout( this, 4, 4 ); 48 QHBoxLayout* hbox = new QHBoxLayout( lay, 4 );
49 hbox->addWidget( new QLabel( "Initial Width:", this ) ); 49 hbox->addWidget( new QLabel( "Initial Width:", this ) );
50 _size = new QSpinBox( 10, 100, 10, this ); 50 _size = new QSpinBox( 10, 100, 10, this );
51 _size->setSuffix( "%" ); 51 _size->setSuffix( "%" );
@@ -60,7 +60,6 @@ InputMethodSettings::InputMethodSettings( QWidget *parent, const char *name ):QW
60 60
61 lay->addWidget( _resize ); 61 lay->addWidget( _resize );
62 lay->addWidget( _float ); 62 lay->addWidget( _float );
63 lay->addLayout( hbox );
64 lay->addWidget( new QLabel( tr( "<b>Note:</b> Changing these settings may need restarting Opie to become effective." ), this ) ); 63 lay->addWidget( new QLabel( tr( "<b>Note:</b> Changing these settings may need restarting Opie to become effective." ), this ) );
65 64
66 lay->addStretch(); 65 lay->addStretch();
diff --git a/core/settings/launcher/launcher.pro b/core/settings/launcher/launcher.pro
index 9d05832..3261ee8 100644
--- a/core/settings/launcher/launcher.pro
+++ b/core/settings/launcher/launcher.pro
@@ -4,6 +4,7 @@ HEADERS = launchersettings.h \
4 taskbarsettings.h \ 4 taskbarsettings.h \
5 menusettings.h \ 5 menusettings.h \
6 inputmethodsettings.h \ 6 inputmethodsettings.h \
7 doctabsettings.h \
7 tabconfig.h \ 8 tabconfig.h \
8 tabdialog.h 9 tabdialog.h
9 10
@@ -13,6 +14,7 @@ SOURCES = main.cpp \
13 taskbarsettings.cpp \ 14 taskbarsettings.cpp \
14 menusettings.cpp \ 15 menusettings.cpp \
15 inputmethodsettings.cpp \ 16 inputmethodsettings.cpp \
17 doctabsettings.cpp \
16 tabdialog.cpp 18 tabdialog.cpp
17 19
18INCLUDEPATH += $(OPIEDIR)/include 20INCLUDEPATH += $(OPIEDIR)/include
diff --git a/core/settings/launcher/launchersettings.cpp b/core/settings/launcher/launchersettings.cpp
index efc4a86..e129849 100644
--- a/core/settings/launcher/launchersettings.cpp
+++ b/core/settings/launcher/launchersettings.cpp
@@ -36,6 +36,7 @@
36#include "menusettings.h" 36#include "menusettings.h"
37#include "taskbarsettings.h" 37#include "taskbarsettings.h"
38#include "inputmethodsettings.h" 38#include "inputmethodsettings.h"
39#include "doctabsettings.h"
39 40
40LauncherSettings::LauncherSettings (QWidget*,const char*, WFlags) 41LauncherSettings::LauncherSettings (QWidget*,const char*, WFlags)
41 : QDialog ( 0, "LauncherSettings", false, WStyle_ContextHelp ) 42 : QDialog ( 0, "LauncherSettings", false, WStyle_ContextHelp )
@@ -51,12 +52,13 @@ LauncherSettings::LauncherSettings (QWidget*,const char*, WFlags)
51 m_taskbar = new TaskbarSettings ( tw ); 52 m_taskbar = new TaskbarSettings ( tw );
52 m_menu = new MenuSettings ( tw ); 53 m_menu = new MenuSettings ( tw );
53 m_imethods = new InputMethodSettings ( tw ); 54 m_imethods = new InputMethodSettings ( tw );
55 m_doctab = new DocTabSettings ( tw );
54 56
55 tw-> addTab ( m_taskbar, "wait", tr( "Taskbar" )); 57 tw-> addTab ( m_taskbar, "wait", tr( "Taskbar" ));
56 tw-> addTab ( m_menu, "go", tr( "O-Menu" )); 58 tw-> addTab ( m_menu, "go", tr( "O-Menu" ));
57 tw-> addTab ( m_tabs, "launchersettings/tabstab.png", tr( "Tabs" )); 59 tw-> addTab ( m_tabs, "launchersettings/tabstab.png", tr( "Tabs" ));
58 tw-> addTab ( m_imethods, "launchersettings/inputmethod.png", tr( "InputMethods" )); 60 tw-> addTab ( m_imethods, "launchersettings/inputmethod.png", tr( "InputMethods" ));
59 61 tw-> addTab ( m_doctab, "DocsIcon", tr( "DocTab" ) );
60 tw-> setCurrentTab ( m_taskbar ); 62 tw-> setCurrentTab ( m_taskbar );
61} 63}
62 64
@@ -66,6 +68,7 @@ void LauncherSettings::accept ( )
66 m_menu-> accept ( ); 68 m_menu-> accept ( );
67 m_tabs-> accept ( ); 69 m_tabs-> accept ( );
68 m_imethods-> accept ( ); 70 m_imethods-> accept ( );
71 m_doctab-> accept ( );
69 72
70 QDialog::accept ( ); 73 QDialog::accept ( );
71} 74}
diff --git a/core/settings/launcher/launchersettings.h b/core/settings/launcher/launchersettings.h
index 7458d8b..9ba2942 100644
--- a/core/settings/launcher/launchersettings.h
+++ b/core/settings/launcher/launchersettings.h
@@ -34,6 +34,7 @@ class TabsSettings;
34class TaskbarSettings; 34class TaskbarSettings;
35class MenuSettings; 35class MenuSettings;
36class InputMethodSettings; 36class InputMethodSettings;
37class DocTabSettings;
37 38
38class LauncherSettings : public QDialog { 39class LauncherSettings : public QDialog {
39 Q_OBJECT 40 Q_OBJECT
@@ -50,6 +51,7 @@ private:
50 TaskbarSettings *m_taskbar; 51 TaskbarSettings *m_taskbar;
51 MenuSettings *m_menu; 52 MenuSettings *m_menu;
52 InputMethodSettings* m_imethods; 53 InputMethodSettings* m_imethods;
54 DocTabSettings *m_doctab;
53}; 55};
54 56
55#endif 57#endif