#endif
ListWindow::ListWindow(const QString &noItems_, QWidget *parent):
- QMainWindow(parent), mModel(0), noItems(noItems_)
+ MainBase(parent), mModel(0), noItems(noItems_)
{
#if defined(Q_WS_MAEMO_5)
setAttribute(Qt::WA_Maemo5StackedWindow, true);
list = new QListWidget(this);
list->setSelectionMode(QAbstractItemView::SingleSelection);
+#if defined(Q_OS_SYMBIAN)
+ list->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+#endif
populateList();
setCentralWidget(list);
#ifdef Q_OS_SYMBIAN
charm = new FlickCharm(this);
- charm->activateOn(list);
+ // charm->activateOn(list);
QAction *closeAction = new QAction(parent? tr("Back"): tr("Exit"), this);
closeAction->setSoftKeyRole(QAction::NegativeSoftKey);
connect(closeAction, SIGNAL(triggered()), this, SLOT(close()));
- QMainWindow::addAction(closeAction);
+ MainBase::addAction(closeAction);
#endif // Q_OS_SYMBIAN
connect(list, SIGNAL(activated(const QModelIndex &)),
{
QPushButton *pushButton = new QPushButton(
QIcon(Platform::instance()->icon(b.iconName)), b.title, this);
+#ifdef Q_OS_SYMBIAN
+ pushButton->setFixedWidth(list->width());
+#endif
connect(pushButton, SIGNAL(clicked()), b.receiver, b.slot);
QListWidgetItem *item = new QListWidgetItem();
item->setFlags(Qt::NoItemFlags);
{
TRACE;
+#if defined(Q_WS_MAEMO_5)
Button b;
b.title = title;
b.receiver = receiver;
b.slot = slot;
b.iconName = iconName;
-
insertButton(buttons.length(), b);
buttons.append(b);
+#else
+ (void)addToolBarAction(receiver, slot, iconName, title, true);
+ (void)addMenuAction(title, receiver, slot);
+#endif
+}
+
+void ListWindow::addItemButton(const QString &title, QObject *receiver,
+ const char *slot, const QString &iconName)
+{
+ TRACE;
+#if defined(Q_WS_MAEMO_5)
+ Q_UNUSED(title);
+ Q_UNUSED(receiver);
+ Q_UNUSED(slot);
+ Q_UNUSED(iconPath);
+#else
+ QAction *toolBarAction =
+ addToolBarAction(receiver, slot, iconName, title, true);
+ // QAction *menuAction = addMenuAction(title, receiver, slot);
+ // toolBarAction->setEnabled(false);
+ // menuAction->setEnabled(false);
+ itemActions.append(toolBarAction);
+ // itemActions.append(menuAction);
+#endif
}
QAction *ListWindow::addMenuAction(const QString &title, QObject *receiver,
Q_UNUSED(slot);
action = new QAction(this);
#endif
- action->setCheckable(true);
return action;
}
void ListWindow::onItemActivated(const QModelIndex &index)
{
TRACE;
+
+ // Work around Qt/Symbian^3 bug: Disabled list items still can be selected
+ if (!mModel) {
+ return;
+ }
+ if (!mModel->rowCount()) {
+ return;
+ }
+
int row = index.row() - buttons.count();
qDebug() << "Activated" << index.row() << ", emit activated(" << row << ")";
emit activated(mModel->index(row, 0));
}
#endif // Q_WS_MAEMO_5
-
-#ifdef Q_OS_SYMBIAN
-
-void ListWindow::show()
-{
- foreach (QWidget *w, QApplication::allWidgets()) {
- w->setContextMenuPolicy(Qt::NoContextMenu);
- }
- showMaximized();
-}
-
-#endif // Q_OS_SYMBIAN