mirror of
https://github.com/YACReader/yacreader
synced 2025-07-19 05:24:57 -04:00
Modificaciones en pictureflow/goto_flow y comic_flow que aumentan la fuidez
Ordenaci?n naturalSorting a?adida a los modelos ?rbol y tabla Primera versi?n de la actualizaci?n de librer?as basadas en BD (falta realizar bateria de pruebas) Los di?logos deben ser mostrados antes de lanzar los hilos que los cerrar?n para evitar estados inconsistentes en la GUI
This commit is contained in:
@ -36,13 +36,6 @@ QSqlDatabase DataBaseManagement::loadDatabase(QString path)
|
||||
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
|
||||
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"
|
||||
"This example needs SQLite support. Please read "
|
||||
"the Qt SQL driver documentation for information how "
|
||||
"to build it.\n\n"
|
||||
"Click Cancel to exit."), QMessageBox::Cancel);*/
|
||||
|
||||
//se devuelve una base de datos vac<61>a e inv<6E>lida
|
||||
return QSqlDatabase();
|
||||
}
|
||||
|
@ -47,6 +47,7 @@
|
||||
#include <QStringList>
|
||||
|
||||
#include "treeitem.h"
|
||||
#include "qnaturalsorting.h"
|
||||
|
||||
//! [0]
|
||||
TreeItem::TreeItem(const QList<QVariant> &data, TreeItem *parent)
|
||||
@ -68,7 +69,29 @@ void TreeItem::appendChild(TreeItem *item)
|
||||
{
|
||||
item->parentItem = this;
|
||||
//TODO insertar odernado
|
||||
childItems.append(item);
|
||||
if(childItems.isEmpty())
|
||||
childItems.append(item);
|
||||
else
|
||||
{
|
||||
TreeItem * last = childItems.back();
|
||||
QString nameLast = last->data(1).toString(); //TODO usar info name si est<73> disponible, sino el nombre del fichero.....
|
||||
QString nameCurrent = item->data(1).toString();
|
||||
QList<TreeItem *>::iterator i;
|
||||
i = childItems.end();
|
||||
i--;
|
||||
while (naturalSortLessThanCI(nameCurrent,nameLast) && i != childItems.begin())
|
||||
{
|
||||
i--;
|
||||
nameLast = (*i)->data(1).toString();
|
||||
}
|
||||
if(!naturalSortLessThanCI(nameCurrent,nameLast)) //si se ha encontrado un elemento menor que current, se inserta justo despu<70>s
|
||||
childItems.insert(++i,item);
|
||||
else
|
||||
childItems.insert(i,item);
|
||||
|
||||
}
|
||||
|
||||
//childItems.append(item);
|
||||
}
|
||||
//! [2]
|
||||
|
||||
|
@ -195,12 +195,16 @@ void TreeModel::setupModelData(QString path)
|
||||
rootItem->id = 0;
|
||||
|
||||
//cargar la base de datos
|
||||
if(_database.isOpen())
|
||||
_database.close();
|
||||
_database = DataBaseManagement::loadDatabase(path);
|
||||
//crear la consulta
|
||||
QSqlQuery selectQuery("select * from folder order by parentId,name",_database);
|
||||
|
||||
setupModelData(selectQuery,rootItem);
|
||||
_database.close();
|
||||
emit(reset());
|
||||
|
||||
}
|
||||
|
||||
void TreeModel::setupModelData(QSqlQuery &sqlquery, TreeItem *parent)
|
||||
@ -215,6 +219,7 @@ void TreeModel::setupModelData(QSqlQuery &sqlquery, TreeItem *parent)
|
||||
while (sqlquery.next()) {
|
||||
QList<QVariant> data;
|
||||
data << sqlquery.value(2).toString();
|
||||
data << sqlquery.value(3).toString();
|
||||
TreeItem * item = new TreeItem(data);
|
||||
item->id = sqlquery.value(0).toLongLong();
|
||||
items.value(sqlquery.value(1).toLongLong())->appendChild(item);
|
||||
@ -226,4 +231,9 @@ void TreeModel::setupModelData(QSqlQuery &sqlquery, TreeItem *parent)
|
||||
QSqlDatabase & TreeModel::getDatabase()
|
||||
{
|
||||
return _database;
|
||||
}
|
||||
|
||||
QString TreeModel::getFolderPath(const QModelIndex &folder)
|
||||
{
|
||||
return static_cast<TreeItem*>(folder.internalPointer())->data(1).toString();
|
||||
}
|
@ -70,6 +70,9 @@ public:
|
||||
int columnCount(const QModelIndex &parent = QModelIndex()) const;
|
||||
void setupModelData(QString path);
|
||||
QSqlDatabase & getDatabase();
|
||||
|
||||
//M<>todos de conveniencia
|
||||
QString getFolderPath(const QModelIndex &folder);
|
||||
private:
|
||||
void setupModelData( QSqlQuery &sqlquery, TreeItem *parent);
|
||||
|
||||
|
Reference in New Issue
Block a user