summaryrefslogtreecommitdiff
authorharlekin <harlekin>2003-03-23 13:14:25 (UTC)
committer harlekin <harlekin>2003-03-23 13:14:25 (UTC)
commit56192a3d601e5364e9b8f4c331d892befb19cbc1 (patch) (side-by-side diff)
tree97966e16e29316a6dc28e2f0c9619192a3757b8f
parentc3b01d2abd00b82b821604827987f2becccf5233 (diff)
downloadopie-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
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/launcher.cpp34
-rw-r--r--core/launcher/launcher.h2
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: