-rw-r--r-- | core/launcher/launcher.cpp | 34 | ||||
-rw-r--r-- | core/launcher/launcher.h | 2 |
2 files changed, 32 insertions, 4 deletions
diff --git a/core/launcher/launcher.cpp b/core/launcher/launcher.cpp index fc944e1..e74301c 100644 --- a/core/launcher/launcher.cpp +++ b/core/launcher/launcher.cpp | |||
@@ -140,24 +140,33 @@ void CategoryTabWidget::prevTab() | |||
140 | } | 140 | } |
141 | } | 141 | } |
142 | 142 | ||
143 | void CategoryTabWidget::nextTab() | 143 | void CategoryTabWidget::nextTab() |
144 | { | 144 | { |
145 | if ( categoryBar ) { | 145 | if ( categoryBar ) { |
146 | int n = categoryBar->count(); | 146 | int n = categoryBar->count(); |
147 | int tab = categoryBar->currentTab(); | 147 | int tab = categoryBar->currentTab(); |
148 | categoryBar->setCurrentTab( (tab + 1)%n ); | 148 | categoryBar->setCurrentTab( (tab + 1)%n ); |
149 | } | 149 | } |
150 | } | 150 | } |
151 | 151 | ||
152 | |||
153 | void CategoryTabWidget::showTab(const QString& id) | ||
154 | { | ||
155 | if ( categoryBar ) { | ||
156 | int idx = ids.findIndex( id ); | ||
157 | categoryBar->setCurrentTab( idx ); | ||
158 | } | ||
159 | } | ||
160 | |||
152 | void CategoryTabWidget::addItem( const QString& linkfile ) | 161 | void CategoryTabWidget::addItem( const QString& linkfile ) |
153 | { | 162 | { |
154 | int i=0; | 163 | int i=0; |
155 | AppLnk *app = new AppLnk(linkfile); | 164 | AppLnk *app = new AppLnk(linkfile); |
156 | if ( !app->isValid() ) { | 165 | if ( !app->isValid() ) { |
157 | delete app; | 166 | delete app; |
158 | app=0; | 167 | app=0; |
159 | } | 168 | } |
160 | if ( !app || !app->file().isEmpty() ) { | 169 | if ( !app || !app->file().isEmpty() ) { |
161 | // A document | 170 | // A document |
162 | delete app; | 171 | delete app; |
163 | app = new DocLnk(linkfile); | 172 | app = new DocLnk(linkfile); |
@@ -178,24 +187,30 @@ void CategoryTabWidget::addItem( const QString& linkfile ) | |||
178 | return; | 187 | return; |
179 | } | 188 | } |
180 | i++; | 189 | i++; |
181 | } | 190 | } |
182 | } | 191 | } |
183 | 192 | ||
184 | QCopEnvelope e("QPE/TaskBar","reloadApps()"); | 193 | QCopEnvelope e("QPE/TaskBar","reloadApps()"); |
185 | } | 194 | } |
186 | 195 | ||
187 | void CategoryTabWidget::initializeCategories(AppLnkSet* rootFolder, | 196 | void CategoryTabWidget::initializeCategories(AppLnkSet* rootFolder, |
188 | AppLnkSet* docFolder, const QList<FileSystem> &fs) | 197 | AppLnkSet* docFolder, const QList<FileSystem> &fs) |
189 | { | 198 | { |
199 | QString current; | ||
200 | if ( categoryBar ) { | ||
201 | int c = categoryBar->currentTab(); | ||
202 | if ( c >= 0 ) current = ids[c]; | ||
203 | } | ||
204 | |||
190 | delete categoryBar; | 205 | delete categoryBar; |
191 | categoryBar = new CategoryTabBar( this ); | 206 | categoryBar = new CategoryTabBar( this ); |
192 | QPalette pal = categoryBar->palette(); | 207 | QPalette pal = categoryBar->palette(); |
193 | pal.setColor( QColorGroup::Light, pal.color(QPalette::Active,QColorGroup::Shadow) ); | 208 | pal.setColor( QColorGroup::Light, pal.color(QPalette::Active,QColorGroup::Shadow) ); |
194 | pal.setColor( QColorGroup::Background, pal.active().background().light(110) ); | 209 | pal.setColor( QColorGroup::Background, pal.active().background().light(110) ); |
195 | categoryBar->setPalette( pal ); | 210 | categoryBar->setPalette( pal ); |
196 | 211 | ||
197 | delete stack; | 212 | delete stack; |
198 | stack = new QWidgetStack(this); | 213 | stack = new QWidgetStack(this); |
199 | tabs=0; | 214 | tabs=0; |
200 | 215 | ||
201 | ids.clear(); | 216 | ids.clear(); |
@@ -239,26 +254,32 @@ void CategoryTabWidget::initializeCategories(AppLnkSet* rootFolder, | |||
239 | docFolder->detachChildren(); | 254 | docFolder->detachChildren(); |
240 | docview->setFileSystems(fs); | 255 | docview->setFileSystems(fs); |
241 | docview->setToolsEnabled(TRUE); | 256 | docview->setToolsEnabled(TRUE); |
242 | setTabAppearance( "Documents", cfg ); // No tr | 257 | setTabAppearance( "Documents", cfg ); // No tr |
243 | 258 | ||
244 | connect( categoryBar, SIGNAL(selected(int)), stack, SLOT(raiseWidget(int)) ); | 259 | connect( categoryBar, SIGNAL(selected(int)), stack, SLOT(raiseWidget(int)) ); |
245 | 260 | ||
246 | ((LauncherView*)stack->widget(0))->setFocus(); | 261 | ((LauncherView*)stack->widget(0))->setFocus(); |
247 | 262 | ||
248 | cfg. setGroup ( "GUI" ); | 263 | cfg. setGroup ( "GUI" ); |
249 | setBusyIndicatorType ( cfg. readEntry ( "BusyType", QString::null )); | 264 | setBusyIndicatorType ( cfg. readEntry ( "BusyType", QString::null )); |
250 | 265 | ||
266 | if ( !current.isNull() ) { | ||
267 | showTab(current); | ||
268 | } | ||
269 | |||
251 | categoryBar->show(); | 270 | categoryBar->show(); |
252 | stack->show(); | 271 | stack->show(); |
272 | |||
273 | QCopEnvelope e("QPE/TaskBar","reloadApps()"); | ||
253 | } | 274 | } |
254 | 275 | ||
255 | void CategoryTabWidget::setTabAppearance( const QString &id, Config &cfg ) | 276 | void CategoryTabWidget::setTabAppearance( const QString &id, Config &cfg ) |
256 | { | 277 | { |
257 | QString grp( "Tab %1" ); // No tr | 278 | QString grp( "Tab %1" ); // No tr |
258 | cfg.setGroup( grp.arg(id) ); | 279 | cfg.setGroup( grp.arg(id) ); |
259 | LauncherView *v = view( id ); | 280 | LauncherView *v = view( id ); |
260 | int idx = ids.findIndex( id ); | 281 | int idx = ids.findIndex( id ); |
261 | CategoryTab *tab = (CategoryTab *)categoryBar->tab( idx ); | 282 | CategoryTab *tab = (CategoryTab *)categoryBar->tab( idx ); |
262 | 283 | ||
263 | // View | 284 | // View |
264 | QString view = cfg.readEntry( "View", "Icon" ); | 285 | QString view = cfg.readEntry( "View", "Icon" ); |
@@ -605,25 +626,24 @@ Launcher::Launcher( QWidget* parent, const char* name, WFlags fl ) | |||
605 | // we have a pretty good idea how big we'll be | 626 | // we have a pretty good idea how big we'll be |
606 | setGeometry( 0, 0, qApp->desktop()->width(), qApp->desktop()->height() ); | 627 | setGeometry( 0, 0, qApp->desktop()->width(), qApp->desktop()->height() ); |
607 | 628 | ||
608 | tabs = 0; | 629 | tabs = 0; |
609 | rootFolder = 0; | 630 | rootFolder = 0; |
610 | docsFolder = 0; | 631 | docsFolder = 0; |
611 | 632 | ||
612 | int stamp = uidgen.generate(); // this is our timestamp to see which devices we know | 633 | int stamp = uidgen.generate(); // this is our timestamp to see which devices we know |
613 | //uidgen.store( stamp ); | 634 | //uidgen.store( stamp ); |
614 | m_timeStamp = QString::number( stamp ); | 635 | m_timeStamp = QString::number( stamp ); |
615 | 636 | ||
616 | tabs = new CategoryTabWidget( this ); | 637 | tabs = new CategoryTabWidget( this ); |
617 | tabs->setMaximumWidth( qApp->desktop()->width() ); | ||
618 | setCentralWidget( tabs ); | 638 | setCentralWidget( tabs ); |
619 | 639 | ||
620 | connect( tabs, SIGNAL(selected(const QString&)), | 640 | connect( tabs, SIGNAL(selected(const QString&)), |
621 | this, SLOT(viewSelected(const QString&)) ); | 641 | this, SLOT(viewSelected(const QString&)) ); |
622 | connect( tabs, SIGNAL(clicked(const AppLnk*)), | 642 | connect( tabs, SIGNAL(clicked(const AppLnk*)), |
623 | this, SLOT(select(const AppLnk*))); | 643 | this, SLOT(select(const AppLnk*))); |
624 | connect( tabs, SIGNAL(rightPressed(AppLnk*)), | 644 | connect( tabs, SIGNAL(rightPressed(AppLnk*)), |
625 | this, SLOT(properties(AppLnk*))); | 645 | this, SLOT(properties(AppLnk*))); |
626 | 646 | ||
627 | #if !defined(QT_NO_COP) | 647 | #if !defined(QT_NO_COP) |
628 | QCopChannel* sysChannel = new QCopChannel( "QPE/System", this ); | 648 | QCopChannel* sysChannel = new QCopChannel( "QPE/System", this ); |
629 | connect( sysChannel, SIGNAL(received(const QCString &, const QByteArray &)), | 649 | connect( sysChannel, SIGNAL(received(const QCString &, const QByteArray &)), |
@@ -665,24 +685,25 @@ static bool isVisibleWindow(int wid) | |||
665 | 685 | ||
666 | void Launcher::showMaximized() | 686 | void Launcher::showMaximized() |
667 | { | 687 | { |
668 | if ( isVisibleWindow( winId() ) ) | 688 | if ( isVisibleWindow( winId() ) ) |
669 | doMaximize(); | 689 | doMaximize(); |
670 | else | 690 | else |
671 | QTimer::singleShot( 20, this, SLOT(doMaximize()) ); | 691 | QTimer::singleShot( 20, this, SLOT(doMaximize()) ); |
672 | } | 692 | } |
673 | 693 | ||
674 | void Launcher::doMaximize() | 694 | void Launcher::doMaximize() |
675 | { | 695 | { |
676 | QMainWindow::showMaximized(); | 696 | QMainWindow::showMaximized(); |
697 | tabs->setMaximumWidth( qApp->desktop()->width() ); | ||
677 | } | 698 | } |
678 | 699 | ||
679 | void Launcher::updateMimeTypes() | 700 | void Launcher::updateMimeTypes() |
680 | { | 701 | { |
681 | MimeType::clear(); | 702 | MimeType::clear(); |
682 | updateMimeTypes(rootFolder); | 703 | updateMimeTypes(rootFolder); |
683 | } | 704 | } |
684 | 705 | ||
685 | void Launcher::updateMimeTypes(AppLnkSet* folder) | 706 | void Launcher::updateMimeTypes(AppLnkSet* folder) |
686 | { | 707 | { |
687 | for ( QListIterator<AppLnk> it( folder->children() ); it.current(); ++it ) { | 708 | for ( QListIterator<AppLnk> it( folder->children() ); it.current(); ++it ) { |
688 | AppLnk *app = it.current(); | 709 | AppLnk *app = it.current(); |
@@ -823,24 +844,29 @@ void Launcher::updateDocs() | |||
823 | } | 844 | } |
824 | 845 | ||
825 | void Launcher::viewSelected(const QString& s) | 846 | void Launcher::viewSelected(const QString& s) |
826 | { | 847 | { |
827 | setCaption( s + tr(" - Launcher") ); | 848 | setCaption( s + tr(" - Launcher") ); |
828 | } | 849 | } |
829 | 850 | ||
830 | void Launcher::nextView() | 851 | void Launcher::nextView() |
831 | { | 852 | { |
832 | tabs->nextTab(); | 853 | tabs->nextTab(); |
833 | } | 854 | } |
834 | 855 | ||
856 | void Launcher::showTab(const QString& id) | ||
857 | { | ||
858 | tabs->showTab(id); | ||
859 | raise(); | ||
860 | } | ||
835 | 861 | ||
836 | void Launcher::select( const AppLnk *appLnk ) | 862 | void Launcher::select( const AppLnk *appLnk ) |
837 | { | 863 | { |
838 | if ( appLnk->type() == "Folder" ) { // No tr | 864 | if ( appLnk->type() == "Folder" ) { // No tr |
839 | // Not supported: flat is simpler for the user | 865 | // Not supported: flat is simpler for the user |
840 | } else { | 866 | } else { |
841 | if ( appLnk->exec().isNull() ) { | 867 | if ( appLnk->exec().isNull() ) { |
842 | QMessageBox::information(this,tr("No application"), | 868 | QMessageBox::information(this,tr("No application"), |
843 | tr("<p>No application is defined for this document." | 869 | tr("<p>No application is defined for this document." |
844 | "<p>Type is %1.").arg(appLnk->type())); | 870 | "<p>Type is %1.").arg(appLnk->type())); |
845 | return; | 871 | return; |
846 | } | 872 | } |
@@ -880,25 +906,25 @@ void Launcher::updateLink(const QString& link) | |||
880 | 906 | ||
881 | if (link.isNull()) { | 907 | if (link.isNull()) { |
882 | updateTabs(); | 908 | updateTabs(); |
883 | notify_sm = true; | 909 | notify_sm = true; |
884 | } | 910 | } |
885 | else if (link.isEmpty()) { | 911 | else if (link.isEmpty()) { |
886 | updateDocs(); | 912 | updateDocs(); |
887 | } | 913 | } |
888 | else { | 914 | else { |
889 | tabs->updateLink(link); | 915 | tabs->updateLink(link); |
890 | notify_sm = true; | 916 | notify_sm = true; |
891 | } | 917 | } |
892 | 918 | ||
893 | if ( notify_sm ) | 919 | if ( notify_sm ) |
894 | QCopEnvelope e ( "QPE/TaskBar", "reloadApps()" ); | 920 | QCopEnvelope e ( "QPE/TaskBar", "reloadApps()" ); |
895 | } | 921 | } |
896 | 922 | ||
897 | void Launcher::systemMessage( const QCString &msg, const QByteArray &data) | 923 | void Launcher::systemMessage( const QCString &msg, const QByteArray &data) |
898 | { | 924 | { |
899 | QDataStream stream( data, IO_ReadOnly ); | 925 | QDataStream stream( data, IO_ReadOnly ); |
900 | if ( msg == "linkChanged(QString)" ) { | 926 | if ( msg == "linkChanged(QString)" ) { |
901 | QString link; | 927 | QString link; |
902 | stream >> link; | 928 | stream >> link; |
903 | if ( in_lnk_props ) { | 929 | if ( in_lnk_props ) { |
904 | got_lnk_change = TRUE; | 930 | got_lnk_change = TRUE; |
@@ -1180,33 +1206,33 @@ void Launcher::launcherMessage( const QCString &msg, const QByteArray &data) | |||
1180 | stream >> weight; | 1206 | stream >> weight; |
1181 | int italic; | 1207 | int italic; |
1182 | stream >> italic; | 1208 | stream >> italic; |
1183 | if ( tabs->view(id) ) | 1209 | if ( tabs->view(id) ) |
1184 | if ( !fam. isEmpty ( )) | 1210 | if ( !fam. isEmpty ( )) |
1185 | tabs->view(id)->setViewFont( QFont(fam, size, weight, italic!=0) ); | 1211 | tabs->view(id)->setViewFont( QFont(fam, size, weight, italic!=0) ); |
1186 | else | 1212 | else |
1187 | tabs->view(id)->unsetViewFont(); | 1213 | tabs->view(id)->unsetViewFont(); |
1188 | qDebug( "setFont: %s, %d, %d, %d", fam.latin1(), size, weight, italic ); | 1214 | qDebug( "setFont: %s, %d, %d, %d", fam.latin1(), size, weight, italic ); |
1189 | } | 1215 | } |
1190 | else if ( msg == "setBusyIndicatorType(QString)" ) { | 1216 | else if ( msg == "setBusyIndicatorType(QString)" ) { |
1191 | QString type; | 1217 | QString type; |
1192 | stream >> type; | 1218 | stream >> type; |
1193 | tabs->setBusyIndicatorType(type); | 1219 | tabs->setBusyIndicatorType(type); |
1194 | } | 1220 | } |
1195 | else if ( msg == "home()" ) { | 1221 | else if ( msg == "home()" ) { |
1196 | if ( isVisibleWindow( winId ( ))) | 1222 | if ( isVisibleWindow( winId ( ))) |
1197 | nextView ( ); | 1223 | nextView ( ); |
1198 | else | 1224 | else |
1199 | raise ( ); | 1225 | raise ( ); |
1200 | 1226 | ||
1201 | } | 1227 | } |
1202 | } | 1228 | } |
1203 | 1229 | ||
1204 | void Launcher::storageChanged() | 1230 | void Launcher::storageChanged() |
1205 | { | 1231 | { |
1206 | if ( in_lnk_props ) { | 1232 | if ( in_lnk_props ) { |
1207 | got_lnk_change = TRUE; | 1233 | got_lnk_change = TRUE; |
1208 | lnk_change = QString::null; | 1234 | lnk_change = QString::null; |
1209 | } else { | 1235 | } else { |
1210 | updateLink( QString::null ); | 1236 | updateLink( QString::null ); |
1211 | } | 1237 | } |
1212 | } | 1238 | } |
diff --git a/core/launcher/launcher.h b/core/launcher/launcher.h index 89bf6f3..c92ef5d 100644 --- a/core/launcher/launcher.h +++ b/core/launcher/launcher.h | |||
@@ -63,24 +63,25 @@ public: | |||
63 | void setBusy(bool on); | 63 | void setBusy(bool on); |
64 | QString getAllDocLinkInfo() const; | 64 | QString getAllDocLinkInfo() const; |
65 | LauncherView *view( const QString &id ); | 65 | LauncherView *view( const QString &id ); |
66 | void setBusyIndicatorType ( const QString &type ); | 66 | void setBusyIndicatorType ( const QString &type ); |
67 | signals: | 67 | signals: |
68 | void selected(const QString&); | 68 | void selected(const QString&); |
69 | void clicked(const AppLnk*); | 69 | void clicked(const AppLnk*); |
70 | void rightPressed(AppLnk*); | 70 | void rightPressed(AppLnk*); |
71 | 71 | ||
72 | public slots: | 72 | public slots: |
73 | void nextTab(); | 73 | void nextTab(); |
74 | void prevTab(); | 74 | void prevTab(); |
75 | void showTab(const QString&); | ||
75 | 76 | ||
76 | protected slots: | 77 | protected slots: |
77 | void tabProperties(); | 78 | void tabProperties(); |
78 | 79 | ||
79 | protected: | 80 | protected: |
80 | void setTabAppearance( const QString &id, Config &cfg ); | 81 | void setTabAppearance( const QString &id, Config &cfg ); |
81 | void paletteChange( const QPalette &p ); | 82 | void paletteChange( const QPalette &p ); |
82 | 83 | ||
83 | private: | 84 | private: |
84 | CategoryTabBar* categoryBar; | 85 | CategoryTabBar* categoryBar; |
85 | QWidgetStack* stack; | 86 | QWidgetStack* stack; |
86 | LauncherView* docview; | 87 | LauncherView* docview; |
@@ -96,24 +97,25 @@ class Launcher : public QMainWindow | |||
96 | friend class LauncherPrivate; | 97 | friend class LauncherPrivate; |
97 | public: | 98 | public: |
98 | Launcher( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); | 99 | Launcher( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); |
99 | ~Launcher(); | 100 | ~Launcher(); |
100 | 101 | ||
101 | static QString appsFolderName(); | 102 | static QString appsFolderName(); |
102 | 103 | ||
103 | virtual void showMaximized(); | 104 | virtual void showMaximized(); |
104 | static bool mkdir(const QString &path); | 105 | static bool mkdir(const QString &path); |
105 | 106 | ||
106 | public slots: | 107 | public slots: |
107 | void viewSelected(const QString&); | 108 | void viewSelected(const QString&); |
109 | void showTab(const QString&); | ||
108 | void select( const AppLnk * ); | 110 | void select( const AppLnk * ); |
109 | void externalSelected( const AppLnk *); | 111 | void externalSelected( const AppLnk *); |
110 | void properties( AppLnk * ); | 112 | void properties( AppLnk * ); |
111 | void nextView(); | 113 | void nextView(); |
112 | 114 | ||
113 | signals: | 115 | signals: |
114 | void executing( const AppLnk * ); | 116 | void executing( const AppLnk * ); |
115 | void busy(); | 117 | void busy(); |
116 | void notBusy(const QString&); | 118 | void notBusy(const QString&); |
117 | 119 | ||
118 | private slots: | 120 | private slots: |
119 | void doMaximize(); | 121 | void doMaximize(); |