#ifndef LISTWINDOW_H
#define LISTWINDOW_H
-#include <QMainWindow>
+#include "mainbase.h"
+
#include <QDialogButtonBox>
#include <QList>
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
/** 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);
/** 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 {
#ifdef Q_OS_SYMBIAN
FlickCharm *charm;
#endif
+ QList<QAction *>itemActions;
};
#endif // LISTWINDOW_H