ListWindow starts working again.
authorAkos Polster <akos@pipacs.com>
Thu, 18 Nov 2010 20:54:01 +0000 (21:54 +0100)
committerAkos Polster <akos@pipacs.com>
Thu, 18 Nov 2010 20:54:01 +0000 (21:54 +0100)
dorian.pro
model/book.cpp
model/book.h
model/library.cpp
widgets/listview.cpp [deleted file]
widgets/listview.h [deleted file]
widgets/listwindow.cpp
widgets/listwindow.h

index 6a165da..ccdb153 100644 (file)
-QT += webkit xml sql network\r
-\r
-INCLUDEPATH += $$PWD \\r
-    $$PWD/model \\r
-    $$PWD/widgets\r
-\r
-SOURCES += \\r
-    main.cpp \\r
-    mainwindow.cpp \\r
-    bookview.cpp \\r
-    model/unzip/unzip.c \\r
-    model/unzip/ioapi.c \\r
-    model/extractzip.cpp \\r
-    model/library.cpp \\r
-    model/book.cpp \\r
-    librarydialog.cpp \\r
-    devtools.cpp \\r
-    infodialog.cpp \\r
-    widgets/translucentbutton.cpp \\r
-    settingswindow.cpp \\r
-    model/settings.cpp \\r
-    bookmarksdialog.cpp \\r
-    model/sortedlibrary.cpp \\r
-    bookmarkinfodialog.cpp \\r
-    widgets/dyalog.cpp \\r
-    chaptersdialog.cpp \\r
-    fullscreenwindow.cpp \\r
-    trace.cpp \\r
-    widgets/toolbuttonbox.cpp \\r
-    model/bookfinder.cpp \\r
-    widgets/listwindow.cpp \\r
-    widgets/progress.cpp \\r
-    adopterwindow.cpp \\r
-    platform.cpp \\r
-    model/bookdb.cpp \\r
-    searchdialog.cpp \\r
-    search.cpp \\r
-    widgets/flickable.cpp \\r
-    widgets/listview.cpp \\r
-    searchresultsdialog.cpp \\r
-    searchresultinfodialog.cpp \\r
-    widgets/progressdialog.cpp \\r
-    widgets/splash.cpp\r
-\r
-HEADERS += \\r
-    mainwindow.h \\r
-    bookview.h \\r
-    model/opshandler.h \\r
-    model/unzip/unzip.h \\r
-    model/unzip/ioapi.h \\r
-    model/extractzip.h \\r
-    model/library.h \\r
-    model/book.h \\r
-    librarydialog.h \\r
-    devtools.h \\r
-    infodialog.h \\r
-    widgets/translucentbutton.h \\r
-    settingswindow.h \\r
-    model/settings.h \\r
-    bookmarksdialog.h \\r
-    model/xmlerrorhandler.h \\r
-    model/containerhandler.h \\r
-    model/sortedlibrary.h \\r
-    model/ncxhandler.h \\r
-    bookmarkinfodialog.h \\r
-    widgets/dyalog.h \\r
-    chaptersdialog.h \\r
-    fullscreenwindow.h \\r
-    trace.h \\r
-    widgets/toolbuttonbox.h \\r
-    model/bookfinder.h \\r
-    widgets/listwindow.h \\r
-    widgets/progress.h \\r
-    adopterwindow.h \\r
-    widgets/listview.h \\r
-    model/xmlhandler.h \\r
-    platform.h \\r
-    model/bookdb.h \\r
-    searchdialog.h \\r
-    search.h \\r
-    widgets/flickable.h \\r
-    searchresultsdialog.h \\r
-    searchresultinfodialog.h \\r
-    widgets/progressdialog.h \\r
-    widgets/splash.h\r
-\r
-RESOURCES += \\r
-    dorian.qrc\r
-\r
-OTHER_FILES += \\r
-    TODO.txt \\r
-    pkg/acknowledgements.txt \\r
-    pkg/maemo/postinst \\r
-    pkg/maemo/dorian.desktop \\r
-    pkg/maemo/control \\r
-    pkg/maemo/changelog \\r
-    pkg/maemo/build.sh \\r
-    styles/night.css \\r
-    pkg/changelog \\r
-    pkg/maemo/build-scratchbox.sh \\r
-    styles/sand.css \\r
-    styles/default.css \\r
-    pkg/version.txt \\r
-    styles/sand.js \\r
-    styles/night.js \\r
-    styles/default.js \\r
-    styles/day.js \\r
-    www/index.html \\r
-    pkg/maemo/autobuild.sh \\r
-    pkg/maemo/autobuild-scratchbox.sh \\r
-    LICENSE.txt \\r
-    pkg/symbian/book.svg\r
-\r
-DEFINES += \\r
-    USE_FILE32API\r
-\r
-!symbian {\r
-    DEFINES += DORIAN_TEST_MODEL\r
-    include(model/modeltest/modeltest.pri)\r
-}\r
-\r
-unix {\r
-    symbian {\r
-    } else {\r
-        LIBS += -lz\r
-    }\r
-}\r
-\r
-win32 {\r
-    DEFINES += ZLIB_WINAPI\r
-    INCLUDEPATH += $$PWD/model/zlib\r
-    LIBS += pkg/win32/zlibstat.lib\r
-}\r
-\r
-symbian {\r
-    TARGET = Dorian\r
-    TARGET.UID3 = 0xA89FC85B\r
-    TARGET.CAPABILITY = UserEnvironment NetworkServices ReadUserData \\r
-        WriteUserData\r
-    TARGET.EPOCHEAPSIZE = 0x080000 0x4000000\r
-    ICON = $$PWD/pkg/symbian/book.svg\r
-    # packageheader = "$${LITERAL_HASH}{\"Dorian\"}, (0xA89FC85B), 0, 3, 6"\r
-    # my_deployment.pkg_prerules = packageheader\r
-    # DEPLOYMENT += my_deployment\r
-\r
-    INCLUDEPATH += $(QTDIR)/src/3rdparty/zlib\r
-    HEADERS += \\r
-        widgets/flickcharm.h \\r
-        widgets/mediakeysobserver.h\r
-    SOURCES += \\r
-        widgets/flickcharm.cpp \\r
-        widgets/mediakeysobserver.cpp\r
-    LIBS += -lremconinterfacebase -lremconcoreapi\r
-}\r
-\r
-maemo5 {\r
-    QT += maemo5 dbus\r
-    isEmpty(PREFIX) {\r
-        PREFIX = /usr\r
-    }\r
-    BINDIR = $$PREFIX/bin\r
-    DATADIR =$$PREFIX/share\r
-    DEFINES += DATADIR=\\\"$$DATADIR\\\" PKGDATADIR=\\\"$$PKGDATADIR\\\"\r
-\r
-    # For "make install"\r
-\r
-    INSTALLS += target desktop icon48 iconscalable\r
-\r
-    target.path = $$BINDIR\r
-\r
-    desktop.path = $$DATADIR/applications/hildon\r
-    desktop.files += pkg/maemo/dorian.desktop\r
-\r
-    icon48.path = $$DATADIR/icons/hicolor/48x48/hildon\r
-    icon48.files += pkg/maemo/icon-48/dorian.png\r
-\r
-    iconscalable.path = $$DATADIR/icons/hicolor/scalable/hildon\r
-    iconscalable.files += pkg/maemo/icon-scalable/dorian.png\r
-}\r
+QT += webkit xml sql network
+
+INCLUDEPATH += $$PWD \
+    $$PWD/model \
+    $$PWD/widgets
+
+SOURCES += \
+    main.cpp \
+    mainwindow.cpp \
+    bookview.cpp \
+    model/unzip/unzip.c \
+    model/unzip/ioapi.c \
+    model/extractzip.cpp \
+    model/library.cpp \
+    model/book.cpp \
+    librarydialog.cpp \
+    devtools.cpp \
+    infodialog.cpp \
+    widgets/translucentbutton.cpp \
+    settingswindow.cpp \
+    model/settings.cpp \
+    bookmarksdialog.cpp \
+    model/sortedlibrary.cpp \
+    bookmarkinfodialog.cpp \
+    widgets/dyalog.cpp \
+    chaptersdialog.cpp \
+    fullscreenwindow.cpp \
+    trace.cpp \
+    widgets/toolbuttonbox.cpp \
+    model/bookfinder.cpp \
+    widgets/listwindow.cpp \
+    widgets/progress.cpp \
+    adopterwindow.cpp \
+    platform.cpp \
+    model/bookdb.cpp \
+    searchdialog.cpp \
+    search.cpp \
+    widgets/flickable.cpp \
+    searchresultsdialog.cpp \
+    searchresultinfodialog.cpp \
+    widgets/progressdialog.cpp \
+    widgets/splash.cpp
+
+HEADERS += \
+    mainwindow.h \
+    bookview.h \
+    model/opshandler.h \
+    model/unzip/unzip.h \
+    model/unzip/ioapi.h \
+    model/extractzip.h \
+    model/library.h \
+    model/book.h \
+    librarydialog.h \
+    devtools.h \
+    infodialog.h \
+    widgets/translucentbutton.h \
+    settingswindow.h \
+    model/settings.h \
+    bookmarksdialog.h \
+    model/xmlerrorhandler.h \
+    model/containerhandler.h \
+    model/sortedlibrary.h \
+    model/ncxhandler.h \
+    bookmarkinfodialog.h \
+    widgets/dyalog.h \
+    chaptersdialog.h \
+    fullscreenwindow.h \
+    trace.h \
+    widgets/toolbuttonbox.h \
+    model/bookfinder.h \
+    widgets/listwindow.h \
+    widgets/progress.h \
+    adopterwindow.h \
+    model/xmlhandler.h \
+    platform.h \
+    model/bookdb.h \
+    searchdialog.h \
+    search.h \
+    widgets/flickable.h \
+    searchresultsdialog.h \
+    searchresultinfodialog.h \
+    widgets/progressdialog.h \
+    widgets/splash.h
+
+RESOURCES += \
+    dorian.qrc
+
+OTHER_FILES += \
+    TODO.txt \
+    pkg/acknowledgements.txt \
+    pkg/maemo/postinst \
+    pkg/maemo/dorian.desktop \
+    pkg/maemo/control \
+    pkg/maemo/changelog \
+    pkg/maemo/build.sh \
+    styles/night.css \
+    pkg/changelog \
+    pkg/maemo/build-scratchbox.sh \
+    styles/sand.css \
+    styles/default.css \
+    pkg/version.txt \
+    styles/sand.js \
+    styles/night.js \
+    styles/default.js \
+    styles/day.js \
+    www/index.html \
+    pkg/maemo/autobuild.sh \
+    pkg/maemo/autobuild-scratchbox.sh \
+    LICENSE.txt \
+    pkg/symbian/book.svg
+
+DEFINES += \
+    USE_FILE32API
+
+!symbian {
+    DEFINES += DORIAN_TEST_MODEL
+    include(model/modeltest/modeltest.pri)
+}
+
+unix {
+    symbian {
+    } else {
+        LIBS += -lz
+    }
+}
+
+win32 {
+    DEFINES += ZLIB_WINAPI
+    INCLUDEPATH += $$PWD/model/zlib
+    LIBS += pkg/win32/zlibstat.lib
+}
+
+symbian {
+    TARGET = Dorian
+    TARGET.UID3 = 0xA89FC85B
+    TARGET.CAPABILITY = UserEnvironment NetworkServices ReadUserData \
+        WriteUserData
+    TARGET.EPOCHEAPSIZE = 0x080000 0x4000000
+    ICON = $$PWD/pkg/symbian/book.svg
+    # packageheader = "$${LITERAL_HASH}{\"Dorian\"}, (0xA89FC85B), 0, 3, 6"
+    # my_deployment.pkg_prerules = packageheader
+    # DEPLOYMENT += my_deployment
+
+    INCLUDEPATH += $(QTDIR)/src/3rdparty/zlib
+    HEADERS += \
+        widgets/flickcharm.h \
+        widgets/mediakeysobserver.h
+    SOURCES += \
+        widgets/flickcharm.cpp \
+        widgets/mediakeysobserver.cpp
+    LIBS += -lremconinterfacebase -lremconcoreapi
+}
+
+maemo5 {
+    QT += maemo5 dbus
+    isEmpty(PREFIX) {
+        PREFIX = /usr
+    }
+    BINDIR = $$PREFIX/bin
+    DATADIR =$$PREFIX/share
+    DEFINES += DATADIR=\\\"$$DATADIR\\\" PKGDATADIR=\\\"$$PKGDATADIR\\\"
+
+    # For "make install"
+
+    INSTALLS += target desktop icon48 iconscalable
+
+    target.path = $$BINDIR
+
+    desktop.path = $$DATADIR/applications/hildon
+    desktop.files += pkg/maemo/dorian.desktop
+
+    icon48.path = $$DATADIR/icons/hicolor/48x48/hildon
+    icon48.files += pkg/maemo/icon-48/dorian.png
+
+    iconscalable.path = $$DATADIR/icons/hicolor/scalable/hildon
+    iconscalable.files += pkg/maemo/icon-scalable/dorian.png
+}
index b24130b..c24d53f 100644 (file)
@@ -428,6 +428,12 @@ QString Book::shortName()
     return (title.isEmpty())? QFileInfo(path()).baseName(): title;
 }
 
