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 | 28 | ||||
-rw-r--r-- | core/launcher/launcher.h | 2 |
2 files changed, 29 insertions, 1 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 @@ -144,16 +144,25 @@ void CategoryTabWidget::nextTab() { if ( categoryBar ) { 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; app=0; } @@ -182,16 +191,22 @@ 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 ); delete stack; @@ -243,18 +258,24 @@ void CategoryTabWidget::initializeCategories(AppLnkSet* rootFolder, connect( categoryBar, SIGNAL(selected(int)), stack, SLOT(raiseWidget(int)) ); ((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) ); LauncherView *v = view( id ); int idx = ids.findIndex( id ); @@ -609,17 +630,16 @@ Launcher::Launcher( QWidget* parent, const char* name, WFlags fl ) rootFolder = 0; docsFolder = 0; 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*))); connect( tabs, SIGNAL(rightPressed(AppLnk*)), this, SLOT(properties(AppLnk*))); @@ -669,16 +689,17 @@ void Launcher::showMaximized() doMaximize(); else QTimer::singleShot( 20, this, SLOT(doMaximize()) ); } void Launcher::doMaximize() { QMainWindow::showMaximized(); + tabs->setMaximumWidth( qApp->desktop()->width() ); } void Launcher::updateMimeTypes() { MimeType::clear(); updateMimeTypes(rootFolder); } @@ -827,16 +848,21 @@ void Launcher::viewSelected(const QString& s) setCaption( s + tr(" - Launcher") ); } 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 { if ( appLnk->exec().isNull() ) { QMessageBox::information(this,tr("No application"), 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 @@ -67,16 +67,17 @@ public: signals: void selected(const QString&); 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 ); void paletteChange( const QPalette &p ); @@ -100,16 +101,17 @@ public: static QString appsFolderName(); 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: void executing( const AppLnk * ); void busy(); |