mirror of
https://github.com/YACReader/yacreader
synced 2025-06-04 01:28:55 -04:00
navegaci?n entre tree,table y flow completada
tambi?n se pueden volver a abrir los c?mcis
This commit is contained in:
parent
bdef116ad2
commit
faebba5a2e
@ -31,7 +31,9 @@ HEADERS += comic_flow.h \
|
|||||||
bundle_creator.h \
|
bundle_creator.h \
|
||||||
./db/data_base_management.h \
|
./db/data_base_management.h \
|
||||||
./db/treeitem.h \
|
./db/treeitem.h \
|
||||||
./db/treemodel.h
|
./db/treemodel.h \
|
||||||
|
./db/tablemodel.h \
|
||||||
|
./db/tableitem.h
|
||||||
SOURCES += comic_flow.cpp \
|
SOURCES += comic_flow.cpp \
|
||||||
create_library_dialog.cpp \
|
create_library_dialog.cpp \
|
||||||
library_creator.cpp \
|
library_creator.cpp \
|
||||||
@ -50,7 +52,9 @@ SOURCES += comic_flow.cpp \
|
|||||||
bundle_creator.cpp \
|
bundle_creator.cpp \
|
||||||
./db/data_base_management.cpp \
|
./db/data_base_management.cpp \
|
||||||
./db/treeitem.cpp \
|
./db/treeitem.cpp \
|
||||||
./db/treemodel.cpp
|
./db/treemodel.cpp \
|
||||||
|
./db/tablemodel.cpp \
|
||||||
|
./db/tableitem.cpp
|
||||||
|
|
||||||
include(./server/server.pri)
|
include(./server/server.pri)
|
||||||
|
|
||||||
|
@ -5,10 +5,6 @@
|
|||||||
#include <QImageReader>
|
#include <QImageReader>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ComicFlow::ComicFlow(QWidget* parent,FlowType flowType)
|
ComicFlow::ComicFlow(QWidget* parent,FlowType flowType)
|
||||||
:YACReaderFlow(parent,flowType)
|
:YACReaderFlow(parent,flowType)
|
||||||
{
|
{
|
||||||
@ -27,62 +23,6 @@ ComicFlow::~ComicFlow()
|
|||||||
delete updateTimer;
|
delete updateTimer;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString ComicFlow::getImagePath() const
|
|
||||||
{
|
|
||||||
return "";//imagePath;
|
|
||||||
}
|
|
||||||
|
|
||||||
QStringList ComicFlow::getImageFiles() const
|
|
||||||
{
|
|
||||||
return imageFiles;
|
|
||||||
}
|
|
||||||
|
|
||||||
// get list of all files in a directory (will be filtered later)
|
|
||||||
// this is usually very fast so no need to put it in a separate thread
|
|
||||||
static QStringList findFiles(const QString& path = QString())
|
|
||||||
{
|
|
||||||
//list<QString> files;
|
|
||||||
QStringList files;
|
|
||||||
|
|
||||||
QDir dir = QDir::current();
|
|
||||||
if(!path.isEmpty())
|
|
||||||
dir = QDir(path);
|
|
||||||
|
|
||||||
dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks);
|
|
||||||
dir.setNameFilters(QStringList() << "*.jpg");
|
|
||||||
//dir.setSorting(QDir::Name|QDir::IgnoreCase|QDir::LocaleAware);
|
|
||||||
QFileInfoList list = dir.entryInfoList();
|
|
||||||
|
|
||||||
qSort(list.begin(),list.end(),naturalSortLessThanCIFileInfo);
|
|
||||||
|
|
||||||
for (int i = 0; i < list.size(); ++i)
|
|
||||||
{
|
|
||||||
QFileInfo fileInfo = list.at(i);
|
|
||||||
files.append(dir.absoluteFilePath(fileInfo.fileName()));
|
|
||||||
}
|
|
||||||
|
|
||||||
//std::sort(files.begin(), files.end(), naturalSortLessThanCI);
|
|
||||||
|
|
||||||
return files;
|
|
||||||
}
|
|
||||||
|
|
||||||
// take only files which are readable (as images)
|
|
||||||
// also seems to be fast as it does a quick check only
|
|
||||||
static QStringList filterImages(const QStringList& files)
|
|
||||||
{
|
|
||||||
QStringList imageFiles;
|
|
||||||
|
|
||||||
QImageReader reader;
|
|
||||||
foreach(QString fname, files)
|
|
||||||
{
|
|
||||||
reader.setFileName(fname);
|
|
||||||
if(reader.canRead())
|
|
||||||
imageFiles += fname;
|
|
||||||
}
|
|
||||||
|
|
||||||
return imageFiles;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ComicFlow::setImagePaths(const QStringList& paths)
|
void ComicFlow::setImagePaths(const QStringList& paths)
|
||||||
{
|
{
|
||||||
clear();
|
clear();
|
||||||
@ -135,7 +75,6 @@ void ComicFlow::updateImageData()
|
|||||||
imagesSetted[idx] = true;
|
imagesSetted[idx] = true;
|
||||||
numImagesLoaded++;
|
numImagesLoaded++;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// try to load only few images on the left and right side
|
// try to load only few images on the left and right side
|
||||||
|
@ -19,9 +19,6 @@ public:
|
|||||||
ComicFlow(QWidget* parent = 0,FlowType flowType = CoverFlowLike);
|
ComicFlow(QWidget* parent = 0,FlowType flowType = CoverFlowLike);
|
||||||
virtual ~ComicFlow();
|
virtual ~ComicFlow();
|
||||||
|
|
||||||
//void render();
|
|
||||||
QString getImagePath() const; //TOTO quitar no se usa
|
|
||||||
QStringList getImageFiles() const;
|
|
||||||
void setImagePaths(const QStringList& paths);
|
void setImagePaths(const QStringList& paths);
|
||||||
//bool eventFilter(QObject *target, QEvent *event);
|
//bool eventFilter(QObject *target, QEvent *event);
|
||||||
void keyPressEvent(QKeyEvent* event);
|
void keyPressEvent(QKeyEvent* event);
|
||||||
|
@ -55,6 +55,8 @@
|
|||||||
TreeModel::TreeModel(QObject *parent)
|
TreeModel::TreeModel(QObject *parent)
|
||||||
: QAbstractItemModel(parent)
|
: QAbstractItemModel(parent)
|
||||||
{
|
{
|
||||||
|
connect(this,SIGNAL(beforeReset()),this,SIGNAL(modelAboutToBeReset()));
|
||||||
|
connect(this,SIGNAL(reset()),this,SIGNAL(modelReset()));
|
||||||
}
|
}
|
||||||
|
|
||||||
//! [0]
|
//! [0]
|
||||||
@ -182,6 +184,7 @@ int TreeModel::rowCount(const QModelIndex &parent) const
|
|||||||
|
|
||||||
void TreeModel::setupModelData(QString path)
|
void TreeModel::setupModelData(QString path)
|
||||||
{
|
{
|
||||||
|
emit(beforeReset());
|
||||||
if(rootItem == 0)
|
if(rootItem == 0)
|
||||||
delete rootItem; //TODO comprobar que se libera bien la memoria
|
delete rootItem; //TODO comprobar que se libera bien la memoria
|
||||||
|
|
||||||
@ -197,6 +200,7 @@ void TreeModel::setupModelData(QString path)
|
|||||||
QSqlQuery selectQuery("select * from folder order by parentId,name",_database);
|
QSqlQuery selectQuery("select * from folder order by parentId,name",_database);
|
||||||
|
|
||||||
setupModelData(selectQuery,rootItem);
|
setupModelData(selectQuery,rootItem);
|
||||||
|
emit(reset());
|
||||||
}
|
}
|
||||||
|
|
||||||
void TreeModel::setupModelData(QSqlQuery &sqlquery, TreeItem *parent)
|
void TreeModel::setupModelData(QSqlQuery &sqlquery, TreeItem *parent)
|
||||||
|
@ -76,6 +76,9 @@ private:
|
|||||||
TreeItem *rootItem; //el árbol
|
TreeItem *rootItem; //el árbol
|
||||||
|
|
||||||
QSqlDatabase _database;
|
QSqlDatabase _database;
|
||||||
|
signals:
|
||||||
|
void beforeReset();
|
||||||
|
void reset();
|
||||||
};
|
};
|
||||||
//! [0]
|
//! [0]
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@ void LibraryWindow::doLayout()
|
|||||||
comicFlow->setSlideSize(slideSizeW);
|
comicFlow->setSlideSize(slideSizeW);
|
||||||
setFocusProxy(comicFlow);
|
setFocusProxy(comicFlow);
|
||||||
|
|
||||||
comicView = new QListView;
|
comicView = new QTableView;
|
||||||
foldersView = new QTreeView;
|
foldersView = new QTreeView;
|
||||||
|
|
||||||
|
|
||||||
@ -115,10 +115,21 @@ void LibraryWindow::doLayout()
|
|||||||
foldersView->setAnimated(true);
|
foldersView->setAnimated(true);
|
||||||
foldersView->setContextMenuPolicy(Qt::ActionsContextMenu);
|
foldersView->setContextMenuPolicy(Qt::ActionsContextMenu);
|
||||||
foldersView->setContextMenuPolicy(Qt::ActionsContextMenu);
|
foldersView->setContextMenuPolicy(Qt::ActionsContextMenu);
|
||||||
|
foldersView->header()->hide();
|
||||||
|
|
||||||
comicView->setAlternatingRowColors(true);
|
comicView->setAlternatingRowColors(true);
|
||||||
|
comicView->setStyleSheet("alternate-background-color: #e7e7d7;background-color: white;");
|
||||||
//comicView->setItemDelegate(new YACReaderComicViewDelegate());
|
//comicView->setItemDelegate(new YACReaderComicViewDelegate());
|
||||||
comicView->setContextMenuPolicy(Qt::ActionsContextMenu);
|
comicView->setContextMenuPolicy(Qt::ActionsContextMenu);
|
||||||
|
//comicView->verticalHeader()->hide();
|
||||||
|
comicView->setShowGrid(false);
|
||||||
|
comicView->horizontalHeader()->setResizeMode(QHeaderView::ResizeToContents);
|
||||||
|
comicView->horizontalHeader()->setStretchLastSection(true);
|
||||||
|
comicView->verticalHeader()->setResizeMode(QHeaderView::ResizeToContents);
|
||||||
|
comicView->setSelectionBehavior(QAbstractItemView::SelectRows);
|
||||||
|
comicView->setSelectionMode(QAbstractItemView::ExtendedSelection);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
fullScreenToolTip = new QLabel(this);
|
fullScreenToolTip = new QLabel(this);
|
||||||
fullScreenToolTip->setText(tr("<font color='white'> press 'F' to close fullscreen mode </font>"));
|
fullScreenToolTip->setText(tr("<font color='white'> press 'F' to close fullscreen mode </font>"));
|
||||||
@ -157,7 +168,7 @@ void LibraryWindow::doModels()
|
|||||||
{
|
{
|
||||||
//dirmodels
|
//dirmodels
|
||||||
dm = new TreeModel();
|
dm = new TreeModel();
|
||||||
dmCV = new QSqlQueryModel();
|
dmCV = new TableModel();
|
||||||
|
|
||||||
|
|
||||||
/*proxyFilter = new YACReaderTreeSearch();
|
/*proxyFilter = new YACReaderTreeSearch();
|
||||||
@ -289,14 +300,54 @@ void LibraryWindow::createActions()
|
|||||||
openContainingFolderComicAction->setIcon(QIcon(":/images/open.png"));
|
openContainingFolderComicAction->setIcon(QIcon(":/images/open.png"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TODO unificar con disableActions
|
||||||
|
void LibraryWindow::disableAllActions()
|
||||||
|
{
|
||||||
|
updateLibraryAction->setEnabled(false);
|
||||||
|
renameLibraryAction->setEnabled(false);
|
||||||
|
deleteLibraryAction->setEnabled(false);
|
||||||
|
removeLibraryAction->setEnabled(false);
|
||||||
|
foldersFilter->setEnabled(false);
|
||||||
|
clearFoldersFilter->setEnabled(false);
|
||||||
|
setAsReadAction->setEnabled(false);
|
||||||
|
setAsNonReadAction->setEnabled(false);
|
||||||
|
setAllAsReadAction->setEnabled(false);
|
||||||
|
setAllAsNonReadAction->setEnabled(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
//librería de sólo lectura
|
||||||
void LibraryWindow::disableActions()
|
void LibraryWindow::disableActions()
|
||||||
{
|
{
|
||||||
|
updateLibraryAction->setEnabled(false);
|
||||||
|
openComicAction->setEnabled(false);
|
||||||
|
showPropertiesAction->setEnabled(false);
|
||||||
|
openContainingFolderAction->setEnabled(false);
|
||||||
|
openContainingFolderComicAction->setEnabled(false);
|
||||||
|
setAsReadAction->setEnabled(false);
|
||||||
|
setAsNonReadAction->setEnabled(false);
|
||||||
|
setAllAsReadAction->setEnabled(false);
|
||||||
|
setAllAsNonReadAction->setEnabled(false);
|
||||||
}
|
}
|
||||||
|
//librería abierta
|
||||||
void LibraryWindow::enableActions()
|
void LibraryWindow::enableActions()
|
||||||
{
|
{
|
||||||
|
updateLibraryAction->setEnabled(true);
|
||||||
|
openComicAction->setEnabled(true);
|
||||||
|
showPropertiesAction->setEnabled(true);
|
||||||
|
openContainingFolderAction->setEnabled(true);
|
||||||
|
openContainingFolderComicAction->setEnabled(true);
|
||||||
|
setAsReadAction->setEnabled(true);
|
||||||
|
setAsNonReadAction->setEnabled(true);
|
||||||
|
setAllAsReadAction->setEnabled(true);
|
||||||
|
setAllAsNonReadAction->setEnabled(true);
|
||||||
}
|
}
|
||||||
void LibraryWindow::enableLibraryActions()
|
void LibraryWindow::enableLibraryActions()
|
||||||
{
|
{
|
||||||
|
renameLibraryAction->setEnabled(true);
|
||||||
|
deleteLibraryAction->setEnabled(true);
|
||||||
|
removeLibraryAction->setEnabled(true);
|
||||||
|
foldersFilter->setEnabled(true);
|
||||||
|
clearFoldersFilter->setEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void LibraryWindow::createToolBars()
|
void LibraryWindow::createToolBars()
|
||||||
@ -449,31 +500,12 @@ void LibraryWindow::loadLibrary(const QString & name)
|
|||||||
QDir d; //TODO change this by static methods (utils class?? with delTree for example)
|
QDir d; //TODO change this by static methods (utils class?? with delTree for example)
|
||||||
if(d.exists(path))
|
if(d.exists(path))
|
||||||
{
|
{
|
||||||
TreeModel * oldTM = dm;
|
|
||||||
dm = new TreeModel();
|
|
||||||
dm->setupModelData(path);
|
dm->setupModelData(path);
|
||||||
foldersView->setModel(dm);
|
foldersView->setModel(dm);
|
||||||
|
|
||||||
foldersView->header()->hideSection(1);
|
|
||||||
foldersView->header()->hideSection(2);
|
|
||||||
foldersView->header()->hideSection(3);
|
|
||||||
foldersView->header()->adjustSize();
|
|
||||||
foldersView->header()->hide();
|
|
||||||
|
|
||||||
loadCovers(QModelIndex());
|
loadCovers(QModelIndex());
|
||||||
|
|
||||||
/*proxyFilter = new YACReaderTreeSearch();
|
|
||||||
proxyFilter->setSourceModel(dm);
|
|
||||||
proxyFilter->setFilterRole(Qt::DisplayRole);*/
|
|
||||||
|
|
||||||
//connect(dm,SIGNAL(directoryLoaded(QString)),this,SLOT(updateFoldersView(QString)));
|
|
||||||
|
|
||||||
includeComicsCheckBox->setCheckState(Qt::Unchecked);
|
includeComicsCheckBox->setCheckState(Qt::Unchecked);
|
||||||
|
|
||||||
//foldersView->expandAll();
|
|
||||||
|
|
||||||
/*if(oldTM!=0)
|
|
||||||
delete oldTM;*/ //TODO corregir error al liberar memoria
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -483,51 +515,22 @@ void LibraryWindow::loadLibrary(const QString & name)
|
|||||||
}
|
}
|
||||||
d.setCurrent(libraries.value(name));
|
d.setCurrent(libraries.value(name));
|
||||||
d.setFilter(QDir::AllDirs | QDir::Files | QDir::Hidden | QDir::NoSymLinks | QDir::NoDotAndDotDot);
|
d.setFilter(QDir::AllDirs | QDir::Files | QDir::Hidden | QDir::NoSymLinks | QDir::NoDotAndDotDot);
|
||||||
if(d.count()<=1)
|
if(d.count()<=1) //librería de sólo lectura
|
||||||
{
|
{
|
||||||
//QMessageBox::critical(NULL,QString::number(d.count()),QString::number(d.count()));
|
//QMessageBox::critical(NULL,QString::number(d.count()),QString::number(d.count()));
|
||||||
updateLibraryAction->setEnabled(false);
|
disableActions();
|
||||||
openComicAction->setEnabled(false);
|
|
||||||
showPropertiesAction->setEnabled(false);
|
|
||||||
openContainingFolderAction->setEnabled(false);
|
|
||||||
openContainingFolderComicAction->setEnabled(false);
|
|
||||||
setAsReadAction->setEnabled(false);
|
|
||||||
setAsNonReadAction->setEnabled(false);
|
|
||||||
setAllAsReadAction->setEnabled(false);
|
|
||||||
setAllAsNonReadAction->setEnabled(false);
|
|
||||||
importedCovers = true;
|
importedCovers = true;
|
||||||
}
|
}
|
||||||
else
|
else //librería normal abierta
|
||||||
{
|
{
|
||||||
updateLibraryAction->setEnabled(true);
|
enableActions();
|
||||||
openComicAction->setEnabled(true);
|
|
||||||
showPropertiesAction->setEnabled(true);
|
|
||||||
openContainingFolderAction->setEnabled(true);
|
|
||||||
openContainingFolderComicAction->setEnabled(true);
|
|
||||||
setAsReadAction->setEnabled(true);
|
|
||||||
setAsNonReadAction->setEnabled(true);
|
|
||||||
setAllAsReadAction->setEnabled(true);
|
|
||||||
setAllAsNonReadAction->setEnabled(true);
|
|
||||||
importedCovers = false;
|
importedCovers = false;
|
||||||
}
|
}
|
||||||
renameLibraryAction->setEnabled(true);
|
enableLibraryActions();
|
||||||
deleteLibraryAction->setEnabled(true);
|
|
||||||
removeLibraryAction->setEnabled(true);
|
|
||||||
foldersFilter->setEnabled(true);
|
|
||||||
clearFoldersFilter->setEnabled(true);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
updateLibraryAction->setEnabled(false);
|
disableAllActions();
|
||||||
renameLibraryAction->setEnabled(false);
|
|
||||||
deleteLibraryAction->setEnabled(false);
|
|
||||||
removeLibraryAction->setEnabled(false);
|
|
||||||
foldersFilter->setEnabled(false);
|
|
||||||
clearFoldersFilter->setEnabled(false);
|
|
||||||
setAsReadAction->setEnabled(false);
|
|
||||||
setAsNonReadAction->setEnabled(false);
|
|
||||||
setAllAsReadAction->setEnabled(false);
|
|
||||||
setAllAsNonReadAction->setEnabled(false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -544,28 +547,18 @@ void LibraryWindow::loadCovers(const QModelIndex & mi)
|
|||||||
TreeItem *item = static_cast<TreeItem*>(mi.internalPointer());
|
TreeItem *item = static_cast<TreeItem*>(mi.internalPointer());
|
||||||
folderId = item->id;
|
folderId = item->id;
|
||||||
}
|
}
|
||||||
QSqlQuery selectQuery(dm->getDatabase()); //TODO check
|
dmCV->setupModelData(folderId,dm->getDatabase());
|
||||||
selectQuery.prepare("select fileName from comic where comic.parentId = :parentId");
|
|
||||||
selectQuery.bindValue(":parentId", folderId);
|
|
||||||
selectQuery.exec();
|
|
||||||
dmCV->setQuery(selectQuery);
|
|
||||||
comicView->setModel(dmCV);
|
comicView->setModel(dmCV);
|
||||||
|
//TODO automatizar (valorar si se deja al modelo)
|
||||||
|
comicView->horizontalHeader()->hideSection(0);
|
||||||
|
comicView->horizontalHeader()->hideSection(1);
|
||||||
|
comicView->horizontalHeader()->hideSection(3);
|
||||||
//TODO
|
//TODO
|
||||||
QSqlQuery selectQueryPaths(dm->getDatabase()); //TODO check
|
|
||||||
selectQueryPaths.prepare("select ci.hash from comic c inner join comic_info ci on (c.comicInfoId = ci.id) where c.parentId = :parentId");
|
|
||||||
selectQueryPaths.bindValue(":parentId", folderId);
|
|
||||||
selectQueryPaths.exec();
|
|
||||||
QStringList paths;
|
|
||||||
QString currentLibrary = selectedLibrary->currentText();
|
|
||||||
QString path = libraries.value(currentLibrary);
|
|
||||||
path = path + "/.yacreaderlibrary/covers/";
|
|
||||||
while (selectQueryPaths.next()) {
|
|
||||||
paths << path+selectQueryPaths.value(0).toString()+".jpg";
|
|
||||||
}
|
|
||||||
|
|
||||||
|
QStringList paths = dmCV->getPaths(currentPath());
|
||||||
comicFlow->setImagePaths(paths);
|
comicFlow->setImagePaths(paths);
|
||||||
comicFlow->setFocus(Qt::OtherFocusReason);
|
comicFlow->setFocus(Qt::OtherFocusReason);
|
||||||
paths = comicFlow->getImageFiles();
|
|
||||||
if(paths.size()>0 && !importedCovers)
|
if(paths.size()>0 && !importedCovers)
|
||||||
{
|
{
|
||||||
openComicAction->setEnabled(true);
|
openComicAction->setEnabled(true);
|
||||||
@ -584,8 +577,8 @@ void LibraryWindow::loadCovers(const QModelIndex & mi)
|
|||||||
setAllAsReadAction->setEnabled(false);
|
setAllAsReadAction->setEnabled(false);
|
||||||
setAllAsNonReadAction->setEnabled(false);
|
setAllAsNonReadAction->setEnabled(false);
|
||||||
}
|
}
|
||||||
/*if(paths.size()>0)
|
if(paths.size()>0)
|
||||||
comicView->setCurrentIndex(dmCV->index(paths[0]));*/
|
comicView->setCurrentIndex(dmCV->index(0,0));
|
||||||
}
|
}
|
||||||
|
|
||||||
void LibraryWindow::centerComicFlow(const QModelIndex & mi)
|
void LibraryWindow::centerComicFlow(const QModelIndex & mi)
|
||||||
@ -608,26 +601,24 @@ void LibraryWindow::centerComicFlow(const QModelIndex & mi)
|
|||||||
void LibraryWindow::updateComicView(int i)
|
void LibraryWindow::updateComicView(int i)
|
||||||
{
|
{
|
||||||
|
|
||||||
/*if((paths.size()>0)&&skip==0)
|
if(skip==0)
|
||||||
comicView->setCurrentIndex(dmCV->index(paths[i]));*/
|
{
|
||||||
|
QModelIndex mi = dmCV->index(i,2);
|
||||||
|
comicView->setCurrentIndex(mi);
|
||||||
|
comicView->scrollTo(mi,QAbstractItemView::EnsureVisible);
|
||||||
|
}
|
||||||
skip?(--skip):0;
|
skip?(--skip):0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void LibraryWindow::openComic()
|
void LibraryWindow::openComic()
|
||||||
{
|
{
|
||||||
//int index = comicFlow->centerIndex();
|
|
||||||
if(!importedCovers)
|
if(!importedCovers)
|
||||||
{
|
{
|
||||||
QModelIndex mi = comicView->currentIndex();
|
QString path = currentPath() + dmCV->getComicPath(comicView->currentIndex());
|
||||||
QString path;// = QDir::cleanPath(dmCV->filePath(mi));
|
|
||||||
|
|
||||||
path.remove("/.yacreaderlibrary");
|
|
||||||
path.remove(path.size()-4,4);
|
|
||||||
QProcess::startDetached(QDir::cleanPath(QCoreApplication::applicationDirPath())+"/YACReader",QStringList() << path);
|
QProcess::startDetached(QDir::cleanPath(QCoreApplication::applicationDirPath())+"/YACReader",QStringList() << path);
|
||||||
//Comic is readed
|
//Comic is readed
|
||||||
setCurrentComicReaded();
|
setCurrentComicReaded();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1004,6 +995,7 @@ void LibraryWindow::reloadOptions()
|
|||||||
comicFlow->setFlowType(flowType);
|
comicFlow->setFlowType(flowType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TODO esto sobra
|
||||||
void LibraryWindow::updateFoldersView(QString path)
|
void LibraryWindow::updateFoldersView(QString path)
|
||||||
{
|
{
|
||||||
//QModelIndex mi = dm->index(path);
|
//QModelIndex mi = dm->index(path);
|
||||||
@ -1036,5 +1028,7 @@ void LibraryWindow::searchInFiles(int state)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString LibraryWindow::currentPath()
|
||||||
|
{
|
||||||
|
return libraries.value(selectedLibrary->currentText());
|
||||||
|
}
|
@ -2,7 +2,7 @@
|
|||||||
#define __LIBRARYWINDOW_H
|
#define __LIBRARYWINDOW_H
|
||||||
|
|
||||||
#include <QMainWindow>
|
#include <QMainWindow>
|
||||||
#include <QListView>
|
#include <QTableView>
|
||||||
#include <QTreeView>
|
#include <QTreeView>
|
||||||
#include <QModelIndex>
|
#include <QModelIndex>
|
||||||
#include <QDirModel>
|
#include <QDirModel>
|
||||||
@ -11,8 +11,6 @@
|
|||||||
#include <QComboBox>
|
#include <QComboBox>
|
||||||
#include <QThread>
|
#include <QThread>
|
||||||
#include <QFileInfoList>
|
#include <QFileInfoList>
|
||||||
#include <QFileSystemModel>
|
|
||||||
#include <QSqlQueryModel>
|
|
||||||
|
|
||||||
#include "create_library_dialog.h"
|
#include "create_library_dialog.h"
|
||||||
#include "add_library_dialog.h"
|
#include "add_library_dialog.h"
|
||||||
@ -26,6 +24,7 @@
|
|||||||
#include "import_library_dialog.h"
|
#include "import_library_dialog.h"
|
||||||
#include "package_manager.h"
|
#include "package_manager.h"
|
||||||
#include "treemodel.h"
|
#include "treemodel.h"
|
||||||
|
#include "tablemodel.h"
|
||||||
|
|
||||||
class LibraryWindow : public QMainWindow
|
class LibraryWindow : public QMainWindow
|
||||||
{
|
{
|
||||||
@ -56,12 +55,12 @@ private:
|
|||||||
QPushButton * clearFoldersFilter;
|
QPushButton * clearFoldersFilter;
|
||||||
QCheckBox * includeComicsCheckBox;
|
QCheckBox * includeComicsCheckBox;
|
||||||
//-------------
|
//-------------
|
||||||
QListView * comicView;
|
QTableView * comicView;
|
||||||
QTreeView * foldersView;
|
QTreeView * foldersView;
|
||||||
QComboBox * selectedLibrary;
|
QComboBox * selectedLibrary;
|
||||||
TreeModel * dm;
|
TreeModel * dm;
|
||||||
QSqlQueryModel * dmCV;
|
TableModel * dmCV;
|
||||||
QStringList paths;
|
//QStringList paths;
|
||||||
QMap<QString,QString> libraries;
|
QMap<QString,QString> libraries;
|
||||||
QLabel * fullScreenToolTip;
|
QLabel * fullScreenToolTip;
|
||||||
YACReaderIconProvider fip;
|
YACReaderIconProvider fip;
|
||||||
@ -121,10 +120,12 @@ private:
|
|||||||
void doDialogs();
|
void doDialogs();
|
||||||
void doModels();
|
void doModels();
|
||||||
|
|
||||||
|
void disableAllActions();
|
||||||
void disableActions();
|
void disableActions();
|
||||||
void enableActions();
|
void enableActions();
|
||||||
void enableLibraryActions();
|
void enableLibraryActions();
|
||||||
|
|
||||||
|
QString currentPath();
|
||||||
public:
|
public:
|
||||||
LibraryWindow();
|
LibraryWindow();
|
||||||
public slots:
|
public slots:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user