mirror of
https://github.com/YACReader/yacreader
synced 2025-05-28 03:10:27 -04:00
Merge pull request #439 from YACReader/defult-content-type-for-libraries
This commit is contained in:
commit
be90e9e3a1
@ -9,8 +9,9 @@ Version counting is based on semantic versioning (Major.Feature.Patch)
|
||||
* Add shortcut to reset the magnifying glass to its defaults (size and zoom), it is `slash` by default but it can be reasigned.
|
||||
* Bump PDF render size.
|
||||
|
||||
###
|
||||
### YACReaderLibrary
|
||||
* Fix headers in the table view getting stuck in a non moveable state.
|
||||
* Add option to set the type of a library. It will convert all the content to desired type (comic, manga, etc) and it will set that type as the default one for that library. Available in the library context menu.
|
||||
|
||||
## 9.14.2
|
||||
|
||||
@ -18,7 +19,7 @@ Version counting is based on semantic versioning (Major.Feature.Patch)
|
||||
* Fix columns in the search results.
|
||||
* Fix type not being propagated to new folders from their parents.
|
||||
* Fix default type set to folders in the root folder when they are added.
|
||||
* Improve and fix comic file size format.
|
||||
* Improve and fix comic file size format.
|
||||
|
||||
## 9.14.1
|
||||
|
||||
|
@ -86,6 +86,7 @@ HEADERS += comic_flow.h \
|
||||
library_creator.h \
|
||||
library_window.h \
|
||||
add_library_dialog.h \
|
||||
library_window_actions.h \
|
||||
recent_visibility_coordinator.h \
|
||||
rename_library_dialog.h \
|
||||
properties_dialog.h \
|
||||
@ -172,6 +173,7 @@ SOURCES += comic_flow.cpp \
|
||||
library_comic_opener.cpp \
|
||||
library_creator.cpp \
|
||||
library_window.cpp \
|
||||
library_window_actions.cpp \
|
||||
main.cpp \
|
||||
add_library_dialog.cpp \
|
||||
recent_visibility_coordinator.cpp \
|
||||
|
@ -53,11 +53,76 @@ void drawMacOSXFinishedFolderIcon()
|
||||
|
||||
#define ROOT 1
|
||||
|
||||
FolderItem *createRoot()
|
||||
struct FolderColumns {
|
||||
int name;
|
||||
int path;
|
||||
int finished;
|
||||
int completed;
|
||||
int id;
|
||||
int parentId;
|
||||
int numChildren;
|
||||
int firstChildHash;
|
||||
int customImage;
|
||||
int type;
|
||||
int added;
|
||||
int updated;
|
||||
|
||||
FolderColumns(QSqlQuery &sqlquery)
|
||||
{
|
||||
auto record = sqlquery.record();
|
||||
|
||||
name = record.indexOf("name");
|
||||
path = record.indexOf("path");
|
||||
finished = record.indexOf("finished");
|
||||
completed = record.indexOf("completed");
|
||||
id = record.indexOf("id");
|
||||
parentId = record.indexOf("parentId");
|
||||
numChildren = record.indexOf("numChildren");
|
||||
firstChildHash = record.indexOf("firstChildHash");
|
||||
customImage = record.indexOf("customImage");
|
||||
type = record.indexOf("type");
|
||||
added = record.indexOf("added");
|
||||
updated = record.indexOf("updated");
|
||||
}
|
||||
};
|
||||
|
||||
QList<QVariant> folderDataFromQuery(QSqlQuery &query, const FolderColumns &columns)
|
||||
{
|
||||
QList<QVariant> rootData;
|
||||
rootData << "root";
|
||||
auto root = new FolderItem(rootData);
|
||||
QList<QVariant> data;
|
||||
|
||||
data << query.value(columns.name);
|
||||
data << query.value(columns.path);
|
||||
data << query.value(columns.finished);
|
||||
data << query.value(columns.completed);
|
||||
data << query.value(columns.numChildren);
|
||||
data << query.value(columns.firstChildHash);
|
||||
data << query.value(columns.customImage);
|
||||
data << query.value(columns.type);
|
||||
data << query.value(columns.added);
|
||||
data << query.value(columns.updated);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
// TODO: load from DB, type is pretty much needed
|
||||
FolderItem *createRoot(QSqlDatabase &db)
|
||||
{
|
||||
QList<QVariant> data;
|
||||
|
||||
QSqlQuery selectQuery(db);
|
||||
selectQuery.prepare("SELECT * FROM folder WHERE id = 1");
|
||||
selectQuery.exec();
|
||||
|
||||
auto columns = FolderColumns(selectQuery);
|
||||
|
||||
if (!selectQuery.next()) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
data = folderDataFromQuery(selectQuery, columns);
|
||||
data[0] = "root";
|
||||
|
||||
auto root = new FolderItem(data);
|
||||
root->id = ROOT;
|
||||
root->parentItem = nullptr;
|
||||
|
||||
@ -83,7 +148,7 @@ int FolderModel::columnCount(const QModelIndex &parent) const
|
||||
if (rootItem == nullptr) {
|
||||
return 0;
|
||||
}
|
||||
return rootItem->columnCount();
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
@ -454,7 +519,7 @@ FolderModel::ModelData FolderModel::createModelData(const QString &path) const
|
||||
QSqlDatabase db = DataBaseManagement::loadDatabase(path);
|
||||
QSqlQuery selectQuery("select * from folder where id <> 1 order by parentId,name", db);
|
||||
|
||||
auto root = createRoot();
|
||||
auto root = createRoot(db);
|
||||
modelData = createModelData(selectQuery, root);
|
||||
|
||||
connectionName = db.connectionName();
|
||||
@ -471,40 +536,14 @@ FolderModel::ModelData FolderModel::createModelData(QSqlQuery &sqlquery, FolderI
|
||||
// add parent to the lookup
|
||||
itemsLookup.insert(parent->id, parent);
|
||||
|
||||
QSqlRecord record = sqlquery.record();
|
||||
|
||||
int name = record.indexOf("name");
|
||||
int path = record.indexOf("path");
|
||||
int finished = record.indexOf("finished");
|
||||
int completed = record.indexOf("completed");
|
||||
int id = record.indexOf("id");
|
||||
int parentId = record.indexOf("parentId");
|
||||
int numChildren = record.indexOf("numChildren");
|
||||
int firstChildHash = record.indexOf("firstChildHash");
|
||||
int customImage = record.indexOf("customImage");
|
||||
int type = record.indexOf("type");
|
||||
int added = record.indexOf("added");
|
||||
int updated = record.indexOf("updated");
|
||||
auto columns = FolderColumns(sqlquery);
|
||||
|
||||
while (sqlquery.next()) {
|
||||
QList<QVariant> data;
|
||||
auto item = new FolderItem(folderDataFromQuery(sqlquery, columns));
|
||||
|
||||
data << sqlquery.value(name);
|
||||
data << sqlquery.value(path);
|
||||
data << sqlquery.value(finished);
|
||||
data << sqlquery.value(completed);
|
||||
data << sqlquery.value(numChildren);
|
||||
data << sqlquery.value(firstChildHash);
|
||||
data << sqlquery.value(customImage);
|
||||
data << sqlquery.value(type);
|
||||
data << sqlquery.value(added);
|
||||
data << sqlquery.value(updated);
|
||||
|
||||
auto item = new FolderItem(data);
|
||||
|
||||
item->id = sqlquery.value(id).toULongLong();
|
||||
item->id = sqlquery.value(columns.id).toULongLong();
|
||||
// la inserci<63>n de hijos se hace de forma ordenada
|
||||
FolderItem *parent = itemsLookup.value(sqlquery.value(parentId).toULongLong());
|
||||
FolderItem *parent = itemsLookup.value(sqlquery.value(columns.parentId).toULongLong());
|
||||
parent->appendChild(item);
|
||||
// se a<>ade el item al map, de forma que se pueda encontrar como padre en siguientes iteraciones
|
||||
itemsLookup.insert(item->id, item);
|
||||
@ -605,6 +644,35 @@ void FolderModel::updateFolderType(const QModelIndexList &list, YACReader::FileT
|
||||
emit dataChanged(index(list.first().row(), FolderModel::Name), index(list.last().row(), FolderModel::Updated));
|
||||
}
|
||||
|
||||
void FolderModel::updateTreeType(YACReader::FileType type)
|
||||
{
|
||||
QString connectionName = "";
|
||||
{
|
||||
QSqlDatabase db = DataBaseManagement::loadDatabase(_databasePath);
|
||||
db.transaction();
|
||||
|
||||
auto item = rootItem;
|
||||
|
||||
std::function<void(FolderItem *, YACReader::FileType)> setType;
|
||||
setType = [&setType](FolderItem *item, YACReader::FileType type) -> void {
|
||||
item->setData(FolderModel::Type, QVariant::fromValue(type));
|
||||
|
||||
for (auto child : item->children()) {
|
||||
setType(child, type);
|
||||
}
|
||||
};
|
||||
|
||||
setType(item, type);
|
||||
|
||||
if (!isSubfolder) {
|
||||
DBHelper::updateDBType(db, type);
|
||||
}
|
||||
db.commit();
|
||||
connectionName = db.connectionName();
|
||||
}
|
||||
QSqlDatabase::removeDatabase(connectionName);
|
||||
}
|
||||
|
||||
QStringList FolderModel::getSubfoldersNames(const QModelIndex &mi)
|
||||
{
|
||||
QStringList result;
|
||||
|
@ -69,6 +69,7 @@ public:
|
||||
void updateFolderCompletedStatus(const QModelIndexList &list, bool status);
|
||||
void updateFolderFinishedStatus(const QModelIndexList &list, bool status);
|
||||
void updateFolderType(const QModelIndexList &list, YACReader::FileType type);
|
||||
void updateTreeType(YACReader::FileType type);
|
||||
|
||||
QStringList getSubfoldersNames(const QModelIndex &mi);
|
||||
FolderModel *getSubfoldersModel(const QModelIndex &mi); // it creates a model that contains just the direct subfolders
|
||||
@ -112,7 +113,6 @@ public:
|
||||
};
|
||||
|
||||
bool isSubfolder;
|
||||
|
||||
public slots:
|
||||
void deleteFolder(const QModelIndex &mi);
|
||||
void updateFolderChildrenInfo(qulonglong folderId);
|
||||
|
@ -1668,6 +1668,21 @@ void DBHelper::updateFolderTreeType(qulonglong id, QSqlDatabase &db, YACReader::
|
||||
}
|
||||
}
|
||||
|
||||
void DBHelper::updateDBType(QSqlDatabase &db, YACReader::FileType type)
|
||||
{
|
||||
QSqlQuery updateFolderQuery(db);
|
||||
updateFolderQuery.prepare("UPDATE folder "
|
||||
"SET type = :type");
|
||||
updateFolderQuery.bindValue(":type", static_cast<int>(type));
|
||||
updateFolderQuery.exec();
|
||||
|
||||
QSqlQuery updateComicInfo(db);
|
||||
updateComicInfo.prepare("UPDATE comic_info "
|
||||
"SET type = :type");
|
||||
updateComicInfo.bindValue(":type", static_cast<int>(type));
|
||||
updateComicInfo.exec();
|
||||
}
|
||||
|
||||
Folder DBHelper::loadFolder(qulonglong id, QSqlDatabase &db)
|
||||
{
|
||||
QSqlQuery query(db);
|
||||
|
@ -91,6 +91,7 @@ public:
|
||||
static QList<Label> getLabels(qulonglong libraryId);
|
||||
|
||||
static void updateFolderTreeType(qulonglong id, QSqlDatabase &db, YACReader::FileType type);
|
||||
static void updateDBType(QSqlDatabase &db, YACReader::FileType type);
|
||||
|
||||
// load
|
||||
static Folder loadFolder(qulonglong id, QSqlDatabase &db);
|
||||
|
@ -1,5 +1,4 @@
|
||||
#include "library_creator.h"
|
||||
#include "custom_widgets.h"
|
||||
|
||||
#include <QMutex>
|
||||
#include <QDebug>
|
||||
@ -25,6 +24,25 @@
|
||||
using namespace std;
|
||||
using namespace YACReader;
|
||||
|
||||
Folder rootFolder(QSqlDatabase &db)
|
||||
{
|
||||
QSqlQuery selectQuery(db);
|
||||
selectQuery.prepare("SELECT * FROM folder WHERE id = 1");
|
||||
selectQuery.exec();
|
||||
|
||||
auto root = Folder(1, 1, "root", "/");
|
||||
|
||||
if (!selectQuery.next()) {
|
||||
|
||||
root.type = YACReader::FileType::Comic;
|
||||
return root;
|
||||
}
|
||||
|
||||
root.type = selectQuery.value("type").value<YACReader::FileType>();
|
||||
|
||||
return root;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------
|
||||
LibraryCreator::LibraryCreator(QSettings *settings)
|
||||
: creation(false), partialUpdate(false), settings(settings)
|
||||
@ -54,7 +72,6 @@ void LibraryCreator::updateFolder(const QString &source, const QString &target,
|
||||
folderDestinationModelIndex = dest;
|
||||
|
||||
_currentPathFolders.clear();
|
||||
_currentPathFolders.append(Folder::rootFolder());
|
||||
|
||||
QString relativeFolderPath = sourceFolder;
|
||||
relativeFolderPath = relativeFolderPath.remove(QDir::cleanPath(source));
|
||||
@ -83,6 +100,8 @@ void LibraryCreator::updateFolder(const QString &source, const QString &target,
|
||||
return;
|
||||
}
|
||||
|
||||
_currentPathFolders.append(rootFolder(db));
|
||||
|
||||
foreach (QString folderName, folders) {
|
||||
if (folderName.isEmpty()) {
|
||||
break;
|
||||
@ -139,7 +158,6 @@ void LibraryCreator::run()
|
||||
if (_mode == CREATOR) {
|
||||
QLOG_INFO() << "Starting to create new library ( " << _source << "," << _target << ")";
|
||||
_currentPathFolders.clear();
|
||||
_currentPathFolders.append(Folder::rootFolder());
|
||||
// se crean los directorios .yacreaderlibrary y .yacreaderlibrary/covers
|
||||
QDir dir;
|
||||
dir.mkpath(_target + "/covers");
|
||||
@ -156,6 +174,8 @@ void LibraryCreator::run()
|
||||
return;
|
||||
}
|
||||
|
||||
_currentPathFolders.append(rootFolder(_database));
|
||||
|
||||
/*QSqlQuery pragma("PRAGMA foreign_keys = ON",_database);*/
|
||||
_database.transaction();
|
||||
// se crea la librería
|
||||
@ -173,7 +193,6 @@ void LibraryCreator::run()
|
||||
QLOG_INFO() << "Starting to update folder" << _sourceFolder << "in library ( " << _source << "," << _target << ")";
|
||||
if (!partialUpdate) {
|
||||
_currentPathFolders.clear();
|
||||
_currentPathFolders.append(Folder::rootFolder());
|
||||
QLOG_DEBUG() << "update whole library";
|
||||
}
|
||||
{
|
||||
@ -197,6 +216,9 @@ void LibraryCreator::run()
|
||||
creation = false;
|
||||
return;
|
||||
}
|
||||
|
||||
_currentPathFolders.append(rootFolder(_database));
|
||||
|
||||
QSqlQuery pragma("PRAGMA foreign_keys = ON", _database);
|
||||
pragma.exec();
|
||||
_database.transaction();
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -6,6 +6,7 @@
|
||||
#include <QModelIndex>
|
||||
#include <QFileInfo>
|
||||
|
||||
#include "library_window_actions.h"
|
||||
#include "yacreader_global.h"
|
||||
#include "yacreader_global_gui.h"
|
||||
#include "yacreader_libraries.h"
|
||||
@ -158,99 +159,7 @@ public:
|
||||
|
||||
int i;
|
||||
|
||||
QAction *backAction;
|
||||
QAction *forwardAction;
|
||||
|
||||
QAction *openComicAction;
|
||||
QAction *createLibraryAction;
|
||||
QAction *openLibraryAction;
|
||||
|
||||
QAction *exportComicsInfoAction;
|
||||
QAction *importComicsInfoAction;
|
||||
|
||||
QAction *exportLibraryAction;
|
||||
QAction *importLibraryAction;
|
||||
|
||||
QAction *rescanLibraryForXMLInfoAction;
|
||||
|
||||
QAction *updateLibraryAction;
|
||||
QAction *removeLibraryAction;
|
||||
QAction *helpAboutAction;
|
||||
QAction *renameLibraryAction;
|
||||
#ifndef Q_OS_MACOS
|
||||
QAction *toggleFullScreenAction;
|
||||
#endif
|
||||
QAction *optionsAction;
|
||||
QAction *serverConfigAction;
|
||||
QAction *toggleComicsViewAction;
|
||||
// QAction * socialAction;
|
||||
|
||||
// tree actions
|
||||
QAction *addFolderAction;
|
||||
QAction *deleteFolderAction;
|
||||
//--
|
||||
QAction *setRootIndexAction;
|
||||
QAction *expandAllNodesAction;
|
||||
QAction *colapseAllNodesAction;
|
||||
|
||||
QAction *openContainingFolderAction;
|
||||
QAction *saveCoversToAction;
|
||||
//--
|
||||
QAction *setFolderAsNotCompletedAction;
|
||||
QAction *setFolderAsCompletedAction;
|
||||
//--
|
||||
QAction *setFolderAsReadAction;
|
||||
QAction *setFolderAsUnreadAction;
|
||||
//--
|
||||
QAction *setFolderAsMangaAction;
|
||||
QAction *setFolderAsNormalAction;
|
||||
QAction *setFolderAsWesternMangaAction;
|
||||
QAction *setFolderAsWebComicAction;
|
||||
QAction *setFolderAsYonkomaAction;
|
||||
|
||||
QAction *openContainingFolderComicAction;
|
||||
QAction *setAsReadAction;
|
||||
QAction *setAsNonReadAction;
|
||||
|
||||
QAction *setMangaAction;
|
||||
QAction *setNormalAction;
|
||||
QAction *setWesternMangaAction;
|
||||
QAction *setWebComicAction;
|
||||
QAction *setYonkomaAction;
|
||||
|
||||
QAction *showHideMarksAction;
|
||||
QAction *getInfoAction; // comic vine
|
||||
QAction *resetComicRatingAction;
|
||||
|
||||
QAction *toogleShowRecentIndicatorAction;
|
||||
|
||||
// edit info actions
|
||||
QAction *selectAllComicsAction;
|
||||
QAction *editSelectedComicsAction;
|
||||
QAction *asignOrderAction;
|
||||
QAction *forceCoverExtractedAction;
|
||||
QAction *deleteComicsAction;
|
||||
QAction *deleteMetadataAction;
|
||||
|
||||
QAction *focusSearchLineAction;
|
||||
QAction *focusComicsViewAction;
|
||||
|
||||
QAction *showEditShortcutsAction;
|
||||
|
||||
QAction *quitAction;
|
||||
|
||||
QAction *updateFolderAction;
|
||||
QAction *updateCurrentFolderAction;
|
||||
QAction *rescanXMLFromCurrentFolderAction;
|
||||
|
||||
// reading lists actions
|
||||
QAction *addReadingListAction;
|
||||
QAction *deleteReadingListAction;
|
||||
QAction *addLabelAction;
|
||||
QAction *renameListAction;
|
||||
//--
|
||||
QAction *addToMenuAction;
|
||||
QAction *addToFavoritesAction;
|
||||
LibraryWindowActions actions;
|
||||
|
||||
#ifdef Y_MAC_UI
|
||||
YACReaderMacOSXToolbar *libraryToolBar;
|
||||
@ -282,7 +191,6 @@ public:
|
||||
void createSettings();
|
||||
void setupOpenglSetting();
|
||||
void setupUI();
|
||||
void createActions();
|
||||
void createToolBars();
|
||||
void createMenus();
|
||||
void createConnections();
|
||||
@ -292,14 +200,6 @@ public:
|
||||
void doModels();
|
||||
void setupCoordinators();
|
||||
|
||||
// ACTIONS MANAGEMENT
|
||||
void disableComicsActions(bool disabled);
|
||||
void disableLibrariesActions(bool disabled);
|
||||
void disableNoUpdatedLibrariesActions(bool disabled);
|
||||
void disableFoldersActions(bool disabled);
|
||||
|
||||
void disableAllActions();
|
||||
|
||||
QString currentPath();
|
||||
QString currentFolderPath();
|
||||
|
||||
@ -415,6 +315,7 @@ public slots:
|
||||
void reloadAfterCopyMove(const QModelIndex &mi);
|
||||
QModelIndex getCurrentFolderIndex();
|
||||
void enableNeededActions();
|
||||
void disableComicsActions(bool disabled);
|
||||
void addFolderToCurrentIndex();
|
||||
void deleteSelectedFolder();
|
||||
void errorDeletingFolder();
|
||||
@ -432,6 +333,7 @@ public slots:
|
||||
void saveSelectedCoversTo();
|
||||
void checkMaxNumLibraries();
|
||||
void showErrorUpgradingLibrary(const QString &path);
|
||||
void setCurrentLibraryAs(FileType fileType);
|
||||
|
||||
void prepareToCloseApp();
|
||||
void closeApp();
|
||||
|
744
YACReaderLibrary/library_window_actions.cpp
Normal file
744
YACReaderLibrary/library_window_actions.cpp
Normal file
@ -0,0 +1,744 @@
|
||||
#include "library_window_actions.h"
|
||||
|
||||
#include "edit_shortcuts_dialog.h"
|
||||
#include "library_window.h"
|
||||
#include "shortcuts_manager.h"
|
||||
#include "yacreader_history_controller.h"
|
||||
|
||||
#include "help_about_dialog.h"
|
||||
#include "export_library_dialog.h"
|
||||
#include "yacreader_content_views_manager.h"
|
||||
#include "server_config_dialog.h"
|
||||
#include "yacreader_folders_view.h"
|
||||
#include "yacreader_options_dialog.h"
|
||||
|
||||
#include <QtCore>
|
||||
#include <QtWidgets>
|
||||
|
||||
LibraryWindowActions::LibraryWindowActions()
|
||||
{
|
||||
}
|
||||
|
||||
void LibraryWindowActions::createActions(LibraryWindow *window, QSettings *settings)
|
||||
{
|
||||
auto tr = [](const char *text) { return QObject::tr(text); };
|
||||
|
||||
backAction = new QAction(window);
|
||||
QIcon icoBackButton;
|
||||
icoBackButton.addFile(addExtensionToIconPath(":/images/main_toolbar/back"), QSize(), QIcon::Normal);
|
||||
// icoBackButton.addPixmap(QPixmap(":/images/main_toolbar/back_disabled.png"), QIcon::Disabled);
|
||||
backAction->setData(BACK_ACTION_YL);
|
||||
backAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(BACK_ACTION_YL));
|
||||
backAction->setIcon(icoBackButton);
|
||||
backAction->setDisabled(true);
|
||||
|
||||
forwardAction = new QAction(window);
|
||||
QIcon icoFordwardButton;
|
||||
icoFordwardButton.addFile(addExtensionToIconPath(":/images/main_toolbar/forward"), QSize(), QIcon::Normal);
|
||||
// icoFordwardButton.addPixmap(QPixmap(":/images/main_toolbar/forward_disabled.png"), QIcon::Disabled);
|
||||
forwardAction->setData(FORWARD_ACTION_YL);
|
||||
forwardAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(FORWARD_ACTION_YL));
|
||||
forwardAction->setIcon(icoFordwardButton);
|
||||
forwardAction->setDisabled(true);
|
||||
|
||||
createLibraryAction = new QAction(window);
|
||||
createLibraryAction->setToolTip(tr("Create a new library"));
|
||||
createLibraryAction->setData(CREATE_LIBRARY_ACTION_YL);
|
||||
createLibraryAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(CREATE_LIBRARY_ACTION_YL));
|
||||
createLibraryAction->setIcon(QIcon(addExtensionToIconPath(":/images/sidebar/newLibraryIcon")));
|
||||
|
||||
openLibraryAction = new QAction(window);
|
||||
openLibraryAction->setToolTip(tr("Open an existing library"));
|
||||
openLibraryAction->setData(OPEN_LIBRARY_ACTION_YL);
|
||||
openLibraryAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(OPEN_LIBRARY_ACTION_YL));
|
||||
openLibraryAction->setIcon(QIcon(addExtensionToIconPath(":/images/sidebar/openLibraryIcon")));
|
||||
|
||||
exportComicsInfoAction = new QAction(tr("Export comics info"), window);
|
||||
exportComicsInfoAction->setToolTip(tr("Export comics info"));
|
||||
exportComicsInfoAction->setData(EXPORT_COMICS_INFO_ACTION_YL);
|
||||
exportComicsInfoAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(EXPORT_COMICS_INFO_ACTION_YL));
|
||||
exportComicsInfoAction->setIcon(QIcon(":/images/menus_icons/exportComicsInfoIcon.svg"));
|
||||
|
||||
importComicsInfoAction = new QAction(tr("Import comics info"), window);
|
||||
importComicsInfoAction->setToolTip(tr("Import comics info"));
|
||||
importComicsInfoAction->setData(IMPORT_COMICS_INFO_ACTION_YL);
|
||||
importComicsInfoAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(IMPORT_COMICS_INFO_ACTION_YL));
|
||||
importComicsInfoAction->setIcon(QIcon(":/images/menus_icons/importComicsInfoIcon.svg"));
|
||||
|
||||
exportLibraryAction = new QAction(tr("Pack covers"), window);
|
||||
exportLibraryAction->setToolTip(tr("Pack the covers of the selected library"));
|
||||
exportLibraryAction->setData(EXPORT_LIBRARY_ACTION_YL);
|
||||
exportLibraryAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(EXPORT_LIBRARY_ACTION_YL));
|
||||
exportLibraryAction->setIcon(QIcon(":/images/menus_icons/exportLibraryIcon.svg"));
|
||||
|
||||
importLibraryAction = new QAction(tr("Unpack covers"), window);
|
||||
importLibraryAction->setToolTip(tr("Unpack a catalog"));
|
||||
importLibraryAction->setData(IMPORT_LIBRARY_ACTION_YL);
|
||||
importLibraryAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(IMPORT_LIBRARY_ACTION_YL));
|
||||
importLibraryAction->setIcon(QIcon(":/images/menus_icons/importLibraryIcon.svg"));
|
||||
|
||||
updateLibraryAction = new QAction(tr("Update library"), window);
|
||||
updateLibraryAction->setToolTip(tr("Update current library"));
|
||||
updateLibraryAction->setData(UPDATE_LIBRARY_ACTION_YL);
|
||||
updateLibraryAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(UPDATE_LIBRARY_ACTION_YL));
|
||||
updateLibraryAction->setIcon(QIcon(":/images/menus_icons/updateLibraryIcon.svg"));
|
||||
|
||||
renameLibraryAction = new QAction(tr("Rename library"), window);
|
||||
renameLibraryAction->setToolTip(tr("Rename current library"));
|
||||
renameLibraryAction->setData(RENAME_LIBRARY_ACTION_YL);
|
||||
renameLibraryAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(RENAME_LIBRARY_ACTION_YL));
|
||||
renameLibraryAction->setIcon(QIcon(":/images/menus_icons/editIcon.svg"));
|
||||
|
||||
removeLibraryAction = new QAction(tr("Remove library"), window);
|
||||
removeLibraryAction->setToolTip(tr("Remove current library from your collection"));
|
||||
removeLibraryAction->setData(REMOVE_LIBRARY_ACTION_YL);
|
||||
removeLibraryAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(REMOVE_LIBRARY_ACTION_YL));
|
||||
removeLibraryAction->setIcon(QIcon(":/images/menus_icons/removeLibraryIcon.svg"));
|
||||
|
||||
rescanLibraryForXMLInfoAction = new QAction(tr("Rescan library for XML info"), window);
|
||||
rescanLibraryForXMLInfoAction->setToolTip(tr("Tries to find XML info embedded in comic files. You only need to do this if the library was created with 9.8.2 or earlier versions or if you are using third party software to embed XML info in the files."));
|
||||
rescanLibraryForXMLInfoAction->setData(RESCAN_LIBRARY_XML_INFO_ACTION_YL);
|
||||
rescanLibraryForXMLInfoAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(RESCAN_LIBRARY_XML_INFO_ACTION_YL));
|
||||
|
||||
openComicAction = new QAction(tr("Open current comic"), window);
|
||||
openComicAction->setToolTip(tr("Open current comic on YACReader"));
|
||||
openComicAction->setData(OPEN_COMIC_ACTION_YL);
|
||||
openComicAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(OPEN_COMIC_ACTION_YL));
|
||||
openComicAction->setIcon(QIcon(":/images/comics_view_toolbar/openInYACReader.svg"));
|
||||
|
||||
saveCoversToAction = new QAction(tr("Save selected covers to..."), window);
|
||||
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"), window);
|
||||
setAsReadAction->setToolTip(tr("Set comic as read"));
|
||||
setAsReadAction->setData(SET_AS_READ_ACTION_YL);
|
||||
setAsReadAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(SET_AS_READ_ACTION_YL));
|
||||
setAsReadAction->setIcon(QIcon(":/images/comics_view_toolbar/setReadButton.svg"));
|
||||
|
||||
setAsNonReadAction = new QAction(tr("Set as unread"), window);
|
||||
setAsNonReadAction->setToolTip(tr("Set comic as unread"));
|
||||
setAsNonReadAction->setData(SET_AS_NON_READ_ACTION_YL);
|
||||
setAsNonReadAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(SET_AS_NON_READ_ACTION_YL));
|
||||
setAsNonReadAction->setIcon(QIcon(":/images/comics_view_toolbar/setUnread.svg"));
|
||||
|
||||
setMangaAction = new QAction(tr("manga"), window);
|
||||
setMangaAction->setToolTip(tr("Set issue as manga"));
|
||||
setMangaAction->setData(SET_AS_MANGA_ACTION_YL);
|
||||
setMangaAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(SET_AS_MANGA_ACTION_YL));
|
||||
setMangaAction->setIcon(QIcon(":/images/comics_view_toolbar/setManga.svg"));
|
||||
|
||||
setNormalAction = new QAction(tr("comic"), window);
|
||||
setNormalAction->setToolTip(tr("Set issue as normal"));
|
||||
setNormalAction->setData(SET_AS_NORMAL_ACTION_YL);
|
||||
setNormalAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(SET_AS_NORMAL_ACTION_YL));
|
||||
setNormalAction->setIcon(QIcon(":/images/comics_view_toolbar/setNormal.svg"));
|
||||
|
||||
setWesternMangaAction = new QAction(tr("western manga"), window);
|
||||
setWesternMangaAction->setToolTip(tr("Set issue as western manga"));
|
||||
setWesternMangaAction->setData(SET_AS_WESTERN_MANGA_ACTION_YL);
|
||||
setWesternMangaAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(SET_AS_WESTERN_MANGA_ACTION_YL));
|
||||
// setWesternMangaAction->setIcon(QIcon(":/images/comics_view_toolbar/setWesternManga.svg"));
|
||||
|
||||
setWebComicAction = new QAction(tr("web comic"), window);
|
||||
setWebComicAction->setToolTip(tr("Set issue as web comic"));
|
||||
setWebComicAction->setData(SET_AS_WEB_COMIC_ACTION_YL);
|
||||
setWebComicAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(SET_AS_WEB_COMIC_ACTION_YL));
|
||||
// setWebComicAction->setIcon(QIcon(":/images/comics_view_toolbar/setWebComic.svg"));
|
||||
|
||||
setYonkomaAction = new QAction(tr("yonkoma"), window);
|
||||
setYonkomaAction->setToolTip(tr("Set issue as yonkoma"));
|
||||
setYonkomaAction->setData(SET_AS_YONKOMA_ACTION_YL);
|
||||
setYonkomaAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(SET_AS_YONKOMA_ACTION_YL));
|
||||
|
||||
showHideMarksAction = new QAction(tr("Show/Hide marks"), window);
|
||||
showHideMarksAction->setToolTip(tr("Show or hide read marks"));
|
||||
showHideMarksAction->setData(SHOW_HIDE_MARKS_ACTION_YL);
|
||||
showHideMarksAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(SHOW_HIDE_MARKS_ACTION_YL));
|
||||
showHideMarksAction->setCheckable(true);
|
||||
showHideMarksAction->setIcon(QIcon(":/images/comics_view_toolbar/showMarks.svg"));
|
||||
showHideMarksAction->setChecked(true);
|
||||
|
||||
toogleShowRecentIndicatorAction = new QAction(tr("Show/Hide recent indicator"), window);
|
||||
toogleShowRecentIndicatorAction->setToolTip(tr("Show or hide recent indicator"));
|
||||
toogleShowRecentIndicatorAction->setData(SHOW_HIDE_RECENT_INDICATOR_ACTION_YL);
|
||||
toogleShowRecentIndicatorAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(SHOW_HIDE_RECENT_INDICATOR_ACTION_YL));
|
||||
toogleShowRecentIndicatorAction->setCheckable(true);
|
||||
toogleShowRecentIndicatorAction->setIcon(QIcon(":/images/comics_view_toolbar/showRecentIndicator.svg"));
|
||||
toogleShowRecentIndicatorAction->setChecked(settings->value(DISPLAY_RECENTLY_INDICATOR, true).toBool());
|
||||
|
||||
#ifndef Q_OS_MACOS
|
||||
toggleFullScreenAction = new QAction(tr("Fullscreen mode on/off"), window);
|
||||
toggleFullScreenAction->setToolTip(tr("Fullscreen mode on/off"));
|
||||
toggleFullScreenAction->setData(TOGGLE_FULL_SCREEN_ACTION_YL);
|
||||
toggleFullScreenAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(TOGGLE_FULL_SCREEN_ACTION_YL));
|
||||
QIcon icoFullscreenButton;
|
||||
icoFullscreenButton.addFile(addExtensionToIconPath(":/images/main_toolbar/fullscreen"), QSize(), QIcon::Normal);
|
||||
toggleFullScreenAction->setIcon(icoFullscreenButton);
|
||||
#endif
|
||||
helpAboutAction = new QAction(window);
|
||||
helpAboutAction->setToolTip(tr("Help, About YACReader"));
|
||||
helpAboutAction->setData(HELP_ABOUT_ACTION_YL);
|
||||
helpAboutAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(HELP_ABOUT_ACTION_YL));
|
||||
QIcon icoHelpButton;
|
||||
icoHelpButton.addFile(addExtensionToIconPath(":/images/main_toolbar/help"), QSize(), QIcon::Normal);
|
||||
helpAboutAction->setIcon(icoHelpButton);
|
||||
|
||||
addFolderAction = new QAction(tr("Add new folder"), window);
|
||||
addFolderAction->setData(ADD_FOLDER_ACTION_YL);
|
||||
addFolderAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(ADD_FOLDER_ACTION_YL));
|
||||
addFolderAction->setToolTip(tr("Add new folder to the current library"));
|
||||
addFolderAction->setIcon(QIcon(addExtensionToIconPath(":/images/sidebar/addNew_sidebar")));
|
||||
|
||||
deleteFolderAction = new QAction(tr("Delete folder"), window);
|
||||
deleteFolderAction->setData(REMOVE_FOLDER_ACTION_YL);
|
||||
deleteFolderAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(REMOVE_FOLDER_ACTION_YL));
|
||||
deleteFolderAction->setToolTip(tr("Delete current folder from disk"));
|
||||
deleteFolderAction->setIcon(QIcon(addExtensionToIconPath(":/images/sidebar/delete_sidebar")));
|
||||
|
||||
setRootIndexAction = new QAction(window);
|
||||
setRootIndexAction->setData(SET_ROOT_INDEX_ACTION_YL);
|
||||
setRootIndexAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(SET_ROOT_INDEX_ACTION_YL));
|
||||
setRootIndexAction->setToolTip(tr("Select root node"));
|
||||
setRootIndexAction->setIcon(QIcon(addExtensionToIconPath(":/images/sidebar/setRoot")));
|
||||
|
||||
expandAllNodesAction = new QAction(window);
|
||||
expandAllNodesAction->setToolTip(tr("Expand all nodes"));
|
||||
expandAllNodesAction->setData(EXPAND_ALL_NODES_ACTION_YL);
|
||||
expandAllNodesAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(EXPAND_ALL_NODES_ACTION_YL));
|
||||
expandAllNodesAction->setIcon(QIcon(addExtensionToIconPath(":/images/sidebar/expand")));
|
||||
|
||||
colapseAllNodesAction = new QAction(window);
|
||||
colapseAllNodesAction->setToolTip(tr("Collapse all nodes"));
|
||||
colapseAllNodesAction->setData(COLAPSE_ALL_NODES_ACTION_YL);
|
||||
colapseAllNodesAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(COLAPSE_ALL_NODES_ACTION_YL));
|
||||
colapseAllNodesAction->setIcon(QIcon(addExtensionToIconPath(":/images/sidebar/colapse")));
|
||||
|
||||
optionsAction = new QAction(window);
|
||||
optionsAction->setToolTip(tr("Show options dialog"));
|
||||
optionsAction->setData(OPTIONS_ACTION_YL);
|
||||
optionsAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(OPTIONS_ACTION_YL));
|
||||
QIcon icoSettingsButton;
|
||||
icoSettingsButton.addFile(addExtensionToIconPath(":/images/main_toolbar/settings"), QSize(), QIcon::Normal);
|
||||
optionsAction->setIcon(icoSettingsButton);
|
||||
|
||||
serverConfigAction = new QAction(window);
|
||||
serverConfigAction->setToolTip(tr("Show comics server options dialog"));
|
||||
serverConfigAction->setData(SERVER_CONFIG_ACTION_YL);
|
||||
serverConfigAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(SERVER_CONFIG_ACTION_YL));
|
||||
QIcon icoServerButton;
|
||||
icoServerButton.addFile(addExtensionToIconPath(":/images/main_toolbar/server"), QSize(), QIcon::Normal);
|
||||
serverConfigAction->setIcon(icoServerButton);
|
||||
|
||||
toggleComicsViewAction = new QAction(tr("Change between comics views"), window);
|
||||
toggleComicsViewAction->setToolTip(tr("Change between comics views"));
|
||||
QIcon icoViewsButton;
|
||||
|
||||
if (!settings->contains(COMICS_VIEW_STATUS) || settings->value(COMICS_VIEW_STATUS) == Flow)
|
||||
icoViewsButton.addFile(addExtensionToIconPath(":/images/main_toolbar/grid"), QSize(), QIcon::Normal);
|
||||
else if (settings->value(COMICS_VIEW_STATUS) == Grid)
|
||||
icoViewsButton.addFile(addExtensionToIconPath(":/images/main_toolbar/info"), QSize(), QIcon::Normal);
|
||||
else
|
||||
icoViewsButton.addFile(addExtensionToIconPath(":/images/main_toolbar/flow"), QSize(), QIcon::Normal);
|
||||
|
||||
toggleComicsViewAction->setData(TOGGLE_COMICS_VIEW_ACTION_YL);
|
||||
toggleComicsViewAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(TOGGLE_COMICS_VIEW_ACTION_YL));
|
||||
toggleComicsViewAction->setIcon(icoViewsButton);
|
||||
// socialAction = new QAction(this);
|
||||
|
||||
//----
|
||||
|
||||
openContainingFolderAction = new QAction(window);
|
||||
openContainingFolderAction->setText(tr("Open folder..."));
|
||||
openContainingFolderAction->setData(OPEN_CONTAINING_FOLDER_ACTION_YL);
|
||||
openContainingFolderAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(OPEN_CONTAINING_FOLDER_ACTION_YL));
|
||||
openContainingFolderAction->setIcon(QIcon(":/images/menus_icons/open_containing_folder.svg"));
|
||||
|
||||
setFolderAsNotCompletedAction = new QAction(window);
|
||||
setFolderAsNotCompletedAction->setText(tr("Set as uncompleted"));
|
||||
setFolderAsNotCompletedAction->setData(SET_FOLDER_AS_NOT_COMPLETED_ACTION_YL);
|
||||
setFolderAsNotCompletedAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(SET_FOLDER_AS_NOT_COMPLETED_ACTION_YL));
|
||||
|
||||
setFolderAsCompletedAction = new QAction(window);
|
||||
setFolderAsCompletedAction->setText(tr("Set as completed"));
|
||||
setFolderAsCompletedAction->setData(SET_FOLDER_AS_COMPLETED_ACTION_YL);
|
||||
setFolderAsCompletedAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(SET_FOLDER_AS_COMPLETED_ACTION_YL));
|
||||
|
||||
setFolderAsReadAction = new QAction(window);
|
||||
setFolderAsReadAction->setText(tr("Set as read"));
|
||||
setFolderAsReadAction->setData(SET_FOLDER_AS_READ_ACTION_YL);
|
||||
setFolderAsReadAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(SET_FOLDER_AS_READ_ACTION_YL));
|
||||
|
||||
setFolderAsUnreadAction = new QAction(window);
|
||||
setFolderAsUnreadAction->setText(tr("Set as unread"));
|
||||
setFolderAsUnreadAction->setData(SET_FOLDER_AS_UNREAD_ACTION_YL);
|
||||
setFolderAsUnreadAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(SET_FOLDER_AS_UNREAD_ACTION_YL));
|
||||
|
||||
setFolderAsMangaAction = new QAction(window);
|
||||
setFolderAsMangaAction->setText(tr("manga"));
|
||||
setFolderAsMangaAction->setData(SET_FOLDER_AS_MANGA_ACTION_YL);
|
||||
setFolderAsMangaAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(SET_FOLDER_AS_MANGA_ACTION_YL));
|
||||
|
||||
setFolderAsNormalAction = new QAction(window);
|
||||
setFolderAsNormalAction->setText(tr("comic"));
|
||||
setFolderAsNormalAction->setData(SET_FOLDER_AS_NORMAL_ACTION_YL);
|
||||
setFolderAsNormalAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(SET_FOLDER_AS_NORMAL_ACTION_YL));
|
||||
|
||||
setFolderAsWesternMangaAction = new QAction(window);
|
||||
setFolderAsWesternMangaAction->setText(tr("western manga (left to right)"));
|
||||
setFolderAsWesternMangaAction->setData(SET_FOLDER_AS_WESTERN_MANGA_ACTION_YL);
|
||||
setFolderAsWesternMangaAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(SET_FOLDER_AS_WESTERN_MANGA_ACTION_YL));
|
||||
|
||||
setFolderAsWebComicAction = new QAction(window);
|
||||
setFolderAsWebComicAction->setText(tr("web comic"));
|
||||
setFolderAsWebComicAction->setData(SET_FOLDER_AS_WEB_COMIC_ACTION_YL);
|
||||
setFolderAsWebComicAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(SET_FOLDER_AS_WEB_COMIC_ACTION_YL));
|
||||
|
||||
setFolderAsYonkomaAction = new QAction(window);
|
||||
setFolderAsYonkomaAction->setText(tr("yonkoma"));
|
||||
setFolderAsYonkomaAction->setData(SET_FOLDER_AS_YONKOMA_ACTION_YL);
|
||||
setFolderAsYonkomaAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(SET_FOLDER_AS_YONKOMA_ACTION_YL));
|
||||
|
||||
//----
|
||||
|
||||
openContainingFolderComicAction = new QAction(window);
|
||||
openContainingFolderComicAction->setText(tr("Open containing folder..."));
|
||||
openContainingFolderComicAction->setData(OPEN_CONTAINING_FOLDER_COMIC_ACTION_YL);
|
||||
openContainingFolderComicAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(OPEN_CONTAINING_FOLDER_COMIC_ACTION_YL));
|
||||
openContainingFolderComicAction->setIcon(QIcon(":/images/menus_icons/open_containing_folder.svg"));
|
||||
|
||||
resetComicRatingAction = new QAction(window);
|
||||
resetComicRatingAction->setText(tr("Reset comic rating"));
|
||||
resetComicRatingAction->setData(RESET_COMIC_RATING_ACTION_YL);
|
||||
resetComicRatingAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(RESET_COMIC_RATING_ACTION_YL));
|
||||
|
||||
// Edit comics actions------------------------------------------------------
|
||||
selectAllComicsAction = new QAction(window);
|
||||
selectAllComicsAction->setText(tr("Select all comics"));
|
||||
selectAllComicsAction->setData(SELECT_ALL_COMICS_ACTION_YL);
|
||||
selectAllComicsAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(SELECT_ALL_COMICS_ACTION_YL));
|
||||
selectAllComicsAction->setIcon(QIcon(":/images/comics_view_toolbar/selectAll.svg"));
|
||||
|
||||
editSelectedComicsAction = new QAction(window);
|
||||
editSelectedComicsAction->setText(tr("Edit"));
|
||||
editSelectedComicsAction->setData(EDIT_SELECTED_COMICS_ACTION_YL);
|
||||
editSelectedComicsAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(EDIT_SELECTED_COMICS_ACTION_YL));
|
||||
editSelectedComicsAction->setIcon(QIcon(":/images/comics_view_toolbar/editComic.svg"));
|
||||
|
||||
asignOrderAction = new QAction(window);
|
||||
asignOrderAction->setText(tr("Assign current order to comics"));
|
||||
asignOrderAction->setData(ASIGN_ORDER_ACTION_YL);
|
||||
asignOrderAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(ASIGN_ORDER_ACTION_YL));
|
||||
asignOrderAction->setIcon(QIcon(":/images/comics_view_toolbar/asignNumber.svg"));
|
||||
|
||||
forceCoverExtractedAction = new QAction(window);
|
||||
forceCoverExtractedAction->setText(tr("Update cover"));
|
||||
forceCoverExtractedAction->setData(FORCE_COVER_EXTRACTED_ACTION_YL);
|
||||
forceCoverExtractedAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(FORCE_COVER_EXTRACTED_ACTION_YL));
|
||||
forceCoverExtractedAction->setIcon(QIcon(":/images/importCover.png"));
|
||||
|
||||
deleteComicsAction = new QAction(window);
|
||||
deleteComicsAction->setText(tr("Delete selected comics"));
|
||||
deleteComicsAction->setData(DELETE_COMICS_ACTION_YL);
|
||||
deleteComicsAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(DELETE_COMICS_ACTION_YL));
|
||||
deleteComicsAction->setIcon(QIcon(":/images/comics_view_toolbar/trash.svg"));
|
||||
|
||||
deleteMetadataAction = new QAction(window);
|
||||
deleteMetadataAction->setText(tr("Delete metadata from selected comics"));
|
||||
deleteMetadataAction->setData(DELETE_METADATA_FROM_COMICS_ACTION_YL);
|
||||
deleteMetadataAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(DELETE_METADATA_FROM_COMICS_ACTION_YL));
|
||||
|
||||
getInfoAction = new QAction(window);
|
||||
getInfoAction->setData(GET_INFO_ACTION_YL);
|
||||
getInfoAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(GET_INFO_ACTION_YL));
|
||||
getInfoAction->setText(tr("Download tags from Comic Vine"));
|
||||
getInfoAction->setIcon(QIcon(":/images/comics_view_toolbar/getInfo.svg"));
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
focusSearchLineAction = new QAction(tr("Focus search line"), window);
|
||||
focusSearchLineAction->setData(FOCUS_SEARCH_LINE_ACTION_YL);
|
||||
focusSearchLineAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(FOCUS_SEARCH_LINE_ACTION_YL));
|
||||
focusSearchLineAction->setIcon(QIcon(":/images/iconSearch.png"));
|
||||
window->addAction(focusSearchLineAction);
|
||||
|
||||
focusComicsViewAction = new QAction(tr("Focus comics view"), window);
|
||||
focusComicsViewAction->setData(FOCUS_COMICS_VIEW_ACTION_YL);
|
||||
focusComicsViewAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(FOCUS_COMICS_VIEW_ACTION_YL));
|
||||
window->addAction(focusComicsViewAction);
|
||||
|
||||
showEditShortcutsAction = new QAction(tr("Edit shortcuts"), window);
|
||||
showEditShortcutsAction->setData(SHOW_EDIT_SHORTCUTS_ACTION_YL);
|
||||
showEditShortcutsAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(SHOW_EDIT_SHORTCUTS_ACTION_YL));
|
||||
showEditShortcutsAction->setShortcutContext(Qt::ApplicationShortcut);
|
||||
window->addAction(showEditShortcutsAction);
|
||||
|
||||
quitAction = new QAction(tr("&Quit"), window);
|
||||
quitAction->setIcon(QIcon(":/images/viewer_toolbar/close.svg"));
|
||||
quitAction->setData(QUIT_ACTION_YL);
|
||||
quitAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(QUIT_ACTION_YL));
|
||||
// TODO: is `quitAction->setMenuRole(QAction::QuitRole);` useful on macOS?
|
||||
window->addAction(quitAction);
|
||||
|
||||
updateFolderAction = new QAction(tr("Update folder"), window);
|
||||
updateFolderAction->setIcon(QIcon(":/images/menus_icons/update_current_folder.svg"));
|
||||
|
||||
updateCurrentFolderAction = new QAction(tr("Update current folder"), window);
|
||||
updateCurrentFolderAction->setData(UPDATE_CURRENT_FOLDER_ACTION_YL);
|
||||
updateCurrentFolderAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(UPDATE_CURRENT_FOLDER_ACTION_YL));
|
||||
updateCurrentFolderAction->setIcon(QIcon(":/images/menus_icons/update_current_folder.svg"));
|
||||
|
||||
rescanXMLFromCurrentFolderAction = new QAction(tr("Scan legacy XML metadata"), window);
|
||||
rescanXMLFromCurrentFolderAction->setData(SCAN_XML_FROM_CURRENT_FOLDER_ACTION_YL);
|
||||
rescanXMLFromCurrentFolderAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(SCAN_XML_FROM_CURRENT_FOLDER_ACTION_YL));
|
||||
|
||||
addReadingListAction = new QAction(tr("Add new reading list"), window);
|
||||
addReadingListAction->setData(ADD_READING_LIST_ACTION_YL);
|
||||
addReadingListAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(ADD_READING_LIST_ACTION_YL));
|
||||
addReadingListAction->setToolTip(tr("Add a new reading list to the current library"));
|
||||
addReadingListAction->setIcon(QIcon(addExtensionToIconPath(":/images/sidebar/addNew_sidebar")));
|
||||
|
||||
deleteReadingListAction = new QAction(tr("Remove reading list"), window);
|
||||
deleteReadingListAction->setData(REMOVE_READING_LIST_ACTION_YL);
|
||||
deleteReadingListAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(REMOVE_READING_LIST_ACTION_YL));
|
||||
deleteReadingListAction->setToolTip(tr("Remove current reading list from the library"));
|
||||
deleteReadingListAction->setIcon(QIcon(addExtensionToIconPath(":/images/sidebar/delete_sidebar")));
|
||||
|
||||
addLabelAction = new QAction(tr("Add new label"), window);
|
||||
addLabelAction->setData(ADD_LABEL_ACTION_YL);
|
||||
addLabelAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(ADD_LABEL_ACTION_YL));
|
||||
addLabelAction->setToolTip(tr("Add a new label to this library"));
|
||||
addLabelAction->setIcon(QIcon(addExtensionToIconPath(":/images/sidebar/addLabelIcon")));
|
||||
|
||||
renameListAction = new QAction(tr("Rename selected list"), window);
|
||||
renameListAction->setData(RENAME_LIST_ACTION_YL);
|
||||
renameListAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(RENAME_LIST_ACTION_YL));
|
||||
renameListAction->setToolTip(tr("Rename any selected labels or lists"));
|
||||
renameListAction->setIcon(QIcon(addExtensionToIconPath(":/images/sidebar/renameListIcon")));
|
||||
|
||||
//--
|
||||
addToMenuAction = new QAction(tr("Add to..."), window);
|
||||
|
||||
addToFavoritesAction = new QAction(tr("Favorites"), window);
|
||||
addToFavoritesAction->setData(ADD_TO_FAVORITES_ACTION_YL);
|
||||
addToFavoritesAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(ADD_TO_FAVORITES_ACTION_YL));
|
||||
addToFavoritesAction->setToolTip(tr("Add selected comics to favorites list"));
|
||||
addToFavoritesAction->setIcon(QIcon(":/images/lists/default_1.svg"));
|
||||
|
||||
// actions not asigned to any widget
|
||||
window->addAction(saveCoversToAction);
|
||||
window->addAction(openContainingFolderAction);
|
||||
window->addAction(updateCurrentFolderAction);
|
||||
window->addAction(resetComicRatingAction);
|
||||
window->addAction(setFolderAsCompletedAction);
|
||||
window->addAction(setFolderAsNotCompletedAction);
|
||||
window->addAction(setFolderAsReadAction);
|
||||
window->addAction(setFolderAsUnreadAction);
|
||||
window->addAction(setFolderAsMangaAction);
|
||||
window->addAction(setFolderAsNormalAction);
|
||||
window->addAction(setFolderAsWesternMangaAction);
|
||||
window->addAction(setFolderAsWebComicAction);
|
||||
window->addAction(setFolderAsYonkomaAction);
|
||||
window->addAction(deleteMetadataAction);
|
||||
window->addAction(rescanXMLFromCurrentFolderAction);
|
||||
#ifndef Q_OS_MACOS
|
||||
window->addAction(toggleFullScreenAction);
|
||||
#endif
|
||||
|
||||
// disable actions
|
||||
disableAllActions();
|
||||
}
|
||||
|
||||
void LibraryWindowActions::createConnections(
|
||||
YACReaderHistoryController *historyController,
|
||||
LibraryWindow *window,
|
||||
HelpAboutDialog *had,
|
||||
ExportLibraryDialog *exportLibraryDialog,
|
||||
YACReaderContentViewsManager *contentViewsManager,
|
||||
EditShortcutsDialog *editShortcutsDialog,
|
||||
YACReaderFoldersView *foldersView,
|
||||
YACReaderOptionsDialog *optionsDialog,
|
||||
ServerConfigDialog *serverConfigDialog)
|
||||
{
|
||||
// history navigation
|
||||
QObject::connect(backAction, &QAction::triggered, historyController, &YACReaderHistoryController::backward);
|
||||
QObject::connect(forwardAction, &QAction::triggered, historyController, &YACReaderHistoryController::forward);
|
||||
//--
|
||||
QObject::connect(historyController, &YACReaderHistoryController::enabledBackward, backAction, &QAction::setEnabled);
|
||||
QObject::connect(historyController, &YACReaderHistoryController::enabledForward, forwardAction, &QAction::setEnabled);
|
||||
// connect(foldersView, SIGNAL(clicked(QModelIndex)), historyController, SLOT(updateHistory(QModelIndex)));
|
||||
|
||||
// actions
|
||||
QObject::connect(createLibraryAction, &QAction::triggered, window, &LibraryWindow::createLibrary);
|
||||
QObject::connect(exportLibraryAction, &QAction::triggered, exportLibraryDialog, &ExportLibraryDialog::open);
|
||||
QObject::connect(importLibraryAction, &QAction::triggered, window, &LibraryWindow::importLibraryPackage);
|
||||
|
||||
QObject::connect(openLibraryAction, &QAction::triggered, window, &LibraryWindow::showAddLibrary);
|
||||
QObject::connect(setAsReadAction, &QAction::triggered, window, &LibraryWindow::setCurrentComicReaded);
|
||||
QObject::connect(setAsNonReadAction, &QAction::triggered, window, &LibraryWindow::setCurrentComicUnreaded);
|
||||
|
||||
QObject::connect(setNormalAction, &QAction::triggered, window, [=]() {
|
||||
window->setSelectedComicsType(FileType::Comic);
|
||||
});
|
||||
QObject::connect(setMangaAction, &QAction::triggered, window, [=]() {
|
||||
window->setSelectedComicsType(FileType::Manga);
|
||||
});
|
||||
QObject::connect(setWesternMangaAction, &QAction::triggered, window, [=]() {
|
||||
window->setSelectedComicsType(FileType::WesternManga);
|
||||
});
|
||||
QObject::connect(setWebComicAction, &QAction::triggered, window, [=]() {
|
||||
window->setSelectedComicsType(FileType::WebComic);
|
||||
});
|
||||
QObject::connect(setYonkomaAction, &QAction::triggered, window, [=]() {
|
||||
window->setSelectedComicsType(FileType::Yonkoma);
|
||||
});
|
||||
|
||||
// comicsInfoManagement
|
||||
QObject::connect(exportComicsInfoAction, &QAction::triggered, window, &LibraryWindow::showExportComicsInfo);
|
||||
QObject::connect(importComicsInfoAction, &QAction::triggered, window, &LibraryWindow::showImportComicsInfo);
|
||||
|
||||
// ContextMenus
|
||||
QObject::connect(openContainingFolderComicAction, &QAction::triggered, window, &LibraryWindow::openContainingFolderComic);
|
||||
QObject::connect(setFolderAsNotCompletedAction, &QAction::triggered, window, &LibraryWindow::setFolderAsNotCompleted);
|
||||
QObject::connect(setFolderAsCompletedAction, &QAction::triggered, window, &LibraryWindow::setFolderAsCompleted);
|
||||
QObject::connect(setFolderAsReadAction, &QAction::triggered, window, &LibraryWindow::setFolderAsRead);
|
||||
QObject::connect(setFolderAsUnreadAction, &QAction::triggered, window, &LibraryWindow::setFolderAsUnread);
|
||||
QObject::connect(openContainingFolderAction, &QAction::triggered, window, &LibraryWindow::openContainingFolder);
|
||||
|
||||
QObject::connect(setFolderAsMangaAction, &QAction::triggered, window, [=]() {
|
||||
window->setFolderType(FileType::Manga);
|
||||
});
|
||||
QObject::connect(setFolderAsNormalAction, &QAction::triggered, window, [=]() {
|
||||
window->setFolderType(FileType::Comic);
|
||||
});
|
||||
QObject::connect(setFolderAsWesternMangaAction, &QAction::triggered, window, [=]() {
|
||||
window->setFolderType(FileType::WesternManga);
|
||||
});
|
||||
QObject::connect(setFolderAsWebComicAction, &QAction::triggered, window, [=]() {
|
||||
window->setFolderType(FileType::WebComic);
|
||||
});
|
||||
QObject::connect(setFolderAsYonkomaAction, &QAction::triggered, window, [=]() {
|
||||
window->setFolderType(FileType::Yonkoma);
|
||||
});
|
||||
|
||||
QObject::connect(resetComicRatingAction, &QAction::triggered, window, &LibraryWindow::resetComicRating);
|
||||
|
||||
// Comicts edition
|
||||
QObject::connect(editSelectedComicsAction, &QAction::triggered, window, &LibraryWindow::showProperties);
|
||||
QObject::connect(asignOrderAction, &QAction::triggered, window, &LibraryWindow::asignNumbers);
|
||||
|
||||
QObject::connect(deleteMetadataAction, &QAction::triggered, window, &LibraryWindow::deleteMetadataFromSelectedComics);
|
||||
|
||||
QObject::connect(deleteComicsAction, &QAction::triggered, window, &LibraryWindow::deleteComics);
|
||||
|
||||
QObject::connect(getInfoAction, &QAction::triggered, window, &LibraryWindow::showComicVineScraper);
|
||||
|
||||
QObject::connect(focusComicsViewAction, &QAction::triggered, contentViewsManager, &YACReaderContentViewsManager::focusComicsViewViaShortcut);
|
||||
|
||||
QObject::connect(showEditShortcutsAction, &QAction::triggered, editShortcutsDialog, &QWidget::show);
|
||||
|
||||
QObject::connect(quitAction, &QAction::triggered, window, &LibraryWindow::closeApp);
|
||||
|
||||
// update folders (partial updates)
|
||||
QObject::connect(updateCurrentFolderAction, &QAction::triggered, window, &LibraryWindow::updateCurrentFolder);
|
||||
QObject::connect(updateFolderAction, &QAction::triggered, window, &LibraryWindow::updateCurrentFolder);
|
||||
|
||||
QObject::connect(rescanXMLFromCurrentFolderAction, &QAction::triggered, window, &LibraryWindow::rescanCurrentFolderForXMLInfo);
|
||||
|
||||
// lists
|
||||
QObject::connect(addReadingListAction, &QAction::triggered, window, &LibraryWindow::addNewReadingList);
|
||||
QObject::connect(deleteReadingListAction, &QAction::triggered, window, &LibraryWindow::deleteSelectedReadingList);
|
||||
QObject::connect(addLabelAction, &QAction::triggered, window, &LibraryWindow::showAddNewLabelDialog);
|
||||
QObject::connect(renameListAction, &QAction::triggered, window, &LibraryWindow::showRenameCurrentList);
|
||||
|
||||
QObject::connect(updateLibraryAction, &QAction::triggered, window, &LibraryWindow::updateLibrary);
|
||||
QObject::connect(renameLibraryAction, &QAction::triggered, window, &LibraryWindow::renameLibrary);
|
||||
// connect(deleteLibraryAction,SIGNAL(triggered()),window,SLOT(deleteLibrary()));
|
||||
QObject::connect(removeLibraryAction, &QAction::triggered, window, &LibraryWindow::removeLibrary);
|
||||
QObject::connect(rescanLibraryForXMLInfoAction, &QAction::triggered, window, &LibraryWindow::rescanLibraryForXMLInfo);
|
||||
QObject::connect(openComicAction, &QAction::triggered, window, QOverload<>::of(&LibraryWindow::openComic));
|
||||
QObject::connect(helpAboutAction, &QAction::triggered, had, &QWidget::show);
|
||||
QObject::connect(addFolderAction, &QAction::triggered, window, &LibraryWindow::addFolderToCurrentIndex);
|
||||
QObject::connect(deleteFolderAction, &QAction::triggered, window, &LibraryWindow::deleteSelectedFolder);
|
||||
QObject::connect(setRootIndexAction, &QAction::triggered, window, &LibraryWindow::setRootIndex);
|
||||
QObject::connect(expandAllNodesAction, &QAction::triggered, foldersView, &QTreeView::expandAll);
|
||||
QObject::connect(colapseAllNodesAction, &QAction::triggered, foldersView, &QTreeView::collapseAll);
|
||||
#ifndef Q_OS_MACOS
|
||||
QObject::connect(toggleFullScreenAction, &QAction::triggered, window, &LibraryWindow::toggleFullScreen);
|
||||
#endif
|
||||
QObject::connect(toggleComicsViewAction, &QAction::triggered, contentViewsManager, &YACReaderContentViewsManager::toggleComicsView);
|
||||
QObject::connect(optionsAction, &QAction::triggered, optionsDialog, &QWidget::show);
|
||||
#ifdef SERVER_RELEASE
|
||||
QObject::connect(serverConfigAction, &QAction::triggered, serverConfigDialog, &QWidget::show);
|
||||
#endif
|
||||
|
||||
QObject::connect(addToFavoritesAction, &QAction::triggered, window, &LibraryWindow::addSelectedComicsToFavorites);
|
||||
|
||||
// save covers
|
||||
QObject::connect(saveCoversToAction, &QAction::triggered, window, &LibraryWindow::saveSelectedCoversTo);
|
||||
}
|
||||
|
||||
void LibraryWindowActions::setUpShortcutsManagement(EditShortcutsDialog *editShortcutsDialog)
|
||||
{
|
||||
|
||||
QList<QAction *> allActions;
|
||||
QList<QAction *> tmpList;
|
||||
|
||||
editShortcutsDialog->addActionsGroup("Comics", QIcon(":/images/shortcuts_group_comics.svg"),
|
||||
tmpList = QList<QAction *>()
|
||||
<< openComicAction
|
||||
<< saveCoversToAction
|
||||
<< setAsReadAction
|
||||
<< setAsNonReadAction
|
||||
<< setMangaAction
|
||||
<< setNormalAction
|
||||
<< openContainingFolderComicAction
|
||||
<< resetComicRatingAction
|
||||
<< selectAllComicsAction
|
||||
<< editSelectedComicsAction
|
||||
<< asignOrderAction
|
||||
<< deleteMetadataAction
|
||||
<< deleteComicsAction
|
||||
<< getInfoAction);
|
||||
|
||||
allActions << tmpList;
|
||||
|
||||
editShortcutsDialog->addActionsGroup("Folders", QIcon(":/images/shortcuts_group_folders.svg"),
|
||||
tmpList = QList<QAction *>()
|
||||
<< addFolderAction
|
||||
<< deleteFolderAction
|
||||
<< setRootIndexAction
|
||||
<< expandAllNodesAction
|
||||
<< colapseAllNodesAction
|
||||
<< openContainingFolderAction
|
||||
<< setFolderAsNotCompletedAction
|
||||
<< setFolderAsCompletedAction
|
||||
<< setFolderAsReadAction
|
||||
<< setFolderAsUnreadAction
|
||||
<< setFolderAsMangaAction
|
||||
<< setFolderAsNormalAction
|
||||
<< updateCurrentFolderAction
|
||||
<< rescanXMLFromCurrentFolderAction);
|
||||
allActions << tmpList;
|
||||
|
||||
editShortcutsDialog->addActionsGroup("Lists", QIcon(":/images/shortcuts_group_folders.svg"), // TODO change icon
|
||||
tmpList = QList<QAction *>()
|
||||
<< addReadingListAction
|
||||
<< deleteReadingListAction
|
||||
<< addLabelAction
|
||||
<< renameListAction);
|
||||
allActions << tmpList;
|
||||
|
||||
editShortcutsDialog->addActionsGroup("General", QIcon(":/images/shortcuts_group_general.svg"),
|
||||
tmpList = QList<QAction *>()
|
||||
<< backAction
|
||||
<< forwardAction
|
||||
<< focusSearchLineAction
|
||||
<< focusComicsViewAction
|
||||
<< helpAboutAction
|
||||
<< optionsAction
|
||||
<< serverConfigAction
|
||||
<< showEditShortcutsAction
|
||||
<< quitAction);
|
||||
|
||||
allActions << tmpList;
|
||||
|
||||
editShortcutsDialog->addActionsGroup("Libraries", QIcon(":/images/shortcuts_group_libraries.svg"),
|
||||
tmpList = QList<QAction *>()
|
||||
<< createLibraryAction
|
||||
<< openLibraryAction
|
||||
<< exportComicsInfoAction
|
||||
<< importComicsInfoAction
|
||||
<< exportLibraryAction
|
||||
<< importLibraryAction
|
||||
<< updateLibraryAction
|
||||
<< renameLibraryAction
|
||||
<< removeLibraryAction
|
||||
<< rescanLibraryForXMLInfoAction);
|
||||
|
||||
allActions << tmpList;
|
||||
|
||||
editShortcutsDialog->addActionsGroup("Visualization", QIcon(":/images/shortcuts_group_visualization.svg"),
|
||||
tmpList = QList<QAction *>()
|
||||
<< showHideMarksAction
|
||||
<< toogleShowRecentIndicatorAction
|
||||
#ifndef Q_OS_MACOS
|
||||
<< toggleFullScreenAction // Think about what to do in macos if the default theme is used
|
||||
#endif
|
||||
<< toggleComicsViewAction);
|
||||
|
||||
allActions << tmpList;
|
||||
|
||||
ShortcutsManager::getShortcutsManager().registerActions(allActions);
|
||||
}
|
||||
|
||||
void LibraryWindowActions::disableComicsActions(bool disabled)
|
||||
{
|
||||
// if there aren't comics, no fullscreen option will be available
|
||||
#ifndef Q_OS_MACOS
|
||||
toggleFullScreenAction->setDisabled(disabled);
|
||||
#endif
|
||||
// edit toolbar
|
||||
openComicAction->setDisabled(disabled);
|
||||
editSelectedComicsAction->setDisabled(disabled);
|
||||
selectAllComicsAction->setDisabled(disabled);
|
||||
asignOrderAction->setDisabled(disabled);
|
||||
setAsReadAction->setDisabled(disabled);
|
||||
setAsNonReadAction->setDisabled(disabled);
|
||||
setNormalAction->setDisabled(disabled);
|
||||
setMangaAction->setDisabled(disabled);
|
||||
setWebComicAction->setDisabled(disabled);
|
||||
setWesternMangaAction->setDisabled(disabled);
|
||||
setYonkomaAction->setDisabled(disabled);
|
||||
// setAllAsReadAction->setDisabled(disabled);
|
||||
// setAllAsNonReadAction->setDisabled(disabled);
|
||||
showHideMarksAction->setDisabled(disabled);
|
||||
deleteMetadataAction->setDisabled(disabled);
|
||||
deleteComicsAction->setDisabled(disabled);
|
||||
// context menu
|
||||
openContainingFolderComicAction->setDisabled(disabled);
|
||||
resetComicRatingAction->setDisabled(disabled);
|
||||
|
||||
getInfoAction->setDisabled(disabled);
|
||||
|
||||
updateCurrentFolderAction->setDisabled(disabled);
|
||||
}
|
||||
void LibraryWindowActions::disableLibrariesActions(bool disabled)
|
||||
{
|
||||
updateLibraryAction->setDisabled(disabled);
|
||||
renameLibraryAction->setDisabled(disabled);
|
||||
removeLibraryAction->setDisabled(disabled);
|
||||
exportComicsInfoAction->setDisabled(disabled);
|
||||
importComicsInfoAction->setDisabled(disabled);
|
||||
exportLibraryAction->setDisabled(disabled);
|
||||
rescanLibraryForXMLInfoAction->setDisabled(disabled);
|
||||
// importLibraryAction->setDisabled(disabled);
|
||||
}
|
||||
|
||||
void LibraryWindowActions::disableNoUpdatedLibrariesActions(bool disabled)
|
||||
{
|
||||
updateLibraryAction->setDisabled(disabled);
|
||||
exportComicsInfoAction->setDisabled(disabled);
|
||||
importComicsInfoAction->setDisabled(disabled);
|
||||
exportLibraryAction->setDisabled(disabled);
|
||||
rescanLibraryForXMLInfoAction->setDisabled(disabled);
|
||||
}
|
||||
|
||||
void LibraryWindowActions::disableFoldersActions(bool disabled)
|
||||
{
|
||||
setRootIndexAction->setDisabled(disabled);
|
||||
expandAllNodesAction->setDisabled(disabled);
|
||||
colapseAllNodesAction->setDisabled(disabled);
|
||||
|
||||
openContainingFolderAction->setDisabled(disabled);
|
||||
|
||||
updateFolderAction->setDisabled(disabled);
|
||||
rescanXMLFromCurrentFolderAction->setDisabled(disabled);
|
||||
}
|
||||
|
||||
void LibraryWindowActions::disableAllActions()
|
||||
{
|
||||
disableComicsActions(true);
|
||||
disableLibrariesActions(true);
|
||||
disableFoldersActions(true);
|
||||
}
|
137
YACReaderLibrary/library_window_actions.h
Normal file
137
YACReaderLibrary/library_window_actions.h
Normal file
@ -0,0 +1,137 @@
|
||||
#ifndef LIBRARY_WINDOW_ACTIONS_H
|
||||
#define LIBRARY_WINDOW_ACTIONS_H
|
||||
|
||||
#include <QAction>
|
||||
#include <QSettings>
|
||||
|
||||
#include "qaction.h"
|
||||
|
||||
class LibraryWindow;
|
||||
class YACReaderHistoryController;
|
||||
class EditShortcutsDialog;
|
||||
class HelpAboutDialog;
|
||||
class ExportLibraryDialog;
|
||||
class YACReaderContentViewsManager;
|
||||
class YACReaderFoldersView;
|
||||
class YACReaderOptionsDialog;
|
||||
class ServerConfigDialog;
|
||||
|
||||
class LibraryWindowActions
|
||||
{
|
||||
public:
|
||||
QAction *backAction;
|
||||
QAction *forwardAction;
|
||||
|
||||
QAction *openComicAction;
|
||||
QAction *createLibraryAction;
|
||||
QAction *openLibraryAction;
|
||||
|
||||
QAction *exportComicsInfoAction;
|
||||
QAction *importComicsInfoAction;
|
||||
|
||||
QAction *exportLibraryAction;
|
||||
QAction *importLibraryAction;
|
||||
|
||||
QAction *rescanLibraryForXMLInfoAction;
|
||||
|
||||
QAction *updateLibraryAction;
|
||||
QAction *removeLibraryAction;
|
||||
QAction *helpAboutAction;
|
||||
QAction *renameLibraryAction;
|
||||
#ifndef Q_OS_MACOS
|
||||
QAction *toggleFullScreenAction;
|
||||
#endif
|
||||
QAction *optionsAction;
|
||||
QAction *serverConfigAction;
|
||||
QAction *toggleComicsViewAction;
|
||||
// QAction * socialAction;
|
||||
|
||||
// tree actions
|
||||
QAction *addFolderAction;
|
||||
QAction *deleteFolderAction;
|
||||
//--
|
||||
QAction *setRootIndexAction;
|
||||
QAction *expandAllNodesAction;
|
||||
QAction *colapseAllNodesAction;
|
||||
|
||||
QAction *openContainingFolderAction;
|
||||
QAction *saveCoversToAction;
|
||||
//--
|
||||
QAction *setFolderAsNotCompletedAction;
|
||||
QAction *setFolderAsCompletedAction;
|
||||
//--
|
||||
QAction *setFolderAsReadAction;
|
||||
QAction *setFolderAsUnreadAction;
|
||||
//--
|
||||
QAction *setFolderAsMangaAction;
|
||||
QAction *setFolderAsNormalAction;
|
||||
QAction *setFolderAsWesternMangaAction;
|
||||
QAction *setFolderAsWebComicAction;
|
||||
QAction *setFolderAsYonkomaAction;
|
||||
|
||||
QAction *openContainingFolderComicAction;
|
||||
QAction *setAsReadAction;
|
||||
QAction *setAsNonReadAction;
|
||||
|
||||
QAction *setMangaAction;
|
||||
QAction *setNormalAction;
|
||||
QAction *setWesternMangaAction;
|
||||
QAction *setWebComicAction;
|
||||
QAction *setYonkomaAction;
|
||||
|
||||
QAction *showHideMarksAction;
|
||||
QAction *getInfoAction; // comic vine
|
||||
QAction *resetComicRatingAction;
|
||||
|
||||
QAction *toogleShowRecentIndicatorAction;
|
||||
|
||||
// edit info actions
|
||||
QAction *selectAllComicsAction;
|
||||
QAction *editSelectedComicsAction;
|
||||
QAction *asignOrderAction;
|
||||
QAction *forceCoverExtractedAction;
|
||||
QAction *deleteComicsAction;
|
||||
QAction *deleteMetadataAction;
|
||||
|
||||
QAction *focusSearchLineAction;
|
||||
QAction *focusComicsViewAction;
|
||||
|
||||
QAction *showEditShortcutsAction;
|
||||
|
||||
QAction *quitAction;
|
||||
|
||||
QAction *updateFolderAction;
|
||||
QAction *updateCurrentFolderAction;
|
||||
QAction *rescanXMLFromCurrentFolderAction;
|
||||
|
||||
// reading lists actions
|
||||
QAction *addReadingListAction;
|
||||
QAction *deleteReadingListAction;
|
||||
QAction *addLabelAction;
|
||||
QAction *renameListAction;
|
||||
//--
|
||||
QAction *addToMenuAction;
|
||||
QAction *addToFavoritesAction;
|
||||
|
||||
LibraryWindowActions();
|
||||
void createActions(LibraryWindow *window, QSettings *settings);
|
||||
void createConnections(
|
||||
YACReaderHistoryController *historyController,
|
||||
LibraryWindow *window,
|
||||
HelpAboutDialog *had,
|
||||
ExportLibraryDialog *exportLibraryDialog,
|
||||
YACReaderContentViewsManager *contentViewsManager,
|
||||
EditShortcutsDialog *editShortcutsDialog,
|
||||
YACReaderFoldersView *foldersView,
|
||||
YACReaderOptionsDialog *optionsDialog,
|
||||
ServerConfigDialog *serverConfigDialog);
|
||||
|
||||
void disableComicsActions(bool disabled);
|
||||
void disableLibrariesActions(bool disabled);
|
||||
void disableNoUpdatedLibrariesActions(bool disabled);
|
||||
void disableFoldersActions(bool disabled);
|
||||
void disableAllActions();
|
||||
void setUpShortcutsManagement(EditShortcutsDialog *editShortcutsDialog);
|
||||
};
|
||||
|
||||
#endif // LIBRARY_WINDOW_ACTIONS_H
|
@ -55,7 +55,7 @@ TrayIconController::TrayIconController(QSettings *settings, LibraryWindow *windo
|
||||
trayIconMenu = new QMenu(this->window);
|
||||
trayIconMenu->addAction(restoreAction);
|
||||
trayIconMenu->addSeparator();
|
||||
trayIconMenu->addAction(this->window->quitAction);
|
||||
trayIconMenu->addAction(this->window->actions.quitAction);
|
||||
|
||||
trayIcon.setContextMenu(trayIconMenu);
|
||||
|
||||
|
@ -1,7 +1,5 @@
|
||||
#include "yacreader_content_views_manager.h"
|
||||
|
||||
#include "yacreader_global.h"
|
||||
|
||||
#include "library_window.h"
|
||||
|
||||
#include "classic_comics_view.h"
|
||||
@ -47,7 +45,7 @@ YACReaderContentViewsManager::YACReaderContentViewsManager(QSettings *settings,
|
||||
doComicsViewConnections();
|
||||
|
||||
comicsViewStack->addWidget(comicsViewTransition = new ComicsViewTransition());
|
||||
comicsViewStack->addWidget(folderContentView = new FolderContentView(parent->toogleShowRecentIndicatorAction));
|
||||
comicsViewStack->addWidget(folderContentView = new FolderContentView(parent->actions.toogleShowRecentIndicatorAction));
|
||||
comicsViewStack->addWidget(emptyLabelWidget = new EmptyLabelWidget());
|
||||
comicsViewStack->addWidget(emptySpecialList = new EmptySpecialListWidget());
|
||||
comicsViewStack->addWidget(emptyReadingList = new EmptyReadingListWidget());
|
||||
@ -163,10 +161,10 @@ void YACReaderContentViewsManager::focusComicsViewViaShortcut()
|
||||
void YACReaderContentViewsManager::disconnectComicsViewConnections(ComicsView *widget)
|
||||
{
|
||||
disconnect(widget, &ComicsView::comicRated, libraryWindow->comicsModel, &ComicModel::updateRating);
|
||||
disconnect(libraryWindow->showHideMarksAction, &QAction::toggled, widget, &ComicsView::setShowMarks);
|
||||
disconnect(libraryWindow->actions.showHideMarksAction, &QAction::toggled, widget, &ComicsView::setShowMarks);
|
||||
disconnect(widget, &ComicsView::selected, libraryWindow, QOverload<>::of(&LibraryWindow::openComic));
|
||||
disconnect(widget, &ComicsView::openComic, libraryWindow, QOverload<const ComicDB &, const ComicModel::Mode>::of(&LibraryWindow::openComic));
|
||||
disconnect(libraryWindow->selectAllComicsAction, &QAction::triggered, widget, &ComicsView::selectAll);
|
||||
disconnect(libraryWindow->actions.selectAllComicsAction, &QAction::triggered, widget, &ComicsView::selectAll);
|
||||
disconnect(comicsView, &ComicsView::copyComicsToCurrentFolder, libraryWindow, &LibraryWindow::copyAndImportComicsToCurrentFolder);
|
||||
disconnect(comicsView, &ComicsView::moveComicsToCurrentFolder, libraryWindow, &LibraryWindow::moveAndImportComicsToCurrentFolder);
|
||||
disconnect(comicsView, &ComicsView::customContextMenuViewRequested, libraryWindow, &LibraryWindow::showComicsViewContextMenu);
|
||||
@ -176,11 +174,11 @@ void YACReaderContentViewsManager::disconnectComicsViewConnections(ComicsView *w
|
||||
void YACReaderContentViewsManager::doComicsViewConnections()
|
||||
{
|
||||
connect(comicsView, &ComicsView::comicRated, libraryWindow->comicsModel, &ComicModel::updateRating);
|
||||
connect(libraryWindow->showHideMarksAction, &QAction::toggled, comicsView, &ComicsView::setShowMarks);
|
||||
connect(libraryWindow->actions.showHideMarksAction, &QAction::toggled, comicsView, &ComicsView::setShowMarks);
|
||||
connect(comicsView, &ComicsView::selected, libraryWindow, QOverload<>::of(&LibraryWindow::openComic));
|
||||
connect(comicsView, &ComicsView::openComic, libraryWindow, QOverload<const ComicDB &, const ComicModel::Mode>::of(&LibraryWindow::openComic));
|
||||
|
||||
connect(libraryWindow->selectAllComicsAction, &QAction::triggered, comicsView, &ComicsView::selectAll);
|
||||
connect(libraryWindow->actions.selectAllComicsAction, &QAction::triggered, comicsView, &ComicsView::selectAll);
|
||||
|
||||
connect(comicsView, &ComicsView::customContextMenuViewRequested, libraryWindow, &LibraryWindow::showComicsViewContextMenu);
|
||||
connect(comicsView, &ComicsView::customContextMenuItemRequested, libraryWindow, &LibraryWindow::showComicsItemContextMenu);
|
||||
@ -224,7 +222,7 @@ void YACReaderContentViewsManager::_toggleComicsView()
|
||||
case Flow: {
|
||||
QIcon icoViewsButton;
|
||||
icoViewsButton.addFile(addExtensionToIconPath(":/images/main_toolbar/info"), QSize(), QIcon::Normal);
|
||||
libraryWindow->toggleComicsViewAction->setIcon(icoViewsButton);
|
||||
libraryWindow->actions.toggleComicsViewAction->setIcon(icoViewsButton);
|
||||
#ifdef Y_MAC_UI
|
||||
libraryWindow->libraryToolBar->updateViewSelectorIcon(icoViewsButton);
|
||||
#endif
|
||||
@ -241,7 +239,7 @@ void YACReaderContentViewsManager::_toggleComicsView()
|
||||
case Grid: {
|
||||
QIcon icoViewsButton;
|
||||
icoViewsButton.addFile(addExtensionToIconPath(":/images/main_toolbar/flow"), QSize(), QIcon::Normal);
|
||||
libraryWindow->toggleComicsViewAction->setIcon(icoViewsButton);
|
||||
libraryWindow->actions.toggleComicsViewAction->setIcon(icoViewsButton);
|
||||
#ifdef Y_MAC_UI
|
||||
libraryWindow->libraryToolBar->updateViewSelectorIcon(icoViewsButton);
|
||||
#endif
|
||||
@ -257,7 +255,7 @@ void YACReaderContentViewsManager::_toggleComicsView()
|
||||
case Info: {
|
||||
QIcon icoViewsButton;
|
||||
icoViewsButton.addFile(addExtensionToIconPath(":/images/main_toolbar/grid"), QSize(), QIcon::Normal);
|
||||
libraryWindow->toggleComicsViewAction->setIcon(icoViewsButton);
|
||||
libraryWindow->actions.toggleComicsViewAction->setIcon(icoViewsButton);
|
||||
#ifdef Y_MAC_UI
|
||||
libraryWindow->libraryToolBar->updateViewSelectorIcon(icoViewsButton);
|
||||
#endif
|
||||
|
@ -71,13 +71,6 @@ Folder &Folder::operator=(const Folder &other)
|
||||
return *this;
|
||||
}
|
||||
|
||||
Folder Folder::rootFolder()
|
||||
{
|
||||
auto root = Folder(1, 1, "root", "/");
|
||||
root.type = YACReader::FileType::Comic; // TODO: make this configurable by the user so it can set a default type for a library
|
||||
return root;
|
||||
}
|
||||
|
||||
Folder::Folder(const QString &folderName, const QString &folderPath)
|
||||
: knownParent(false),
|
||||
knownId(false),
|
||||
|
@ -41,8 +41,6 @@ public:
|
||||
Folder(const Folder &folder);
|
||||
Folder &operator=(const Folder &other);
|
||||
|
||||
static Folder rootFolder();
|
||||
|
||||
inline void setId(qulonglong sid)
|
||||
{
|
||||
id = sid;
|
||||
|
Loading…
Reference in New Issue
Block a user