eliminado el focusrect en macos para los elementos de navegaci?n y b?squeda de folders

corregido grave BUG en library_creator (udpate)

corregido tablemodel (solo se eliminar filas si se puede borrar el fichero)
This commit is contained in:
Luis Ángel San Martín
2013-06-14 21:53:52 +02:00
parent 68483272fc
commit 7e849ca8cb
4 changed files with 77 additions and 11 deletions

View File

@ -435,9 +435,9 @@ QModelIndex TableModel::getIndexFromId(quint64 id)
return index(i,0);
}
void TableModel::startTransaction(int first, int last)
void TableModel::startTransaction()
{
beginRemoveRows(QModelIndex(),first,last);
dbTransaction = DataBaseManagement::loadDatabase(_databasePath);
dbTransaction.transaction();
}
@ -448,7 +448,7 @@ void TableModel::finishTransaction()
dbTransaction.close();
QSqlDatabase::removeDatabase(_databasePath);
endRemoveRows();
}
void TableModel::removeInTransaction(int row)
@ -456,10 +456,12 @@ void TableModel::removeInTransaction(int row)
ComicDB c = DBHelper::loadComic(_data.at(row)->data(ID).toULongLong(),dbTransaction);
DBHelper::removeFromDB(&c,dbTransaction);
beginRemoveRows(QModelIndex(),row,row);
removeRow(row);
delete _data.at(row);
_data.removeAt(row);
endRemoveRows();
}
void TableModel::remove(ComicDB * comic, int row)

View File

@ -52,7 +52,7 @@ public:
public slots:
void remove(int row);
void startTransaction(int first, int last);
void startTransaction();
void finishTransaction();
private:

View File

@ -256,13 +256,38 @@ void LibraryCreator::update(QDir dirS)
QFileInfo fileInfoS = listS.at(i);
if(fileInfoS.isDir()) //create folder
{
_currentPathFolders.append(Folder(fileInfoS.fileName(),QDir::cleanPath(fileInfoS.absoluteFilePath()).remove(_source))); //folder actual no est<73> en la BD
#ifdef Q_OS_MAC
QStringList src = _source.split("/");
QString filePath = fileInfoS.absoluteFilePath();
QStringList fp = filePath.split("/");
for(int i = 0; i< src.count();i++)
{
fp.removeFirst();
}
QString path = "/" + fp.join("/");
#else
QString path = QDir::cleanPath(fileInfoS.absoluteFilePath()).remove(_source);
#endif
_currentPathFolders.append(Folder(fileInfoS.fileName(),path)); //folder actual no est<73> en la BD
create(QDir(fileInfoS.absoluteFilePath()));
_currentPathFolders.pop_back();
}
else //create comic
{
insertComic(QDir::cleanPath(fileInfoS.absoluteFilePath()).remove(_source),fileInfoS);
#ifdef Q_OS_MAC
QStringList src = _source.split("/");
QString filePath = fileInfoS.absoluteFilePath();
QStringList fp = filePath.split("/");
for(int i = 0; i< src.count();i++)
{
fp.removeFirst();
}
QString path = "/" + fp.join("/");
#else
QString path = QDir::cleanPath(fileInfoS.absoluteFilePath()).remove(_source);
#endif
insertComic(path,fileInfoS);
}
}
updated = true;
@ -289,7 +314,19 @@ void LibraryCreator::update(QDir dirS)
{
if(nameS!="/.yacreaderlibrary")
{
_currentPathFolders.append(Folder(fileInfoS.fileName(),QDir::cleanPath(fileInfoS.absoluteFilePath()).remove(_source)));
#ifdef Q_OS_MAC
QStringList src = _source.split("/");
QString filePath = fileInfoS.absoluteFilePath();
QStringList fp = filePath.split("/");
for(int i = 0; i< src.count();i++)
{
fp.removeFirst();
}
QString path = "/" + fp.join("/");
#else
QString path = QDir::cleanPath(fileInfoS.absoluteFilePath()).remove(_source);
#endif
_currentPathFolders.append(Folder(fileInfoS.fileName(),path));
create(QDir(fileInfoS.absoluteFilePath()));
_currentPathFolders.pop_back();
}
@ -310,7 +347,19 @@ void LibraryCreator::update(QDir dirS)
{
if(nameS!="/.yacreaderlibrary") //skip .yacreaderlibrary folder
{
_currentPathFolders.append(Folder(fileInfoS.fileName(),QDir::cleanPath(fileInfoS.absoluteFilePath()).remove(_source)));
#ifdef Q_OS_MAC
QStringList src = _source.split("/");
QString filePath = fileInfoS.absoluteFilePath();
QStringList fp = filePath.split("/");
for(int i = 0; i< src.count();i++)
{
fp.removeFirst();
}
QString path = "/" + fp.join("/");
#else
QString path = QDir::cleanPath(fileInfoS.absoluteFilePath()).remove(_source);
#endif
_currentPathFolders.append(Folder(fileInfoS.fileName(),path));
create(QDir(fileInfoS.absoluteFilePath()));
_currentPathFolders.pop_back();
}
@ -328,7 +377,19 @@ void LibraryCreator::update(QDir dirS)
int comparation = QString::localeAwareCompare(nameS,nameD);
if(comparation < 0) //create new thumbnail
{
insertComic(QDir::cleanPath(fileInfoS.absoluteFilePath()).remove(_source),fileInfoS);
#ifdef Q_OS_MAC
QStringList src = _source.split("/");
QString filePath = fileInfoS.absoluteFilePath();
QStringList fp = filePath.split("/");
for(int i = 0; i< src.count();i++)
{
fp.removeFirst();
}
QString path = "/" + fp.join("/");
#else
QString path = QDir::cleanPath(fileInfoS.absoluteFilePath()).remove(_source);
#endif
insertComic(path,fileInfoS);
i++;
}
else

View File

@ -176,10 +176,12 @@ void LibraryWindow::doLayout()
foldersView->header()->hide();
foldersView->setUniformRowHeights(true);
foldersView->setSelectionBehavior(QAbstractItemView::SelectRows);
foldersView->setAttribute(Qt::WA_MacShowFocusRect,false);
sideBar = new QWidget;
QVBoxLayout * l = new QVBoxLayout;
selectedLibrary = new QComboBox;
selectedLibrary->setAttribute(Qt::WA_MacShowFocusRect,false);
l->setContentsMargins(sHorizontal->handleWidth(),0,0,0);
YACReaderTitledToolBar * librariesTitle = new YACReaderTitledToolBar(tr("Libraries"));
@ -200,6 +202,7 @@ void LibraryWindow::doLayout()
QHBoxLayout * filter = new QHBoxLayout;
filter->addWidget(foldersFilter = new YACReaderSearchLineEdit());
foldersFilter->setAttribute(Qt::WA_MacShowFocusRect,false);
foldersFilter->setPlaceholderText(tr("Search folders and comics"));
previousFilter = "";
@ -1464,7 +1467,7 @@ void LibraryWindow::deleteComics()
ComicsRemover * remover = new ComicsRemover(indexList,paths);
//comicView->showDeleteProgress();
dmCV->startTransaction(indexList.first().row(),indexList.last().row());
dmCV->startTransaction();
connect(remover, SIGNAL(remove(int)), dmCV, SLOT(remove(int)));
connect(remover, SIGNAL(remove(int)), comicFlow, SLOT(remove(int)));