[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-29 22:21:04
Message-ID: 1183155664.931038.4821.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 681695 by vkrause:

edit support


 M  +1 -1      CMakeLists.txt  
 M  +20 -12    browserwidget.cpp  
 M  +6 -3      browserwidget.h  
 A             browserwidget_contentview.ui  


--- trunk/KDE/kdepim/akonadi/clients/akonadiconsole/CMakeLists.txt #681694:681695
@@ -18,7 +18,7 @@
 )
 
 kde4_automoc(${akonadiconsole_bin_SRCS})
-kde4_add_ui_files(akonadiconsole_bin_SRCS browserwidget_itemview.ui)
+kde4_add_ui_files(akonadiconsole_bin_SRCS browserwidget_itemview.ui browserwidget_contentview.ui)
 
 kde4_add_executable(akonadiconsole_bin ${akonadiconsole_bin_SRCS})
 set_target_properties(akonadiconsole_bin PROPERTIES OUTPUT_NAME akonadiconsole)
--- trunk/KDE/kdepim/akonadi/clients/akonadiconsole/browserwidget.cpp #681694:681695
@@ -24,6 +24,7 @@
 #include <libakonadi/item.h>
 #include <libakonadi/itemfetchjob.h>
 #include <libakonadi/itemserializer.h>
+#include <libakonadi/itemstorejob.h>
 #include <libakonadi/messagecollectionmodel.h>
 #include <libakonadi/collectionfilterproxymodel.h>
 
@@ -57,7 +58,7 @@
   connect( mCollectionView, SIGNAL(clicked(QModelIndex)), SLOT(collectionActivated(QModelIndex)) );
   splitter->addWidget( mCollectionView );
 
-  mCollectionModel = new Akonadi::MessageCollectionModel( this );
+  mCollectionModel = new Akonadi::CollectionModel( this );
   mCollectionView->setModel( mCollectionModel );
 
   QSplitter *splitter2 = new QSplitter( Qt::Vertical, this );
@@ -77,13 +78,10 @@
   splitter2->addWidget( itemViewParent );
   itemViewParent->layout()->setMargin( 0 );
 
-  mStack = new QStackedWidget( this );
-  mDataView = new QTextEdit( mStack );
-  mDataView->setReadOnly( true );
-  mAddresseeView = new KPIM::AddresseeView( mStack );
-  mStack->addWidget( mDataView );
-  mStack->addWidget( mAddresseeView );
-  splitter2->addWidget( mStack );
+  QWidget *contentViewParent = new QWidget( this );
+  contentUi.setupUi( contentViewParent );
+  connect( contentUi.saveButton, SIGNAL(clicked()), SLOT(save()) );
+  splitter2->addWidget( contentViewParent );
 }
 
 void BrowserWidget::collectionActivated(const QModelIndex & index)
@@ -113,16 +111,17 @@
     qWarning() << "No item found!";
   } else {
     const Item item = fetch->items().first();
+    mCurrentItem = item;
     if ( item.hasPayload<KABC::Addressee>() ) {
       const KABC::Addressee addr = item.payload<KABC::Addressee>();
 
-      mAddresseeView->setAddressee( addr );
-      mStack->setCurrentWidget( mAddresseeView );
+      contentUi.addresseeView->setAddressee( addr );
+      contentUi.stack->setCurrentWidget( contentUi.addresseeView );
     } else {
       QByteArray data;
       ItemSerializer::serialize( item, Item::PartBody, data );
-      mDataView->setPlainText( data );
-      mStack->setCurrentWidget( mDataView );
+      contentUi.dataView->setPlainText( data );
+      contentUi.stack->setCurrentWidget( contentUi.dataViewPage );
     }
   }
 }
@@ -145,4 +144,13 @@
     mItemModel->setCollection( Collection( mCurrentCollection ) );
 }
 
+void BrowserWidget::save()
+{
+  const QByteArray data = contentUi.dataView->toPlainText().toUtf8();
+  Item item = mCurrentItem;
+  ItemSerializer::deserialize( item, Item::PartBody, data );
+  ItemStoreJob *store = new ItemStoreJob( item, this );
+  store->storePayload();
+}
+
 #include "browserwidget.moc"
--- trunk/KDE/kdepim/akonadi/clients/akonadiconsole/browserwidget.h #681694:681695
@@ -21,7 +21,10 @@
 #define BROWSERWIDGET_H
 
 #include <ui_browserwidget_itemview.h>
+#include <ui_browserwidget_contentview.h>
 
+#include <libakonadi/item.h>
+
 #include <QtGui/QWidget>
 
 class QModelIndex;
@@ -54,16 +57,16 @@
     void itemActivated( const QModelIndex &index );
     void itemFetchDone( KJob *job );
     void modelChanged();
+    void save();
 
   private:
     Akonadi::CollectionModel *mCollectionModel;
     Akonadi::CollectionView *mCollectionView;
     Akonadi::ItemModel *mItemModel;
-    QStackedWidget *mStack;
-    QTextEdit *mDataView;
-    KPIM::AddresseeView *mAddresseeView;
     Ui::ItemViewWidget itemUi;
+    Ui::ContentViewWidget contentUi;
     int mCurrentCollection;
+    Akonadi::Item mCurrentItem;
 };
 
 #endif
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic