mirror of
https://github.com/YACReader/yacreader
synced 2025-07-19 05:24:57 -04:00
loadCovers funcionando....
falta integrar la ordenaci?n sensible al locale...
This commit is contained in:
@ -34,7 +34,7 @@ QSqlDatabase DataBaseManagement::loadDatabase(QString path)
|
||||
{
|
||||
//TODO check path
|
||||
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
|
||||
db.setDatabaseName(path);
|
||||
db.setDatabaseName(path+"/library.ydb");
|
||||
if (!db.open()) {
|
||||
/*QMessageBox::critical( 0, QObject::tr("Cannot open database"),
|
||||
QObject::tr("Unable to establish a database connection.\n"
|
||||
|
@ -15,8 +15,8 @@ private:
|
||||
public:
|
||||
DataBaseManagement();
|
||||
TreeModel * newTreeModel(QString path);
|
||||
QSqlDatabase createDatabase(QString name, QString path);
|
||||
QSqlDatabase loadDatabase(QString path);
|
||||
static QSqlDatabase createDatabase(QString name, QString path);
|
||||
static QSqlDatabase loadDatabase(QString path);
|
||||
};
|
||||
|
||||
#endif
|
@ -50,10 +50,16 @@
|
||||
|
||||
#include "treeitem.h"
|
||||
#include "treemodel.h"
|
||||
#include "data_base_management.h"
|
||||
|
||||
TreeModel::TreeModel(QObject *parent)
|
||||
: QAbstractItemModel(parent)
|
||||
{
|
||||
}
|
||||
|
||||
//! [0]
|
||||
TreeModel::TreeModel( QSqlQuery &sqlquery, QObject *parent)
|
||||
: QAbstractItemModel(parent)
|
||||
: QAbstractItemModel(parent),rootItem(0)
|
||||
{
|
||||
//lo m<>s probable es que el nodo ra<72>z no necesite tener informaci<63>n
|
||||
QList<QVariant> rootData;
|
||||
@ -87,6 +93,9 @@ QVariant TreeModel::data(const QModelIndex &index, int role) const
|
||||
if (!index.isValid())
|
||||
return QVariant();
|
||||
|
||||
if (role == Qt::DecorationRole)
|
||||
return QVariant(QIcon(":/images/folder.png"));
|
||||
|
||||
if (role != Qt::DisplayRole)
|
||||
return QVariant();
|
||||
|
||||
@ -171,6 +180,25 @@ int TreeModel::rowCount(const QModelIndex &parent) const
|
||||
}
|
||||
//! [8]
|
||||
|
||||
void TreeModel::setupModelData(QString path)
|
||||
{
|
||||
if(rootItem == 0)
|
||||
delete rootItem; //TODO comprobar que se libera bien la memoria
|
||||
|
||||
//inicializar el nodo ra<72>z
|
||||
QList<QVariant> rootData;
|
||||
rootData << "root"; //id 0, padre 0, title "root" (el id, y el id del padre van a ir en la clase TreeItem)
|
||||
rootItem = new TreeItem(rootData);
|
||||
rootItem->id = 0;
|
||||
|
||||
//cargar la base de datos
|
||||
_database = DataBaseManagement::loadDatabase(path);
|
||||
//crear la consulta
|
||||
QSqlQuery selectQuery("select * from folder order by parentId,name",_database);
|
||||
|
||||
setupModelData(selectQuery,rootItem);
|
||||
}
|
||||
|
||||
void TreeModel::setupModelData(QSqlQuery &sqlquery, TreeItem *parent)
|
||||
{
|
||||
//64 bits para la primary key, es decir la misma precisi<73>n que soporta sqlit 2^64
|
||||
@ -189,4 +217,9 @@ void TreeModel::setupModelData(QSqlQuery &sqlquery, TreeItem *parent)
|
||||
//se a<>ade el item al map, de forma que se pueda encontrar como padre en siguientes iteraciones
|
||||
items.insert(item->id,item);
|
||||
}
|
||||
}
|
||||
|
||||
QSqlDatabase & TreeModel::getDatabase()
|
||||
{
|
||||
return _database;
|
||||
}
|
@ -45,6 +45,7 @@
|
||||
#include <QModelIndex>
|
||||
#include <QVariant>
|
||||
#include <QSqlQuery>
|
||||
#include <QSqlDatabase>
|
||||
|
||||
class TreeItem;
|
||||
|
||||
@ -54,6 +55,7 @@ class TreeModel : public QAbstractItemModel
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TreeModel(QObject *parent = 0);
|
||||
TreeModel( QSqlQuery &sqlquery, QObject *parent = 0);
|
||||
~TreeModel();
|
||||
|
||||
@ -66,11 +68,14 @@ public:
|
||||
QModelIndex parent(const QModelIndex &index) const;
|
||||
int rowCount(const QModelIndex &parent = QModelIndex()) const;
|
||||
int columnCount(const QModelIndex &parent = QModelIndex()) const;
|
||||
|
||||
void setupModelData(QString path);
|
||||
QSqlDatabase & getDatabase();
|
||||
private:
|
||||
void setupModelData( QSqlQuery &sqlquery, TreeItem *parent);
|
||||
|
||||
TreeItem *rootItem; //el <20>rbol
|
||||
|
||||
QSqlDatabase _database;
|
||||
};
|
||||
//! [0]
|
||||
|
||||
|
Reference in New Issue
Block a user