Fix forward navigation control on Linux.
[dorian] / widgets / listwindow.h
index 71cef8b..74590ef 100644 (file)
@@ -1,7 +1,8 @@
 #ifndef LISTWINDOW_H
 #define LISTWINDOW_H
 
-#include <QMainWindow>
+#include "mainbase.h"
+
 #include <QDialogButtonBox>
 #include <QList>
 
@@ -11,9 +12,10 @@ class FlickCharm;
 class QAbstractItemModel;
 class QListWidget;
 class QModelIndex;
+class QListWidgetItem;
 
 /** A window with a list and menu actions (Maemo) or buttons (non-Maemo). */
-class ListWindow: public QMainWindow
+class ListWindow: public MainBase
 {
     Q_OBJECT
 
@@ -31,29 +33,42 @@ public:
     /** Get model. */
     QAbstractItemModel *model() const;
 
-    /** Add an action button to the beginning of the list. */
+    /**
+     * Add an action button to the beginning of the list (Maemo) or to the
+     * tool bar (non-Maemo).
+     */
     void addButton(const QString &title, QObject *receiver, const char *slot,
                    const QString &iconPath = QString());
 
+    /**
+     * Add an action button to the tool bar, which is only active if a list
+     * item is selected.
+     */
+    void addItemButton(const QString &title, QObject *receiver,
+                       const char *slot, const QString &iconPath = QString());
+
     /** Add an action to the menu. */
     QAction *addMenuAction(const QString &title, QObject *receiver,
                            const char *slot);
 
+    /** Get current (selected) item. */
+    QModelIndex currentItem() const;
+
 signals:
     /** Emitted when a list item is activated. */
     void activated(const QModelIndex &index);
 
+    /** Emitted when selection has changed. */
+    void itemSelectionChanged();
+
 public slots:
     /** Set the current (selected) item. */
     void setCurrentItem(const QModelIndex &item);
 
-#ifdef Q_OS_SYMBIAN
-    void show();
-#endif
-
 protected slots:
     void onItemActivated(const QModelIndex &);
     void populateList();
+    void onItemSelectionChanged();
 
 protected:
     struct Button {
@@ -75,6 +90,7 @@ private:
 #ifdef Q_OS_SYMBIAN
     FlickCharm *charm;
 #endif
+    QList<QAction *>itemActions;
 };
 
 #endif // LISTWINDOW_H