a?adida la columna le?do

se guarda el estado de las columas en la tabla
This commit is contained in:
Luis Ángel San Martín 2013-05-25 21:47:05 +02:00
parent 81c59ee1f5
commit 6fb4393e49
5 changed files with 30 additions and 5 deletions

View File

@ -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"

View File

@ -5,8 +5,9 @@
#include <QVariant>
//! [0]
class TableItem
class TableItem : public QObject
{
Q_OBJECT
public:
TableItem(const QList<QVariant> &data);
~TableItem();

View File

@ -68,6 +68,8 @@ QVariant TableModel::data(const QModelIndex &index, int role) const
TableItem *item = static_cast<TableItem*>(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<bool> 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<bool> TableModel::setComicsRead(QList<QModelIndex> 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<QModelIndex> list,int startingNumber)
@ -414,6 +422,9 @@ qint64 TableModel::asignNumbers(QList<QModelIndex> 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)

View File

@ -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;i<comicView->horizontalHeader()->count();i++)
if(i!=7)
comicView->horizontalHeader()->hideSection(i);
for(int i = 4;i<comicView->horizontalHeader()->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()

View File

@ -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,