summaryrefslogtreecommitdiff
path: root/core/launcher/launcher.cpp
authormickeyl <mickeyl>2005-07-03 22:13:00 (UTC)
committer mickeyl <mickeyl>2005-07-03 22:13:00 (UTC)
commit2cabd9ad4b49eefccdf99ad59550c76546b473c9 (patch) (unidiff)
tree00bab275ac356aecc5a39b86ca22ce172d01f622 /core/launcher/launcher.cpp
parent47011752d4457a1055894479e5bf855e100fddac (diff)
downloadopie-2cabd9ad4b49eefccdf99ad59550c76546b473c9.zip
opie-2cabd9ad4b49eefccdf99ad59550c76546b473c9.tar.gz
opie-2cabd9ad4b49eefccdf99ad59550c76546b473c9.tar.bz2
Resource -> OResource
This is a large diff and I'd appreciate some additional pairs of eyes checking it
Diffstat (limited to 'core/launcher/launcher.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/launcher.cpp60
1 files changed, 32 insertions, 28 deletions
diff --git a/core/launcher/launcher.cpp b/core/launcher/launcher.cpp
index 4ec5f4c..361a159 100644
--- a/core/launcher/launcher.cpp
+++ b/core/launcher/launcher.cpp
@@ -1,174 +1,181 @@
1/********************************************************************** 1/*
2** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. 2                 This file is part of the Opie Project
3** 3 =. (C) 2000-2002 Trolltech AS
4** This file is part of the Qtopia Environment. 4 .=l. (C) 2002-2005 The Opie Team <opie-devel@handhelds.org>
5** 5           .>+-=
6** This file may be distributed and/or modified under the terms of the 6 _;:,     .>    :=|. This program is free software; you can
7** GNU General Public License version 2 as published by the Free Software 7.> <`_,   >  .   <= redistribute it and/or modify it under
8** Foundation and appearing in the file LICENSE.GPL included in the 8 :`=1 )Y*s>-.--   : the terms of the GNU Library General Public
9** packaging of this file. 9.="- .-=="i,     .._ License as published by the Free Software
10** 10 - .   .-<_>     .<> Foundation; version 2 of the License.
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11     ._= =}       :
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12    .%`+i>       _;_.
13** 13    .i_,=:_.      -<s. This program is distributed in the hope that
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
15** 15 : ..    .:,     . . . without even the implied warranty of
16** Contact info@trolltech.com if any conditions of this licensing are 16    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
17** not clear to you. 17  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
18** 18..}^=.=       =       ; Library General Public License for more
19**********************************************************************/ 19++=   -.     .`     .: details.
20 20 :     =  ...= . :.=-
21 -.   .:....=;==+<; You should have received a copy of the GNU
22  -_. . .   )=.  = Library General Public License along with
23    --        :-=` this library; see the file COPYING.LIB.
24 If not, write to the Free Software Foundation,
25 Inc., 59 Temple Place - Suite 330,
26 Boston, MA 02111-1307, USA.
27*/
21#include "startmenu.h" 28#include "startmenu.h"
22#include "taskbar.h" 29#include "taskbar.h"
23#include "serverinterface.h" 30#include "serverinterface.h"
24#include "launcherview.h" 31#include "launcherview.h"
25#include "launcher.h" 32#include "launcher.h"
26#include "server.h" 33#include "server.h"
27
28/* OPIE */ 34/* OPIE */
29#include <opie2/odebug.h> 35#include <opie2/odebug.h>
36#include <opie2/oresource.h>
37using namespace Opie::Core;
38
30#include <qtopia/global.h> 39#include <qtopia/global.h>
31#ifdef Q_WS_QWS 40#ifdef Q_WS_QWS
32#include <qtopia/qcopenvelope_qws.h> 41#include <qtopia/qcopenvelope_qws.h>
33#endif 42#endif
34#include <qtopia/resource.h>
35#include <qtopia/applnk.h> 43#include <qtopia/applnk.h>
36#include <qtopia/config.h> 44#include <qtopia/config.h>
37#include <qtopia/qpeapplication.h> 45#include <qtopia/qpeapplication.h>
38#include <qtopia/mimetype.h> 46#include <qtopia/mimetype.h>
39#include <qtopia/private/categories.h> 47#include <qtopia/private/categories.h>
40#define QTOPIA_INTERNAL_FSLP 48#define QTOPIA_INTERNAL_FSLP
41#include <qtopia/lnkproperties.h> 49#include <qtopia/lnkproperties.h>
42 50
43/* QT */ 51/* QT */
44#include <qdir.h> 52#include <qdir.h>
45#ifdef Q_WS_QWS 53#ifdef Q_WS_QWS
46#include <qkeyboard_qws.h> 54#include <qkeyboard_qws.h>
47#include <qwindowsystem_qws.h> 55#include <qwindowsystem_qws.h>
48#endif 56#endif
49#include <qtimer.h> 57#include <qtimer.h>
50#include <qcombobox.h> 58#include <qcombobox.h>
51#include <qvbox.h> 59#include <qvbox.h>
52#include <qlayout.h> 60#include <qlayout.h>
53#include <qstyle.h> 61#include <qstyle.h>
54#include <qpushbutton.h> 62#include <qpushbutton.h>
55#include <qtabbar.h> 63#include <qtabbar.h>
56#include <qwidgetstack.h> 64#include <qwidgetstack.h>
57#include <qregexp.h> 65#include <qregexp.h>
58#include <qmessagebox.h> 66#include <qmessagebox.h>
59#include <qframe.h> 67#include <qframe.h>
60#include <qpainter.h> 68#include <qpainter.h>
61#include <qlabel.h> 69#include <qlabel.h>
62#include <qtextstream.h> 70#include <qtextstream.h>
63#include <qpopupmenu.h> 71#include <qpopupmenu.h>
64 72
65/* STD */ 73/* STD */
66#include <stdlib.h> 74#include <stdlib.h>
67#include <assert.h> 75#include <assert.h>
68#if defined(_OS_LINUX_) || defined(Q_OS_LINUX) 76#if defined(_OS_LINUX_) || defined(Q_OS_LINUX)
69#include <unistd.h> 77#include <unistd.h>
70#include <stdio.h> 78#include <stdio.h>
71#include <sys/vfs.h> 79#include <sys/vfs.h>
72#include <mntent.h> 80#include <mntent.h>
73#endif 81#endif
74 82
75 83
76static bool isVisibleWindow( int ); 84static bool isVisibleWindow( int );
77//=========================================================================== 85//===========================================================================
78 86
79LauncherTabWidget::LauncherTabWidget( Launcher* parent ) : 87LauncherTabWidget::LauncherTabWidget( Launcher* parent ) :
80 QVBox( parent ), docview( 0 ),docTabEnabled(true),m_DocumentTabId(0) 88 QVBox( parent ), docview( 0 ),docTabEnabled(true),m_DocumentTabId(0)
81{ 89{
82 docLoadingWidgetEnabled = false; 90 docLoadingWidgetEnabled = false;
83 docLoadingWidget = 0; 91 docLoadingWidget = 0;
84 docLoadingWidgetProgress = 0; 92 docLoadingWidgetProgress = 0;
85 launcher = parent; 93 launcher = parent;
86 categoryBar = new LauncherTabBar( this ); 94 categoryBar = new LauncherTabBar( this );
87 QPalette pal = categoryBar->palette(); 95 QPalette pal = categoryBar->palette();
88 pal.setColor( QColorGroup::Light, pal.color(QPalette::Active,QColorGroup::Shadow) ); 96 pal.setColor( QColorGroup::Light, pal.color(QPalette::Active,QColorGroup::Shadow) );
89 pal.setColor( QColorGroup::Background, pal.active().background().light(110) ); 97 pal.setColor( QColorGroup::Background, pal.active().background().light(110) );
90 categoryBar->setPalette( pal ); 98 categoryBar->setPalette( pal );
91 stack = new QWidgetStack(this); 99 stack = new QWidgetStack(this);
92 connect( categoryBar, SIGNAL(selected(int)), this, SLOT(raiseTabWidget()) ); 100 connect( categoryBar, SIGNAL(selected(int)), this, SLOT(raiseTabWidget()) );
93 categoryBar->show(); 101 categoryBar->show();
94 stack->show(); 102 stack->show();
95 103
96#if defined(Q_WS_QWS) && !defined(QT_NO_COP) 104#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
97 QCopChannel *channel = new QCopChannel( "QPE/Launcher", this ); 105 QCopChannel *channel = new QCopChannel( "QPE/Launcher", this );
98 connect( channel, SIGNAL(received(const QCString&,const QByteArray&)), 106 connect( channel, SIGNAL(received(const QCString&,const QByteArray&)),
99 this, SLOT(launcherMessage(const QCString&,const QByteArray&)) ); 107 this, SLOT(launcherMessage(const QCString&,const QByteArray&)) );
100 connect( qApp, SIGNAL(appMessage(const QCString&,const QByteArray&)), 108 connect( qApp, SIGNAL(appMessage(const QCString&,const QByteArray&)),
101 this, SLOT(appMessage(const QCString&,const QByteArray&))); 109 this, SLOT(appMessage(const QCString&,const QByteArray&)));
102#endif 110#endif
103 111
104 createDocLoadingWidget(); 112 createDocLoadingWidget();
105} 113}
106 114
107void LauncherTabWidget::createDocLoadingWidget() 115void LauncherTabWidget::createDocLoadingWidget()
108{ 116{
109 // Construct the 'doc loading widget' shown when finding documents 117 // Construct the 'doc loading widget' shown when finding documents
110 118
111 // ### LauncherView class needs changing to be more generic so 119 // ### LauncherView class needs changing to be more generic so
112 // this widget can change its background similar to the iconviews 120 // this widget can change its background similar to the iconviews
113 // so the background for this matches 121 // so the background for this matches
114 docLoadingWidget = new LauncherView( stack ); 122 docLoadingWidget = new LauncherView( stack );
115 docLoadingWidget->hideIcons(); 123 docLoadingWidget->hideIcons();
116 QVBox *docLoadingVBox = new QVBox( docLoadingWidget ); 124 QVBox *docLoadingVBox = new QVBox( docLoadingWidget );
117 125
118 docLoadingVBox->setSpacing( 20 ); 126 docLoadingVBox->setSpacing( 20 );
119 docLoadingVBox->setMargin( 10 ); 127 docLoadingVBox->setMargin( 10 );
120 128
121 QWidget *space1 = new QWidget( docLoadingVBox ); 129 QWidget *space1 = new QWidget( docLoadingVBox );
122 docLoadingVBox->setStretchFactor( space1, 1 ); 130 docLoadingVBox->setStretchFactor( space1, 1 );
123 131
124 QLabel *waitPixmap = new QLabel( docLoadingVBox ); 132 QLabel *waitPixmap = new QLabel( "Please Wait...", docLoadingVBox );
125 waitPixmap->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)5, waitPixmap->sizePolicy().hasHeightForWidth() ) ); 133 waitPixmap->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)5, waitPixmap->sizePolicy().hasHeightForWidth() ) );
126 waitPixmap->setPixmap( Resource::loadPixmap( "bigwait" ) );
127 waitPixmap->setAlignment( int( QLabel::AlignCenter ) ); 134 waitPixmap->setAlignment( int( QLabel::AlignCenter ) );
128 135
129 Config cfg( "Launcher" ); 136 Config cfg( "Launcher" );
130 cfg.setGroup( "DocTab" ); 137 cfg.setGroup( "DocTab" );
131 docTabEnabled = cfg.readBoolEntry( "Enable", true ); 138 docTabEnabled = cfg.readBoolEntry( "Enable", true );
132 139
133 QLabel *textLabel = new QLabel( docLoadingVBox ); 140 QLabel *textLabel = new QLabel( docLoadingVBox );
134 textLabel->setAlignment( int( QLabel::AlignCenter ) ); 141 textLabel->setAlignment( int( QLabel::AlignCenter ) );
135 docLoadingWidgetProgress = new QProgressBar( docLoadingVBox ); 142 docLoadingWidgetProgress = new QProgressBar( docLoadingVBox );
136 docLoadingWidgetProgress->setProgress( 0 ); 143 docLoadingWidgetProgress->setProgress( 0 );
137 docLoadingWidgetProgress->setCenterIndicator( TRUE ); 144 docLoadingWidgetProgress->setCenterIndicator( TRUE );
138 docLoadingWidgetProgress->setBackgroundMode( NoBackground ); // No flicker 145 docLoadingWidgetProgress->setBackgroundMode( NoBackground ); // No flicker
139 setProgressStyle(); 146 setProgressStyle();
140 147
141 if ( docTabEnabled ) 148 if ( docTabEnabled )
142 { 149 {
143 textLabel->setText( tr( "<b>Finding Documents...</b>" ) ); 150 textLabel->setText( tr( "<b>Finding Documents...</b>" ) );
144 } 151 }
145 else 152 else
146 { 153 {
147 textLabel->setText( tr( "<b>The Documents Tab<p>has been disabled.<p>" 154 textLabel->setText( tr( "<b>The Documents Tab<p>has been disabled.<p>"
148 "Use Settings->Launcher->DocTab<p>to reenable it.</b></center>" ) ); 155 "Use Settings->Launcher->DocTab<p>to reenable it.</b></center>" ) );
149 docLoadingWidgetProgress->hide(); 156 docLoadingWidgetProgress->hide();
150 docLoadingWidgetEnabled = true; 157 docLoadingWidgetEnabled = true;
151 } 158 }
152 159
153 QWidget *space2 = new QWidget( docLoadingVBox ); 160 QWidget *space2 = new QWidget( docLoadingVBox );
154 docLoadingVBox->setStretchFactor( space2, 1 ); 161 docLoadingVBox->setStretchFactor( space2, 1 );
155 162
156 cfg.setGroup( "Tab Documents" ); // No tr 163 cfg.setGroup( "Tab Documents" ); // No tr
157 setTabViewAppearance( docLoadingWidget, cfg ); 164 setTabViewAppearance( docLoadingWidget, cfg );
158 165
159 stack->addWidget( docLoadingWidget, 0 ); 166 stack->addWidget( docLoadingWidget, 0 );
160} 167}
161 168
162void LauncherTabWidget::initLayout() 169void LauncherTabWidget::initLayout()
163{ 170{
164 layout()->activate(); 171 layout()->activate();
165 docView()->setFocus(); 172 docView()->setFocus();
166 categoryBar->showTab("Documents"); 173 categoryBar->showTab("Documents");
167} 174}
168 175
169void LauncherTabWidget::appMessage(const QCString& message, const QByteArray&) 176void LauncherTabWidget::appMessage(const QCString& message, const QByteArray&)
170{ 177{
171 if ( message == "nextView()" ) 178 if ( message == "nextView()" )
172 categoryBar->nextTab(); 179 categoryBar->nextTab();
173} 180}
174 181
@@ -484,101 +491,98 @@ void LauncherTabWidget::reCheckDoctab(int how)
484 odebug << "Sending doc rescan" << oendl; 491 odebug << "Sending doc rescan" << oendl;
485 } 492 }
486} 493}
487 494
488//--------------------------------------------------------------------------- 495//---------------------------------------------------------------------------
489 496
490Launcher::Launcher() 497Launcher::Launcher()
491 : QMainWindow( 0, "PDA User Interface", QWidget::WStyle_Customize | QWidget::WGroupLeader ) 498 : QMainWindow( 0, "PDA User Interface", QWidget::WStyle_Customize | QWidget::WGroupLeader )
492{ 499{
493 tabs = 0; 500 tabs = 0;
494 tb = 0; 501 tb = 0;
495 Config cfg( "Launcher" ); 502 Config cfg( "Launcher" );
496 cfg.setGroup( "DocTab" ); 503 cfg.setGroup( "DocTab" );
497 docTabEnabled = cfg.readBoolEntry( "Enable", true ); 504 docTabEnabled = cfg.readBoolEntry( "Enable", true );
498} 505}
499 506
500void Launcher::createGUI() 507void Launcher::createGUI()
501{ 508{
502 setCaption( tr("Launcher") ); 509 setCaption( tr("Launcher") );
503 510
504 // we have a pretty good idea how big we'll be 511 // we have a pretty good idea how big we'll be
505 setGeometry( 0, 0, qApp->desktop()->width(), qApp->desktop()->height() ); 512 setGeometry( 0, 0, qApp->desktop()->width(), qApp->desktop()->height() );
506 513
507 tb = new TaskBar; 514 tb = new TaskBar;
508 tabs = new LauncherTabWidget( this ); 515 tabs = new LauncherTabWidget( this );
509 setCentralWidget( tabs ); 516 setCentralWidget( tabs );
510 517
511 ServerInterface::dockWidget( tb, ServerInterface::Bottom ); 518 ServerInterface::dockWidget( tb, ServerInterface::Bottom );
512 tb->show(); 519 tb->show();
513 520
514 qApp->installEventFilter( this ); 521 qApp->installEventFilter( this );
515 522
516 connect( tb, SIGNAL(tabSelected(const QString&)), 523 connect( tb, SIGNAL(tabSelected(const QString&)),
517 this, SLOT(showTab(const QString&)) ); 524 this, SLOT(showTab(const QString&)) );
518 connect( tabs, SIGNAL(selected(const QString&)), 525 connect( tabs, SIGNAL(selected(const QString&)),
519 this, SLOT(viewSelected(const QString&)) ); 526 this, SLOT(viewSelected(const QString&)) );
520 connect( tabs, SIGNAL(clicked(const AppLnk*)), 527 connect( tabs, SIGNAL(clicked(const AppLnk*)),
521 this, SLOT(select(const AppLnk*))); 528 this, SLOT(select(const AppLnk*)));
522 connect( tabs, SIGNAL(rightPressed(AppLnk*)), 529 connect( tabs, SIGNAL(rightPressed(AppLnk*)),
523 this, SLOT(properties(AppLnk*))); 530 this, SLOT(properties(AppLnk*)));
524 531
525#if defined(Q_WS_QWS) && !defined(QT_NO_COP) 532#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
526 QCopChannel* sysChannel = new QCopChannel( "QPE/System", this ); 533 QCopChannel* sysChannel = new QCopChannel( "QPE/System", this );
527 connect( sysChannel, SIGNAL(received(const QCString&,const QByteArray&)), 534 connect( sysChannel, SIGNAL(received(const QCString&,const QByteArray&)),
528 this, SLOT(systemMessage(const QCString&,const QByteArray&)) ); 535 this, SLOT(systemMessage(const QCString&,const QByteArray&)) );
529#endif 536#endif
530 537
531 // all documents 538 // all documents
532 QImage img( Resource::loadImage( "DocsIcon" ) ); 539 QPixmap pm = OResource::loadPixmap( "DocsIcon", OResource::SmallIcon );
533 QPixmap pm;
534 pm = img.smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() );
535 // It could add this itself if it handles docs 540 // It could add this itself if it handles docs
536
537 tabs->newView("Documents", pm, tr("Documents") )->setToolsEnabled( TRUE ); 541 tabs->newView("Documents", pm, tr("Documents") )->setToolsEnabled( TRUE );
538 542
539 QTimer::singleShot( 0, tabs, SLOT( initLayout() ) ); 543 QTimer::singleShot( 0, tabs, SLOT( initLayout() ) );
540 qApp->setMainWidget( this ); 544 qApp->setMainWidget( this );
541 QTimer::singleShot( 500, this, SLOT( makeVisible() ) ); 545 QTimer::singleShot( 500, this, SLOT( makeVisible() ) );
542} 546}
543 547
544Launcher::~Launcher() 548Launcher::~Launcher()
545{ 549{
546 if ( tb ) 550 if ( tb )
547 destroyGUI(); 551 destroyGUI();
548} 552}
549 553
550 bool Launcher::requiresDocuments() const 554 bool Launcher::requiresDocuments() const
551 { 555 {
552 Config cfg( "Launcher" ); 556 Config cfg( "Launcher" );
553 cfg.setGroup( "DocTab" ); 557 cfg.setGroup( "DocTab" );
554 return cfg.readBoolEntry( "Enable", true ); 558 return cfg.readBoolEntry( "Enable", true );
555} 559}
556 560
557void Launcher::makeVisible() 561void Launcher::makeVisible()
558{ 562{
559 showMaximized(); 563 showMaximized();
560} 564}
561 565
562void Launcher::destroyGUI() 566void Launcher::destroyGUI()
563{ 567{
564 delete tb; 568 delete tb;
565 tb = 0; 569 tb = 0;
566 delete tabs; 570 delete tabs;
567 tabs =0; 571 tabs =0;
568} 572}
569 573
570bool Launcher::eventFilter( QObject*, QEvent *ev ) 574bool Launcher::eventFilter( QObject*, QEvent *ev )
571{ 575{
572#ifdef QT_QWS_CUSTOM 576#ifdef QT_QWS_CUSTOM
573 if ( ev->type() == QEvent::KeyPress ) { 577 if ( ev->type() == QEvent::KeyPress ) {
574 QKeyEvent *ke = (QKeyEvent *)ev; 578 QKeyEvent *ke = (QKeyEvent *)ev;
575 if ( ke->key() == Qt::Key_F11 ) { // menu key 579 if ( ke->key() == Qt::Key_F11 ) { // menu key
576 QWidget *active = qApp->activeWindow(); 580 QWidget *active = qApp->activeWindow();
577 if ( active && active->isPopup() ) 581 if ( active && active->isPopup() )
578 active->close(); 582 active->close();
579 else { 583 else {
580 Global::terminateBuiltin("calibrate"); // No tr 584 Global::terminateBuiltin("calibrate"); // No tr
581 tb->launchStartMenu(); 585 tb->launchStartMenu();
582 } 586 }
583 return TRUE; 587 return TRUE;
584 } 588 }