author | harlekin <harlekin> | 2003-03-23 13:14:25 (UTC) |
---|---|---|
committer | harlekin <harlekin> | 2003-03-23 13:14:25 (UTC) |
commit | 56192a3d601e5364e9b8f4c331d892befb19cbc1 (patch) (side-by-side diff) | |
tree | 97966e16e29316a6dc28e2f0c9619192a3757b8f | |
parent | c3b01d2abd00b82b821604827987f2becccf5233 (diff) | |
download | opie-56192a3d601e5364e9b8f4c331d892befb19cbc1.zip opie-56192a3d601e5364e9b8f4c331d892befb19cbc1.tar.gz opie-56192a3d601e5364e9b8f4c331d892befb19cbc1.tar.bz2 |
after refresh show the same tab again as before ( for example after a medium is inserted or linkcChanged(QString) has been called
-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 @@ -146,12 +146,21 @@ void CategoryTabWidget::nextTab() int n = categoryBar->count(); int tab = categoryBar->currentTab(); categoryBar->setCurrentTab( (tab + 1)%n ); } } + +void CategoryTabWidget::showTab(const QString& id) +{ + if ( categoryBar ) { + int idx = ids.findIndex( id ); + categoryBar->setCurrentTab( idx ); + } +} + void CategoryTabWidget::addItem( const QString& linkfile ) { int i=0; AppLnk *app = new AppLnk(linkfile); if ( !app->isValid() ) { delete app; @@ -184,12 +193,18 @@ void CategoryTabWidget::addItem( const QString& linkfile ) QCopEnvelope e("QPE/TaskBar","reloadApps()"); } void CategoryTabWidget::initializeCategories(AppLnkSet* rootFolder, AppLnkSet* docFolder, const QList<FileSystem> &fs) { + QString current; + if ( categoryBar ) { + int c = categoryBar->currentTab(); + if ( c >= 0 ) current = ids[c]; + } + delete categoryBar; categoryBar = new CategoryTabBar( this ); QPalette pal = categoryBar->palette(); pal.setColor( QColorGroup::Light, pal.color(QPalette::Active,QColorGroup::Shadow) ); pal.setColor( QColorGroup::Background, pal.active().background().light(110) ); categoryBar->setPalette( pal ); @@ -245,14 +260,20 @@ void CategoryTabWidget::initializeCategories(AppLnkSet* rootFolder, ((LauncherView*)stack->widget(0))->setFocus(); cfg. setGroup ( "GUI" ); setBusyIndicatorType ( cfg. readEntry ( "BusyType", QString::null )); + if ( !current.isNull() ) { + showTab(current); + } + categoryBar->show(); stack->show(); + + QCopEnvelope e("QPE/TaskBar","reloadApps()"); } void CategoryTabWidget::setTabAppearance( const QString &id, Config &cfg ) { QString grp( "Tab %1" ); // No tr cfg.setGroup( grp.arg(id) ); @@ -611,13 +632,12 @@ Launcher::Launcher( QWidget* parent, const char* name, WFlags fl ) int stamp = uidgen.generate(); // this is our timestamp to see which devices we know //uidgen.store( stamp ); m_timeStamp = QString::number( stamp ); tabs = new CategoryTabWidget( this ); - tabs->setMaximumWidth( qApp->desktop()->width() ); setCentralWidget( tabs ); connect( tabs, SIGNAL(selected(const QString&)), this, SLOT(viewSelected(const QString&)) ); connect( tabs, SIGNAL(clicked(const AppLnk*)), this, SLOT(select(const AppLnk*))); @@ -671,12 +691,13 @@ void Launcher::showMaximized() QTimer::singleShot( 20, this, SLOT(doMaximize()) ); } void Launcher::doMaximize() { QMainWindow::showMaximized(); + tabs->setMaximumWidth( qApp->desktop()->width() ); } void Launcher::updateMimeTypes() { MimeType::clear(); updateMimeTypes(rootFolder); @@ -829,12 +850,17 @@ void Launcher::viewSelected(const QString& s) void Launcher::nextView() { tabs->nextTab(); } +void Launcher::showTab(const QString& id) +{ + tabs->showTab(id); + raise(); +} void Launcher::select( const AppLnk *appLnk ) { if ( appLnk->type() == "Folder" ) { // No tr // Not supported: flat is simpler for the user } else { @@ -886,13 +912,13 @@ void Launcher::updateLink(const QString& link) updateDocs(); } else { tabs->updateLink(link); notify_sm = true; } - + if ( notify_sm ) QCopEnvelope e ( "QPE/TaskBar", "reloadApps()" ); } void Launcher::systemMessage( const QCString &msg, const QByteArray &data) { @@ -1186,21 +1212,21 @@ void Launcher::launcherMessage( const QCString &msg, const QByteArray &data) else tabs->view(id)->unsetViewFont(); qDebug( "setFont: %s, %d, %d, %d", fam.latin1(), size, weight, italic ); } else if ( msg == "setBusyIndicatorType(QString)" ) { QString type; - stream >> type; + stream >> type; tabs->setBusyIndicatorType(type); } else if ( msg == "home()" ) { if ( isVisibleWindow( winId ( ))) nextView ( ); else raise ( ); - + } } void Launcher::storageChanged() { if ( in_lnk_props ) { 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 @@ -69,12 +69,13 @@ signals: void clicked(const AppLnk*); void rightPressed(AppLnk*); public slots: void nextTab(); void prevTab(); + void showTab(const QString&); protected slots: void tabProperties(); protected: void setTabAppearance( const QString &id, Config &cfg ); @@ -102,12 +103,13 @@ public: virtual void showMaximized(); static bool mkdir(const QString &path); public slots: void viewSelected(const QString&); + void showTab(const QString&); void select( const AppLnk * ); void externalSelected( const AppLnk *); void properties( AppLnk * ); void nextView(); signals: |