Author: kmachalkova Date: Fri Jun 5 17:12:14 2009 New Revision: 57474 URL: http://svn.opensuse.org/viewcvs/yast?rev=57474&view=rev Log: Use queue to remember which modules have been launched recently Modified: branches/tmp/tgoettlicher/yast2cc_rewrite/src/main_window.cpp Modified: branches/tmp/tgoettlicher/yast2cc_rewrite/src/main_window.cpp URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/tgoettlicher/yast2cc_rewrite/src/main_window.cpp?rev=57474&r1=57473&r2=57474&view=diff ============================================================================== --- branches/tmp/tgoettlicher/yast2cc_rewrite/src/main_window.cpp (original) +++ branches/tmp/tgoettlicher/yast2cc_rewrite/src/main_window.cpp Fri Jun 5 17:12:14 2009 @@ -20,6 +20,7 @@ #include <QDockWidget> #include <QListView> #include <QDebug> +#include <QQueue> #include <QSettings> #include "kcategorizedsortfilterproxymodel.h" @@ -32,6 +33,7 @@ //#include "moduleiconitem.h" #define APP_NAME "y2controlcenter-qt" +#define USED_QUEUE_SIZE 5 class MainWindow::Private { @@ -52,6 +54,8 @@ KCategorizedView * modview; // category proxy model KCategorizedSortFilterProxyModel * kcsfpm; + + QQueue <QString> recentlyUsed; }; MainWindow::MainWindow() @@ -161,12 +165,14 @@ { QModelIndex i1 = d->modmodel->index( d->kcsfpm->mapToSource( index ).row(), YQDesktopFilesModel::Call ); QModelIndex i2 = d->modmodel->index( d->kcsfpm->mapToSource( index ).row(), YQDesktopFilesModel::Argument ); + QModelIndex i3 = d->modmodel->index( d->kcsfpm->mapToSource( index ).row(), YQDesktopFilesModel::Name ); if ( !i1.isValid() || !i2.isValid()) return; QString client = d->modmodel->data( i1, Qt::UserRole ).toString(); QString argument = d->modmodel->data( i2, Qt::UserRole ).toString(); + QString name = d->modmodel->data( i3, Qt::UserRole ).toString(); QString cmd = QString("/sbin/yast2 "); cmd += client; @@ -179,6 +185,13 @@ } cmd += " &"; + //FIXME: use something more intelligent (unique) to remember used modules, names suck + d->recentlyUsed.enqueue( name ); + if( d->recentlyUsed.size() == USED_QUEUE_SIZE ) + { + d->recentlyUsed.dequeue(); + } + qDebug() << "Run command: " << cmd.toAscii(); system( cmd.toAscii() ); @@ -191,6 +204,16 @@ settings.beginGroup("MainWindow"); resize(settings.value("Size", QSize(680,420)).toSize()); settings.endGroup(); + + settings.beginGroup("PersonalItems"); + QString used = settings.value("RecentlyUsed").toString(); + QStringList used_list = used.split(",", QString::SkipEmptyParts); + foreach( QString f, used_list ) + { + d->recentlyUsed.enqueue( f ); + } + settings.endGroup(); + } void MainWindow::writeSettings() @@ -200,6 +223,11 @@ settings.beginGroup("MainWindow"); settings.setValue("Size", size()); settings.endGroup(); + + settings.beginGroup( "PersonalItems" ); + QStringList used_list( d->recentlyUsed ); + settings.setValue( "RecentlyUsed", used_list.join(",") ); + settings.endGroup(); } void MainWindow::closeEvent (QCloseEvent *event) -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org