+QImage Book::coverImage()
+{
+    load();
+    return cover;
+}
+
 int Book::chapterFromPart(int index)
 {
     TRACE;
index 59f2005..07259a9 100644 (file)
@@ -41,9 +41,6 @@ public:
     /** Construct a book from an EPUB file. */
     Book(const QString &fileName, QObject *parent = 0);
 
-    /** Default constructor. */
-    // Book();
-
     /** Destructor. */
     ~Book();
 
@@ -104,6 +101,9 @@ public:
      */
     QString name();
 
+    /** Get cover image. */
+    QImage coverImage();
+
     /** Get short friendly name: title or file name. */
     QString shortName();
 
index c3e16e9..144d9e5 100644 (file)
@@ -37,18 +37,27 @@ int Library::rowCount(const QModelIndex &parent) const
 
 QVariant Library::data(const QModelIndex &index, int role) const
 {
+    TRACE;
+
+    QVariant ret;
     if (!index.isValid()) {
-        return QVariant();
+        return ret;
     }
 
     switch (role) {
     case Qt::DisplayRole:
-        return mBooks[index.row()]->name();
+        qDebug() << mBooks[index.row()]->name();
+        ret = mBooks[index.row()]->name();
+        break;
     case Qt::DecorationRole:
-        return QPixmap::fromImage(mBooks[index.row()]->cover);
+        qDebug() << "(cover)";
+        ret.setValue(mBooks[index.row()]->cover);
+        break;
     default:
-        return QVariant();
+        ;
     }
+
+    return ret;
 }
 
 Book *Library::book(const QModelIndex &index)
diff --git a/widgets/listview.cpp b/widgets/listview.cpp
deleted file mode 100755 (executable)
index 3287e20..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#include <QtGui>\r
-\r
-#include "listview.h"\r
-#include "trace.h"\r
-\r
-ListView::ListView(QWidget *parent): QListView(parent)\r
-{\r
-#ifndef Q_OS_SYMBIAN\r
-    setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);\r
-#endif\r
-    setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);\r
-    setUniformItemSizes(true);\r
-    setEditTriggers(QAbstractItemView::NoEditTriggers);\r
-}\r
-\r
-int ListView::contentsHeight() const\r
-{\r
-    TRACE;\r
-    qDebug() << QListView::contentsRect().height();\r
-    return QListView::contentsRect().height(); //  + 10;\r
-}\r
diff --git a/widgets/listview.h b/widgets/listview.h
deleted file mode 100644 (file)
index 8b9f2f1..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef LISTVIEW_H
-#define LISTVIEW_H
-
-#include <QListView>
-
-/** Same as QListView, except contentsHeight() is public. */
-class ListView: public QListView
-{
-    Q_OBJECT
-
-public:
-    explicit ListView(QWidget *parent = 0);
-    int contentsHeight() const;
-};
-
-#endif // LISTVIEW_H
index db92196..a1c9be3 100644 (file)
@@ -44,20 +44,20 @@ void ListWindow::populateList()
     TRACE;
 
     list->clear();
