added 'save selected covers to...' feature

This commit is contained in:
Luis Ángel San Martín 2014-12-28 20:01:00 +01:00
parent acaa4e0f24
commit 96248577ac
4 changed files with 204 additions and 168 deletions

View File

@ -126,6 +126,8 @@ QVariant ComicModel::data(const QModelIndex &index, int role) const
return item->data(Number);
else if (role == TitleRole)
return item->data(Title).isNull()?item->data(FileName):item->data(Title);
else if (role == FileNameRole)
return item->data(FileName);
else if (role == RatingRole)
return item->data(Rating);
else if (role == CoverPathRole)

View File

@ -344,6 +344,7 @@ void LibraryWindow::setUpShortcutsManagement()
editShortcutsDialog->addActionsGroup("Comics",QIcon(":/images/shortcuts_group_comics.png"),
tmpList = QList<QAction *>()
<< openComicAction
<< saveCoversToAction
<< setAsReadAction
<< setAsNonReadAction
<< openContainingFolderComicAction
@ -541,6 +542,11 @@ void LibraryWindow::createActions()
openComicAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(OPEN_COMIC_ACTION_YL));
openComicAction->setIcon(QIcon(":/images/openInYACReader.png"));
saveCoversToAction = new QAction(tr("Save selected covers to..."),this);
saveCoversToAction->setToolTip(tr("Save covers of the selected comics as JPG files"));
saveCoversToAction->setData(SAVE_COVERS_TO_ACTION_YL);
saveCoversToAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(SAVE_COVERS_TO_ACTION_YL));
setAsReadAction = new QAction(tr("Set as read"),this);
setAsReadAction->setToolTip(tr("Set comic as read"));
setAsReadAction->setData(SET_AS_READ_ACTION_YL);
@ -1154,6 +1160,9 @@ void LibraryWindow::createConnections()
//--
connect(addToFavoritesAction,SIGNAL(triggered()),this,SLOT(addSelectedComicsToFavorites()));
//save covers
connect(saveCoversToAction,SIGNAL(triggered()),this,SLOT(saveSelectedCoversTo()));
}
void LibraryWindow::loadLibrary(const QString & name)
@ -1646,6 +1655,7 @@ void LibraryWindow::showComicsViewContextMenu(const QPoint &point)
QMenu menu;
menu.addAction(openComicAction);
menu.addAction(saveCoversToAction);
menu.addSeparator();
menu.addAction(openContainingFolderComicAction);
menu.addAction(updateCurrentFolderAction);
@ -1680,6 +1690,7 @@ void LibraryWindow::showComicsItemContextMenu(const QPoint &point)
QMenu menu;
menu.addAction(openComicAction);
menu.addAction(saveCoversToAction);
menu.addSeparator();
menu.addAction(openContainingFolderComicAction);
menu.addAction(updateCurrentFolderAction);
@ -1745,6 +1756,26 @@ void LibraryWindow::setToolbarTitle(const QModelIndex &modelIndex)
#endif
}
void LibraryWindow::saveSelectedCoversTo()
{
QFileDialog saveDialog;
QString folderPath = saveDialog.getExistingDirectory(this,tr("Save covers"),QStandardPaths::writableLocation(QStandardPaths::DesktopLocation));
if (!folderPath.isEmpty())
{
QModelIndexList comics = getSelectedComics();
foreach(QModelIndex comic, comics)
{
QString origin = comic.data(ComicModel::CoverPathRole).toString().remove("file:///");
QString destination = QDir(folderPath).filePath(comic.data(ComicModel::FileNameRole).toString()+".jpg");
QLOG_DEBUG() << "From : " << origin;
QLOG_DEBUG() << "To : " << destination;
QFile::copy(origin,destination);
}
}
}
void LibraryWindow::selectSubfolder(const QModelIndex &mi, int child)
{
QModelIndex dest = foldersModel->index(child,0,mi);

View File

@ -182,6 +182,7 @@ private:
QAction * colapseAllNodesAction;
QAction * openContainingFolderAction;
QAction * saveCoversToAction;
//--
QAction * setFolderAsNotCompletedAction;
QAction * setFolderAsCompletedAction;
@ -395,6 +396,7 @@ public slots:
void setupAddToSubmenu(QMenu & menu);
void onAddComicsToLabel();
void setToolbarTitle(const QModelIndex & modelIndex);
void saveSelectedCoversTo();
};

View File

@ -80,6 +80,7 @@ public:
#define ADD_LABEL_ACTION_YL "ADD_LABEL_ACTION_YL"
#define RENAME_LIST_ACTION_YL "RENAME_LIST_ACTION_YL"
#define ADD_TO_FAVORITES_ACTION_YL "ADD_TO_FAVORITES_ACTION_YL"
#define SAVE_COVERS_TO_ACTION_YL "SAVE_COVERS_TO_ACTION_YL"
//COMMANDS YACReaderLibrary