diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 95ba81a3..2532c600 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -4,6 +4,9 @@ A Añadidos títulos "Bibliotecas" y "Carpetas" a la barra de navegación Nuevos iconos para seleccionar la carpeta raíz, expandir y contraer todos. Botón para cambiar el puerto del servidor por el usuario. +Ahora las columnas de la tabla de cómics pueden reordenarse +Ahora YACReaderLibrary sólo permite una instancia ejecutandose. +Columna leído añadida. 6.2 Nueva ventana de "bienvenida" diff --git a/YACReaderLibrary/db/tableitem.h b/YACReaderLibrary/db/tableitem.h index 847be8bc..56bdcc54 100644 --- a/YACReaderLibrary/db/tableitem.h +++ b/YACReaderLibrary/db/tableitem.h @@ -5,8 +5,9 @@ #include //! [0] -class TableItem +class TableItem : public QObject { + Q_OBJECT public: TableItem(const QList &data); ~TableItem(); diff --git a/YACReaderLibrary/db/tablemodel.cpp b/YACReaderLibrary/db/tablemodel.cpp index d24df72e..8da25187 100644 --- a/YACReaderLibrary/db/tablemodel.cpp +++ b/YACReaderLibrary/db/tablemodel.cpp @@ -68,6 +68,8 @@ QVariant TableModel::data(const QModelIndex &index, int role) const TableItem *item = static_cast(index.internalPointer()); if(index.column() == HASH) return QString::number(item->data(index.column()).toString().right(item->data(index.column()).toString().length()-40).toInt()/1024.0/1024.0,'f',2)+"Mb"; + if(index.column() == READ) + return item->data(index.column()).toBool()?QVariant(tr("yes")):QVariant(tr("no")); return item->data(index.column()); } //! [3] @@ -100,6 +102,8 @@ QVariant TableModel::headerData(int section, Qt::Orientation orientation, return QVariant(QString(tr("Pages"))); case 7: return QVariant(QString(tr("Size"))); + case 8: + return QVariant(QString(tr("Read"))); } } @@ -357,6 +361,8 @@ QVector TableModel::setAllComicsRead(bool read) db.close(); QSqlDatabase::removeDatabase(_databasePath); + emit dataChanged(index(0,READ),index(numComics-1,READ)); + return readList; } @@ -393,6 +399,8 @@ QVector TableModel::setComicsRead(QList list,bool read) db.close(); QSqlDatabase::removeDatabase(_databasePath); + emit dataChanged(index(list.first().row(),READ),index(list.last().row(),READ)); + return getReadList(); } qint64 TableModel::asignNumbers(QList list,int startingNumber) @@ -414,6 +422,9 @@ qint64 TableModel::asignNumbers(QList list,int startingNumber) db.commit(); db.close(); QSqlDatabase::removeDatabase(_databasePath); + + //emit dataChanged(index(list.first().row(),READ),index(list.last().row(),READ)); + return idFirst; } QModelIndex TableModel::getIndexFromId(quint64 id) diff --git a/YACReaderLibrary/library_window.cpp b/YACReaderLibrary/library_window.cpp index 12c1f2c5..2ee2ffcf 100644 --- a/YACReaderLibrary/library_window.cpp +++ b/YACReaderLibrary/library_window.cpp @@ -95,6 +95,10 @@ void LibraryWindow::setupUI() else //if(settings->value(USE_OPEN_GL).toBool() == false) showMaximized(); + if(settings->contains(COMICS_VIEW_HEADERS)) + comicView->horizontalHeader()->restoreState(settings->value(COMICS_VIEW_HEADERS).toByteArray()); + /*if(settings->contains(COMICS_VIEW_HEADERS_GEOMETRY)) + comicView->horizontalHeader()->restoreGeometry(settings->value(COMICS_VIEW_HEADERS_GEOMETRY).toByteArray());*/ } void LibraryWindow::doLayout() @@ -867,15 +871,16 @@ void LibraryWindow::loadCovers(const QModelIndex & mi) dmCV->setupModelData(folderId,dm->getDatabase()); comicView->setModel(dmCV); comicView->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft); + comicView->horizontalHeader()->setMovable(true); //TODO parametrizar la configuración de las columnas - for(int i = 4;ihorizontalHeader()->count();i++) - if(i!=7) - comicView->horizontalHeader()->hideSection(i); + for(int i = 4;ihorizontalHeader()->count()-2;i++) + comicView->horizontalHeader()->hideSection(i); //debido a un bug, qt4 no es capaz de ajustar el ancho teniendo en cuenta todas la filas (no sólo las visibles) //así que se ecala la primera vez y después se deja el control al usuario. - comicView->resizeColumnsToContents(); + if(!settings->contains(COMICS_VIEW_HEADERS)) + comicView->resizeColumnsToContents(); comicView->horizontalHeader()->setStretchLastSection(true); QStringList paths = dmCV->getPaths(currentPath()); @@ -1399,6 +1404,8 @@ void LibraryWindow::showImportComicsInfo() void LibraryWindow::closeEvent ( QCloseEvent * event ) { settings->setValue(MAIN_WINDOW_GEOMETRY, saveGeometry()); + settings->setValue(COMICS_VIEW_HEADERS,comicView->horizontalHeader()->saveState()); + //settings->setValue(COMICS_VIEW_HEADERS_GEOMETRY,comicView->horizontalHeader()->saveGeometry()); } void LibraryWindow::showNoLibrariesWidget() diff --git a/common/yacreader_global.h b/common/yacreader_global.h index 49b7f9b9..cf9072df 100644 --- a/common/yacreader_global.h +++ b/common/yacreader_global.h @@ -45,9 +45,12 @@ #define MAIN_WINDOW_GEOMETRY "MAIN_WINDOW_GEOMETRY" #define MAIN_WINDOW_STATE "MAIN_WINDOW_STATE" +#define COMICS_VIEW_HEADERS "COMICS_VIEW_HEADERS" +#define COMICS_VIEW_HEADERS_GEOMETRY "COMICS_VIEW_HEADERS_GEOMETRY" #define YACREADERLIBRARY_GUID "ea343ff3-2005-4865-b212-7fa7c43999b8" + enum FlowType { CoverFlowLike=0,