[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdepim/akonadi/clients/akonadiconsole
From: Volker Krause <vkrause () kde ! org>
Date: 2007-06-24 11:32:34
Message-ID: 1182684754.315890.27766.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 679603 by vkrause:
Allow to dynamically switch between item models.
M +2 -1 CMakeLists.txt
M +36 -12 browserwidget.cpp
M +5 -1 browserwidget.h
A browserwidget_itemview.ui
--- trunk/KDE/kdepim/akonadi/clients/akonadiconsole/CMakeLists.txt #679602:679603
@@ -18,10 +18,11 @@
)
kde4_automoc(${akonadiconsole_bin_SRCS})
+kde4_add_ui_files(akonadiconsole_bin_SRCS browserwidget_itemview.ui)
kde4_add_executable(akonadiconsole_bin ${akonadiconsole_bin_SRCS})
set_target_properties(akonadiconsole_bin PROPERTIES OUTPUT_NAME akonadiconsole)
-target_link_libraries( akonadiconsole_bin akonadicomponents kabcakonadi kdepim \
${KDE4_KDEUI_LIBRARY} ) +target_link_libraries( akonadiconsole_bin akonadicomponents \
kabcakonadi kmimeakonadi kdepim ${KDE4_KDEUI_LIBRARY} )
install(TARGETS akonadiconsole_bin DESTINATION ${BIN_INSTALL_DIR} )
--- trunk/KDE/kdepim/akonadi/clients/akonadiconsole/browserwidget.cpp #679602:679603
@@ -44,7 +44,9 @@
using namespace Akonadi;
BrowserWidget::BrowserWidget(QWidget * parent) :
- QWidget( parent )
+ QWidget( parent ),
+ mItemModel( 0 ),
+ mCurrentCollection( 0 )
{
QVBoxLayout *layout = new QVBoxLayout( this );
@@ -61,16 +63,20 @@
QSplitter *splitter2 = new QSplitter( Qt::Vertical, this );
splitter->addWidget( splitter2 );
- mItemModel = new ItemModel( this );
-// mItemModel = new KABCModel( this );
-// mItemModel = new MessageModel( this );
+ QWidget *itemViewParent = new QWidget( this );
+ itemUi.setupUi( itemViewParent );
- mItemView = new QTreeView( this );
- mItemView->setRootIsDecorated( false );
- mItemView->setModel( mItemModel );
- connect( mItemView, SIGNAL(clicked(QModelIndex)), SLOT(itemActivated(QModelIndex)) \
);
- splitter2->addWidget( mItemView );
+ itemUi.modelBox->addItem( "Generic" );
+ itemUi.modelBox->addItem( "Mail" );
+ itemUi.modelBox->addItem( "Contacts" );
+ connect( itemUi.modelBox, SIGNAL(activated(int)), SLOT(modelChanged()) );
+ modelChanged();
+ itemUi.itemView->setModel( mItemModel );
+ connect( itemUi.itemView, SIGNAL(clicked(QModelIndex)), \
SLOT(itemActivated(QModelIndex)) ); + splitter2->addWidget( itemViewParent );
+ itemViewParent->layout()->setMargin( 0 );
+
mStack = new QStackedWidget( this );
mDataView = new QTextEdit( mStack );
mDataView->setReadOnly( true );
@@ -82,10 +88,10 @@
void BrowserWidget::collectionActivated(const QModelIndex & index)
{
- int colId = mCollectionView->model()->data( index, \
CollectionModel::CollectionIdRole ).toInt();
- if ( colId <= 0 )
+ mCurrentCollection = mCollectionView->model()->data( index, \
CollectionModel::CollectionIdRole ).toInt(); + if ( mCurrentCollection <= 0 )
return;
- mItemModel->setCollection( Collection( colId ) );
+ mItemModel->setCollection( Collection( mCurrentCollection ) );
}
void BrowserWidget::itemActivated(const QModelIndex & index)
@@ -121,4 +127,22 @@
}
}
+void BrowserWidget::modelChanged()
+{
+ delete mItemModel;
+ switch ( itemUi.modelBox->currentIndex() ) {
+ case 1:
+ mItemModel = new MessageModel( this );
+ break;
+ case 2:
+ mItemModel = new KABCModel( this );
+ break;
+ default:
+ mItemModel = new ItemModel( this );
+ }
+ itemUi.itemView->setModel( mItemModel );
+ if ( mCurrentCollection > 0 )
+ mItemModel->setCollection( Collection( mCurrentCollection ) );
+}
+
#include "browserwidget.moc"
--- trunk/KDE/kdepim/akonadi/clients/akonadiconsole/browserwidget.h #679602:679603
@@ -20,6 +20,8 @@
#ifndef BROWSERWIDGET_H
#define BROWSERWIDGET_H
+#include <ui_browserwidget_itemview.h>
+
#include <QtGui/QWidget>
class QModelIndex;
@@ -51,15 +53,17 @@
void collectionActivated( const QModelIndex &index );
void itemActivated( const QModelIndex &index );
void itemFetchDone( KJob *job );
+ void modelChanged();
private:
Akonadi::CollectionModel *mCollectionModel;
Akonadi::CollectionView *mCollectionView;
Akonadi::ItemModel *mItemModel;
- QTreeView *mItemView;
QStackedWidget *mStack;
QTextEdit *mDataView;
KPIM::AddresseeView *mAddresseeView;
+ Ui::ItemViewWidget itemUi;
+ int mCurrentCollection;
};
#endif
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic