22 #include "etmviewstatesaver.h"
24 #include <QtCore/QModelIndex>
25 #include <QtGui/QItemSelection>
26 #include <QtGui/QTreeView>
28 #include "entitytreemodel.h"
30 using namespace Akonadi;
32 ETMViewStateSaver::ETMViewStateSaver(QObject* parent)
33 : KViewStateSaver(parent)
37 QModelIndex ETMViewStateSaver::indexFromConfigString(
const QAbstractItemModel *model,
const QString& key)
const
39 if ( key.startsWith( QLatin1Char(
'x' ) ) )
42 Entity::Id
id = key.mid( 1 ).toLongLong();
46 if ( key.startsWith( QLatin1Char(
'c' ) ) )
48 QModelIndex idx = EntityTreeModel::modelIndexForCollection( model, Collection(
id ) );
55 else if ( key.startsWith( QLatin1Char(
'i' ) ) )
57 QModelIndexList list = EntityTreeModel::modelIndexesForItem( model, Item(
id ) );
67 QString ETMViewStateSaver::indexToConfigString(
const QModelIndex& index)
const
69 if ( !index.isValid() )
70 return QLatin1String(
"x-1" );
71 const Collection c = index.data( EntityTreeModel::CollectionRole ).value<Collection>();
73 return QString::fromLatin1(
"c%1" ).arg( c.id() );
74 Entity::Id
id = index.data( EntityTreeModel::ItemIdRole ).value<Entity::Id>();
76 return QString::fromLatin1(
"i%1" ).arg(
id );
80 void ETMViewStateSaver::selectCollections(
const Akonadi::Collection::List& list)
82 QStringList colStrings;
83 foreach(
const Collection &col, list)
84 colStrings << QString::fromLatin1(
"c%1" ).arg( col.id() );
85 restoreSelection(colStrings);
88 void ETMViewStateSaver::selectCollections(
const QList< Collection::Id >& list)
90 QStringList colStrings;
91 foreach(
const Collection::Id &colId, list)
92 colStrings << QString::fromLatin1(
"c%1" ).arg( colId );
93 restoreSelection(colStrings);
96 void ETMViewStateSaver::selectItems(
const Akonadi::Item::List& list)
98 QStringList itemStrings;
99 foreach(
const Item &item, list)
100 itemStrings << QString::fromLatin1(
"i%1" ).arg( item.id() );
101 restoreSelection(itemStrings);
104 void ETMViewStateSaver::selectItems(
const QList< Item::Id >& list)
106 QStringList itemStrings;
107 foreach(
const Item::Id &itemId, list)
108 itemStrings << QString::fromLatin1(
"i%1" ).arg( itemId );
109 restoreSelection(itemStrings);