+    list->setIconSize(QSize(48, 48)); // FIXME
+    list->setUniformItemSizes(true);
     if (model) {
         for (int i = 0; i < model->rowCount(); i++) {
             QModelIndex index = model->index(i, 0);
             QString text = model->data(index, Qt::DisplayRole).toString();
-            QIcon icon;
-            QVariant iconData = model->data(index, Qt::DecorationRole);
-            if (iconData.canConvert<QIcon>()) {
-                icon = iconData.value<QIcon>();
-            }
+            QVariant imageData = model->data(index, Qt::DecorationRole);
+            QIcon icon(QPixmap::fromImage(imageData.value<QImage>()));
             (void)new QListWidgetItem(icon, text, list);
         }
     }
     for (int i = 0; i < buttons.count(); i++) {
         QListWidgetItem *item = new QListWidgetItem();
+        item->setFlags(Qt::NoItemFlags);
         list->insertItem(i, item);
         list->setItemWidget(item, buttons[i]);
     }
index 36545ee..ba5d77b 100644 (file)
@@ -52,6 +52,9 @@ protected slots:
     void populateList();
 
 protected:
+#ifdef Q_WS_MAEMO_5
+    void closeEvent(QCloseEvent *event);
+#endif
     QListWidget *list;
     QAbstractItemModel *model;
     QList<QPushButton *> buttons;