author | mickeyl <mickeyl> | 2003-11-20 01:31:27 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2003-11-20 01:31:27 (UTC) |
commit | ae9e1ed9cc9e65c1ffb28f3b75ff499e18c6b31a (patch) (unidiff) | |
tree | eb25cce124b37363bbd3b7b757d2c92dc94bee19 | |
parent | d8c2766507a807c72a350bf73c2908e4fa021262 (diff) | |
download | opie-ae9e1ed9cc9e65c1ffb28f3b75ff499e18c6b31a.zip opie-ae9e1ed9cc9e65c1ffb28f3b75ff499e18c6b31a.tar.gz opie-ae9e1ed9cc9e65c1ffb28f3b75ff499e18c6b31a.tar.bz2 |
rework optional doc-tab patch to be less intrusive and more sane
-rw-r--r-- | core/launcher/documentlist.cpp | 22 | ||||
-rw-r--r-- | core/launcher/launcher.cpp | 16 | ||||
-rw-r--r-- | core/launcher/launcher.h | 2 |
3 files changed, 15 insertions, 25 deletions
diff --git a/core/launcher/documentlist.cpp b/core/launcher/documentlist.cpp index dcea4b9..1a7de33 100644 --- a/core/launcher/documentlist.cpp +++ b/core/launcher/documentlist.cpp | |||
@@ -75,72 +75,62 @@ public: | |||
75 | int searchDepth; | 75 | int searchDepth; |
76 | QDir *listDirs[MAX_SEARCH_DEPTH]; | 76 | QDir *listDirs[MAX_SEARCH_DEPTH]; |
77 | const QFileInfoList *lists[MAX_SEARCH_DEPTH]; | 77 | const QFileInfoList *lists[MAX_SEARCH_DEPTH]; |
78 | unsigned int listPositions[MAX_SEARCH_DEPTH]; | 78 | unsigned int listPositions[MAX_SEARCH_DEPTH]; |
79 | 79 | ||
80 | StorageInfo *storage; | 80 | StorageInfo *storage; |
81 | 81 | ||
82 | int tid; | 82 | int tid; |
83 | 83 | ||
84 | ServerInterface *serverGui; | 84 | ServerInterface *serverGui; |
85 | 85 | ||
86 | bool needToSendAllDocLinks; | 86 | bool needToSendAllDocLinks; |
87 | bool sendAppLnks; | 87 | bool sendAppLnks; |
88 | bool sendDocLnks; | 88 | bool sendDocLnks; |
89 | bool scanDocs; | 89 | bool scanDocs; |
90 | }; | 90 | }; |
91 | 91 | ||
92 | 92 | ||
93 | DocumentList::DocumentList( ServerInterface *serverGui, bool scanDocs, | 93 | DocumentList::DocumentList( ServerInterface *serverGui, bool scanDocs, |
94 | QObject *parent, const char *name ) | 94 | QObject *parent, const char *name ) |
95 | : QObject( parent, name ) | 95 | : QObject( parent, name ) |
96 | { | 96 | { |
97 | appLnkSet = new AppLnkSet( MimeType::appsFolderName() ); | 97 | appLnkSet = new AppLnkSet( MimeType::appsFolderName() ); |
98 | d = new DocumentListPrivate( serverGui ); | 98 | d = new DocumentListPrivate( serverGui ); |
99 | d->scanDocs = scanDocs; | ||
100 | d->needToSendAllDocLinks = false; | 99 | d->needToSendAllDocLinks = false; |
101 | 100 | ||
101 | Config cfg( "Launcher" ); | ||
102 | cfg.setGroup( "DocTab" ); | ||
103 | d->scanDocs = cfg.readBoolEntry( "Enable", true ); | ||
104 | qDebug( "DocumentList::DocumentList() : scanDocs = %d", d->scanDocs ); | ||
105 | |||
102 | QTimer::singleShot( 10, this, SLOT( startInitialScan() ) ); | 106 | QTimer::singleShot( 10, this, SLOT( startInitialScan() ) ); |
103 | } | 107 | } |
104 | 108 | ||
105 | void DocumentList::startInitialScan() | 109 | void DocumentList::startInitialScan() |
106 | { | 110 | { |
107 | reloadAppLnks(); | 111 | reloadAppLnks(); |
108 | 112 | reloadDocLnks(); | |
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 | |||
123 | } | 113 | } |
124 | 114 | ||
125 | DocumentList::~DocumentList() | 115 | DocumentList::~DocumentList() |
126 | { | 116 | { |
127 | delete appLnkSet; | 117 | delete appLnkSet; |
128 | delete d; | 118 | delete d; |
129 | } | 119 | } |
130 | 120 | ||
131 | 121 | ||
132 | void DocumentList::add( const DocLnk& doc ) | 122 | void DocumentList::add( const DocLnk& doc ) |
133 | { | 123 | { |
134 | if ( d->serverGui && QFile::exists( doc.file() ) ) | 124 | if ( d->serverGui && QFile::exists( doc.file() ) ) |
135 | d->serverGui->documentAdded( doc ); | 125 | d->serverGui->documentAdded( doc ); |
136 | } | 126 | } |
137 | 127 | ||
138 | 128 | ||
139 | void DocumentList::start() | 129 | void DocumentList::start() |
140 | { | 130 | { |
141 | resume(); | 131 | resume(); |
142 | } | 132 | } |
143 | 133 | ||
144 | 134 | ||
145 | void DocumentList::pause() | 135 | void DocumentList::pause() |
146 | { | 136 | { |
diff --git a/core/launcher/launcher.cpp b/core/launcher/launcher.cpp index b312672..344cd46 100644 --- a/core/launcher/launcher.cpp +++ b/core/launcher/launcher.cpp | |||
@@ -131,48 +131,49 @@ 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" ); | 134 | Config cfg( "Launcher" ); |
135 | cfg.setGroup( "DocTab" ); | 135 | cfg.setGroup( "DocTab" ); |
136 | bool docTabEnabled = cfg.readBoolEntry( "Enable", true ); | 136 | bool docTabEnabled = cfg.readBoolEntry( "Enable", true ); |
137 | 137 | ||
138 | QLabel *textLabel = new QLabel( docLoadingVBox ); | 138 | QLabel *textLabel = new QLabel( docLoadingVBox ); |
139 | textLabel->setAlignment( int( QLabel::AlignCenter ) ); | 139 | textLabel->setAlignment( int( QLabel::AlignCenter ) ); |
140 | docLoadingWidgetProgress = new QProgressBar( docLoadingVBox ); | 140 | docLoadingWidgetProgress = new QProgressBar( docLoadingVBox ); |
141 | docLoadingWidgetProgress->setProgress( 0 ); | 141 | docLoadingWidgetProgress->setProgress( 0 ); |
142 | docLoadingWidgetProgress->setCenterIndicator( TRUE ); | 142 | docLoadingWidgetProgress->setCenterIndicator( TRUE ); |
143 | docLoadingWidgetProgress->setBackgroundMode( NoBackground ); // No flicker | 143 | docLoadingWidgetProgress->setBackgroundMode( NoBackground ); // No flicker |
144 | setProgressStyle(); | 144 | setProgressStyle(); |
145 | 145 | ||
146 | if ( docTabEnabled ) | 146 | if ( docTabEnabled ) |
147 | { | 147 | { |
148 | textLabel->setText( tr( "<b>Finding Documents...</b>" ) ); | 148 | textLabel->setText( tr( "<b>Finding Documents...</b>" ) ); |
149 | } | 149 | } |
150 | else | 150 | else |
151 | { | 151 | { |
152 | textLabel->setText( tr( "<b>The Documents Tab<p>has been disabled.<p>" | 152 | textLabel->setText( tr( "<b>The Documents Tab<p>has been disabled.<p>" |
153 | "Use Settings->Launcher->DocTab<p>to reenable it.</b></center>" ) ); | 153 | "Use Settings->Launcher->DocTab<p>to reenable it.</b></center>" ) ); |
154 | docLoadingWidgetProgress->hide(); | 154 | docLoadingWidgetProgress->hide(); |
155 | docLoadingWidgetEnabled = true; | ||
155 | } | 156 | } |
156 | 157 | ||
157 | QWidget *space2 = new QWidget( docLoadingVBox ); | 158 | QWidget *space2 = new QWidget( docLoadingVBox ); |
158 | docLoadingVBox->setStretchFactor( space2, 1 ); | 159 | docLoadingVBox->setStretchFactor( space2, 1 ); |
159 | 160 | ||
160 | cfg.setGroup( "Tab Documents" ); // No tr | 161 | cfg.setGroup( "Tab Documents" ); // No tr |
161 | setTabViewAppearance( docLoadingWidget, cfg ); | 162 | setTabViewAppearance( docLoadingWidget, cfg ); |
162 | 163 | ||
163 | stack->addWidget( docLoadingWidget, 0 ); | 164 | stack->addWidget( docLoadingWidget, 0 ); |
164 | } | 165 | } |
165 | 166 | ||
166 | void LauncherTabWidget::initLayout() | 167 | void LauncherTabWidget::initLayout() |
167 | { | 168 | { |
168 | layout()->activate(); | 169 | layout()->activate(); |
169 | docView()->setFocus(); | 170 | docView()->setFocus(); |
170 | categoryBar->showTab("Documents"); | 171 | categoryBar->showTab("Documents"); |
171 | } | 172 | } |
172 | 173 | ||
173 | void LauncherTabWidget::appMessage(const QCString& message, const QByteArray&) | 174 | void LauncherTabWidget::appMessage(const QCString& message, const QByteArray&) |
174 | { | 175 | { |
175 | if ( message == "nextView()" ) | 176 | if ( message == "nextView()" ) |
176 | categoryBar->nextTab(); | 177 | categoryBar->nextTab(); |
177 | } | 178 | } |
178 | 179 | ||
@@ -480,48 +481,55 @@ void Launcher::createGUI() | |||
480 | QCopChannel* sysChannel = new QCopChannel( "QPE/System", this ); | 481 | QCopChannel* sysChannel = new QCopChannel( "QPE/System", this ); |
481 | connect( sysChannel, SIGNAL(received(const QCString &, const QByteArray &)), | 482 | connect( sysChannel, SIGNAL(received(const QCString &, const QByteArray &)), |
482 | this, SLOT(systemMessage( const QCString &, const QByteArray &)) ); | 483 | this, SLOT(systemMessage( const QCString &, const QByteArray &)) ); |
483 | #endif | 484 | #endif |
484 | 485 | ||
485 | // all documents | 486 | // all documents |
486 | QImage img( Resource::loadImage( "DocsIcon" ) ); | 487 | QImage img( Resource::loadImage( "DocsIcon" ) ); |
487 | QPixmap pm; | 488 | QPixmap pm; |
488 | pm = img.smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ); | 489 | pm = img.smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ); |
489 | // It could add this itself if it handles docs | 490 | // It could add this itself if it handles docs |
490 | 491 | ||
491 | tabs->newView("Documents", pm, tr("Documents") )->setToolsEnabled( TRUE ); | 492 | tabs->newView("Documents", pm, tr("Documents") )->setToolsEnabled( TRUE ); |
492 | 493 | ||
493 | QTimer::singleShot( 0, tabs, SLOT( initLayout() ) ); | 494 | QTimer::singleShot( 0, tabs, SLOT( initLayout() ) ); |
494 | qApp->setMainWidget( this ); | 495 | qApp->setMainWidget( this ); |
495 | QTimer::singleShot( 500, this, SLOT( makeVisible() ) ); | 496 | QTimer::singleShot( 500, this, SLOT( makeVisible() ) ); |
496 | } | 497 | } |
497 | 498 | ||
498 | Launcher::~Launcher() | 499 | Launcher::~Launcher() |
499 | { | 500 | { |
500 | if ( tb ) | 501 | if ( tb ) |
501 | destroyGUI(); | 502 | destroyGUI(); |
502 | } | 503 | } |
503 | 504 | ||
505 | bool Launcher::requiresDocuments() const | ||
506 | { | ||
507 | Config cfg( "Launcher" ); | ||
508 | cfg.setGroup( "DocTab" ); | ||
509 | return cfg.readBoolEntry( "Enable", true ); | ||
510 | } | ||
511 | |||
504 | void Launcher::makeVisible() | 512 | void Launcher::makeVisible() |
505 | { | 513 | { |
506 | showMaximized(); | 514 | showMaximized(); |
507 | } | 515 | } |
508 | 516 | ||
509 | void Launcher::destroyGUI() | 517 | void Launcher::destroyGUI() |
510 | { | 518 | { |
511 | delete tb; | 519 | delete tb; |
512 | tb = 0; | 520 | tb = 0; |
513 | delete tabs; | 521 | delete tabs; |
514 | tabs =0; | 522 | tabs =0; |
515 | } | 523 | } |
516 | 524 | ||
517 | bool Launcher::eventFilter( QObject*, QEvent *ev ) | 525 | bool Launcher::eventFilter( QObject*, QEvent *ev ) |
518 | { | 526 | { |
519 | #ifdef QT_QWS_CUSTOM | 527 | #ifdef QT_QWS_CUSTOM |
520 | if ( ev->type() == QEvent::KeyPress ) { | 528 | if ( ev->type() == QEvent::KeyPress ) { |
521 | QKeyEvent *ke = (QKeyEvent *)ev; | 529 | QKeyEvent *ke = (QKeyEvent *)ev; |
522 | if ( ke->key() == Qt::Key_F11 ) { // menu key | 530 | if ( ke->key() == Qt::Key_F11 ) { // menu key |
523 | QWidget *active = qApp->activeWindow(); | 531 | QWidget *active = qApp->activeWindow(); |
524 | if ( active && active->isPopup() ) | 532 | if ( active && active->isPopup() ) |
525 | active->close(); | 533 | active->close(); |
526 | else { | 534 | else { |
527 | Global::terminateBuiltin("calibrate"); // No tr | 535 | Global::terminateBuiltin("calibrate"); // No tr |
@@ -728,53 +736,45 @@ void Launcher::applicationStateChanged( const QString& name, ApplicationState st | |||
728 | void Launcher::applicationScanningProgress( int percent ) | 736 | void Launcher::applicationScanningProgress( int percent ) |
729 | { | 737 | { |
730 | switch ( percent ) { | 738 | switch ( percent ) { |
731 | case 0: { | 739 | case 0: { |
732 | for ( QStringList::ConstIterator it=ids.begin(); it!= ids.end(); ++it) { | 740 | for ( QStringList::ConstIterator it=ids.begin(); it!= ids.end(); ++it) { |
733 | tabs->view( (*it) )->setUpdatesEnabled( FALSE ); | 741 | tabs->view( (*it) )->setUpdatesEnabled( FALSE ); |
734 | tabs->view( (*it) )->setSortEnabled( FALSE ); | 742 | tabs->view( (*it) )->setSortEnabled( FALSE ); |
735 | } | 743 | } |
736 | break; | 744 | break; |
737 | } | 745 | } |
738 | case 100: { | 746 | case 100: { |
739 | for ( QStringList::ConstIterator it=ids.begin(); it!= ids.end(); ++it) { | 747 | for ( QStringList::ConstIterator it=ids.begin(); it!= ids.end(); ++it) { |
740 | tabs->view( (*it) )->setUpdatesEnabled( TRUE ); | 748 | tabs->view( (*it) )->setUpdatesEnabled( TRUE ); |
741 | tabs->view( (*it) )->setSortEnabled( TRUE ); | 749 | tabs->view( (*it) )->setSortEnabled( TRUE ); |
742 | } | 750 | } |
743 | break; | 751 | break; |
744 | } | 752 | } |
745 | default: | 753 | default: |
746 | break; | 754 | break; |
747 | } | 755 | } |
748 | } | 756 | } |
749 | 757 | ||
750 | void Launcher::documentScanningProgress( int percent ) | 758 | void Launcher::documentScanningProgress( int percent ) |
751 | { | 759 | { |
752 | if ( !docTabEnabled ) | ||
753 | { | ||
754 | qDebug( "Launcher: document tab disabled!" ); | ||
755 | tabs->setLoadingProgress( 100 ); | ||
756 | tabs->setLoadingWidgetEnabled( TRUE ); | ||
757 | return; | ||
758 | } | ||
759 | |||
760 | switch ( percent ) { | 760 | switch ( percent ) { |
761 | case 0: { | 761 | case 0: { |
762 | tabs->setLoadingProgress( 0 ); | 762 | tabs->setLoadingProgress( 0 ); |
763 | tabs->setLoadingWidgetEnabled( TRUE ); | 763 | tabs->setLoadingWidgetEnabled( TRUE ); |
764 | tabs->docView()->setUpdatesEnabled( FALSE ); | 764 | tabs->docView()->setUpdatesEnabled( FALSE ); |
765 | tabs->docView()->setSortEnabled( FALSE ); | 765 | tabs->docView()->setSortEnabled( FALSE ); |
766 | break; | 766 | break; |
767 | } | 767 | } |
768 | case 100: { | 768 | case 100: { |
769 | tabs->docView()->updateTools(); | 769 | tabs->docView()->updateTools(); |
770 | tabs->docView()->setSortEnabled( TRUE ); | 770 | tabs->docView()->setSortEnabled( TRUE ); |
771 | tabs->docView()->setUpdatesEnabled( TRUE ); | 771 | tabs->docView()->setUpdatesEnabled( TRUE ); |
772 | tabs->setLoadingWidgetEnabled( FALSE ); | 772 | tabs->setLoadingWidgetEnabled( FALSE ); |
773 | break; | 773 | break; |
774 | } | 774 | } |
775 | default: | 775 | default: |
776 | tabs->setLoadingProgress( percent ); | 776 | tabs->setLoadingProgress( percent ); |
777 | break; | 777 | break; |
778 | } | 778 | } |
779 | } | 779 | } |
780 | 780 | ||
diff --git a/core/launcher/launcher.h b/core/launcher/launcher.h index 1d046ee..4f3ff8c 100644 --- a/core/launcher/launcher.h +++ b/core/launcher/launcher.h | |||
@@ -95,49 +95,49 @@ private: | |||
95 | class Launcher : public QMainWindow, public ServerInterface | 95 | class Launcher : public QMainWindow, public ServerInterface |
96 | { | 96 | { |
97 | Q_OBJECT | 97 | Q_OBJECT |
98 | public: | 98 | public: |
99 | Launcher(); | 99 | Launcher(); |
100 | ~Launcher(); | 100 | ~Launcher(); |
101 | 101 | ||
102 | // implementing ServerInterface | 102 | // implementing ServerInterface |
103 | void createGUI(); | 103 | void createGUI(); |
104 | void destroyGUI(); | 104 | void destroyGUI(); |
105 | void typeAdded( const QString& type, const QString& name, const QPixmap& pixmap, const QPixmap& bgPixmap ); | 105 | void typeAdded( const QString& type, const QString& name, const QPixmap& pixmap, const QPixmap& bgPixmap ); |
106 | void typeRemoved( const QString& type ); | 106 | void typeRemoved( const QString& type ); |
107 | void applicationAdded( const QString& type, const AppLnk& doc ); | 107 | void applicationAdded( const QString& type, const AppLnk& doc ); |
108 | void applicationRemoved( const QString& type, const AppLnk& doc ); | 108 | void applicationRemoved( const QString& type, const AppLnk& doc ); |
109 | void allApplicationsRemoved(); | 109 | void allApplicationsRemoved(); |
110 | void applicationStateChanged( const QString& name, ApplicationState state ); | 110 | void applicationStateChanged( const QString& name, ApplicationState state ); |
111 | void documentAdded( const DocLnk& doc ); | 111 | void documentAdded( const DocLnk& doc ); |
112 | void documentRemoved( const DocLnk& doc ); | 112 | void documentRemoved( const DocLnk& doc ); |
113 | void allDocumentsRemoved(); | 113 | void allDocumentsRemoved(); |
114 | void documentChanged( const DocLnk& oldDoc, const DocLnk& newDoc ); | 114 | void documentChanged( const DocLnk& oldDoc, const DocLnk& newDoc ); |
115 | void storageChanged( const QList<FileSystem> & ); | 115 | void storageChanged( const QList<FileSystem> & ); |
116 | void applicationScanningProgress( int percent ); | 116 | void applicationScanningProgress( int percent ); |
117 | void documentScanningProgress( int percent ); | 117 | void documentScanningProgress( int percent ); |
118 | bool requiresApplications() const { return TRUE; } | 118 | bool requiresApplications() const { return TRUE; } |
119 | bool requiresDocuments() const { return TRUE; } | 119 | bool requiresDocuments() const; |
120 | void showLoadingDocs(); | 120 | void showLoadingDocs(); |
121 | void showDocTab(); | 121 | void showDocTab(); |
122 | 122 | ||
123 | QStringList idList() const { return ids; } | 123 | QStringList idList() const { return ids; } |
124 | 124 | ||
125 | public slots: | 125 | public slots: |
126 | void viewSelected(const QString&); | 126 | void viewSelected(const QString&); |
127 | void showTab(const QString&); | 127 | void showTab(const QString&); |
128 | void select( const AppLnk * ); | 128 | void select( const AppLnk * ); |
129 | void properties( AppLnk * ); | 129 | void properties( AppLnk * ); |
130 | void makeVisible(); | 130 | void makeVisible(); |
131 | 131 | ||
132 | signals: | 132 | signals: |
133 | void executing( const AppLnk * ); | 133 | void executing( const AppLnk * ); |
134 | 134 | ||
135 | private slots: | 135 | private slots: |
136 | void systemMessage( const QCString &, const QByteArray &); | 136 | void systemMessage( const QCString &, const QByteArray &); |
137 | void toggleSymbolInput(); | 137 | void toggleSymbolInput(); |
138 | void toggleNumLockState(); | 138 | void toggleNumLockState(); |
139 | void toggleCapsLockState(); | 139 | void toggleCapsLockState(); |
140 | 140 | ||
141 | protected: | 141 | protected: |
142 | bool eventFilter( QObject *o, QEvent *ev ); | 142 | bool eventFilter( QObject *o, QEvent *ev ); |
143 | 143 | ||