[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/work/akonadi-ports/kdepim/messagelist
From: Kevin Ottens <ervin () kde ! org>
Date: 2009-10-07 10:27:01
Message-ID: 1254911221.222035.9686.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1032235 by ervin:
Allow to retrieve the current message or item from Pane and Widget.
CCMAIL: montel@kde.org
M +23 -0 pane.cpp
M +19 -1 pane.h
M +28 -0 widget.cpp
M +18 -0 widget.h
--- branches/work/akonadi-ports/kdepim/messagelist/pane.cpp #1032234:1032235
@@ -66,6 +66,7 @@
} // namespace MessageList
+using namespace Akonadi;
using namespace MessageList;
@@ -413,4 +414,26 @@
}
}
+Item MessageList::Pane::currentItem() const
+{
+ Widget *w = static_cast<Widget*>( currentWidget() );
+
+ if ( w == 0 ) {
+ return Item();
+ }
+
+ return w->currentItem();
+}
+
+MessagePtr MessageList::Pane::currentMessage() const
+{
+ Widget *w = static_cast<Widget*>( currentWidget() );
+
+ if ( w == 0 ) {
+ return MessagePtr();
+ }
+
+ return w->currentMessage();
+}
+
#include "pane.moc"
--- branches/work/akonadi-ports/kdepim/messagelist/pane.h #1032234:1032235
@@ -24,13 +24,18 @@
#include <QtCore/QHash>
#include <QtGui/QTabWidget>
+#include <boost/shared_ptr.hpp>
+#include <kmime/kmime_message.h>
+
+#include <messagelist/messagelist_export.h>
+
class QAbstractItemModel;
class QAbstractProxyModel;
class QItemSelectionModel;
class QItemSelection;
class QToolButton;
-#include <messagelist/messagelist_export.h>
+typedef boost::shared_ptr<KMime::Message> MessagePtr;
namespace KPIM
{
@@ -64,6 +69,19 @@
~Pane();
/**
+ * Returns the current message for the list as Akonadi::Item.
+ * May return an invalid Item if there is no current message or no current folder.
+ */
+ Akonadi::Item currentItem() const;
+
+ /**
+ * Returns the current message for the list as MessagePtr.
+ * May return 0 if there is no current message or no current folder.
+ */
+ MessagePtr currentMessage() const;
+
+
+ /**
* Selects the next message item in the view.
*
* messageTypeFilter can be used to restrict the selection to only certain message types.
--- branches/work/akonadi-ports/kdepim/messagelist/widget.cpp #1032234:1032235
@@ -52,6 +52,7 @@
Akonadi::Item::List selectionAsItems() const;
Akonadi::Item itemForRow( int row ) const;
+ MessagePtr messageForRow( int row ) const;
Widget * const q;
@@ -425,3 +426,30 @@
{
return static_cast<const StorageModel*>( q->storageModel() )->itemForRow( row );
}
+
+MessagePtr Widget::Private::messageForRow( int row ) const
+{
+ return static_cast<const StorageModel*>( q->storageModel() )->messageForRow( row );
+}
+
+Item MessageList::Widget::currentItem() const
+{
+ Core::MessageItem *mi = view()->currentMessageItem();
+
+ if ( mi == 0 ) {
+ return Item();
+ }
+
+ return d->itemForRow( mi->currentModelIndexRow() );
+}
+
+MessagePtr MessageList::Widget::currentMessage() const
+{
+ Core::MessageItem *mi = view()->currentMessageItem();
+
+ if ( mi == 0 ) {
+ return MessagePtr();
+ }
+
+ return d->messageForRow( mi->currentModelIndexRow() );
+}
--- branches/work/akonadi-ports/kdepim/messagelist/widget.h #1032234:1032235
@@ -23,10 +23,15 @@
#include <akonadi/item.h>
+#include <boost/shared_ptr.hpp>
+#include <kmime/kmime_message.h>
+
#include <messagelist/messagelist_export.h>
class QWidget;
+typedef boost::shared_ptr<KMime::Message> MessagePtr;
+
namespace MessageList
{
@@ -45,6 +50,19 @@
~Widget();
/**
+ * Returns the current message for the list as Akonadi::Item.
+ * May return an invalid Item if there is no current message or no current folder.
+ */
+ Akonadi::Item currentItem() const;
+
+ /**
+ * Returns the current message for the list as MessagePtr.
+ * May return 0 if there is no current message or no current folder.
+ */
+ MessagePtr currentMessage() const;
+
+
+ /**
* Returns true if this drag can be accepted by the underlying view
*/
bool canAcceptDrag( const QDropEvent *e );
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic