diff --git a/YACReaderLibrary/classic_comics_view.cpp b/YACReaderLibrary/classic_comics_view.cpp index 4a72fd54..ef0b2334 100644 --- a/YACReaderLibrary/classic_comics_view.cpp +++ b/YACReaderLibrary/classic_comics_view.cpp @@ -94,7 +94,7 @@ ClassicComicsView::ClassicComicsView(QWidget *parent) hideFlowViewAction->setText(tr("Hide comic flow")); hideFlowViewAction->setData(HIDE_COMIC_VIEW_ACTION_YL); hideFlowViewAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(HIDE_COMIC_VIEW_ACTION_YL)); - hideFlowViewAction->setIcon(QIcon(":/images/hideComicFlow.png")); + hideFlowViewAction->setIcon(QIcon(":/images/comics_view_toolbar/hideComicFlow.png")); hideFlowViewAction->setCheckable(true); hideFlowViewAction->setChecked(false); @@ -337,12 +337,12 @@ void ClassicComicsView::removeItemsFromFlow(const QModelIndex &parent, int from, void ClassicComicsView::closeEvent(QCloseEvent *event) { + toolbar->removeAction(toolBarStretchAction); + toolbar->removeAction(hideFlowViewAction); + saveTableHeadersStatus(); saveSplitterStatus(); ComicsView::closeEvent(event); - - toolbar->removeAction(toolBarStretchAction); - toolbar->removeAction(hideFlowViewAction); } void ClassicComicsView::setupSearchingIcon() diff --git a/YACReaderLibrary/grid_comics_view.cpp b/YACReaderLibrary/grid_comics_view.cpp index 8f4602a5..1fdae2ce 100644 --- a/YACReaderLibrary/grid_comics_view.cpp +++ b/YACReaderLibrary/grid_comics_view.cpp @@ -1,16 +1,37 @@ #include "grid_comics_view.h" -#include #include +#include -#include "yacreader_global.h" #include "comic.h" #include "comic_files_manager.h" #include "QsLog.h" +#include "yacreader_global.h" +#include "yacreader_tool_bar_stretch.h" + +//values relative to visible cells +const unsigned int YACREADER_MIN_GRID_ZOOM_WIDTH = 156; +const unsigned int YACREADER_MAX_GRID_ZOOM_WIDTH = 312; + +//GridView cells +const unsigned int YACREADER_MIN_CELL_CUSTOM_HEIGHT = 295; +const unsigned int YACREADER_MIN_CELL_CUSTOM_WIDTH = 185; + +//Covers +const unsigned int YACREADER_MAX_COVER_HEIGHT = 236; +const unsigned int YACREADER_MIN_COVER_WIDTH = YACREADER_MIN_GRID_ZOOM_WIDTH; + +//visible cells (realCell in qml), grid cells size is used to create faux inner margings +const unsigned int YACREADER_MIN_ITEM_HEIGHT = YACREADER_MAX_COVER_HEIGHT + 51; //51 is the height of the bottom rectangle used for title and other info +const unsigned int YACREADER_MIN_ITEM_WIDTH = YACREADER_MIN_COVER_WIDTH; + GridComicsView::GridComicsView(QWidget *parent) : ComicsView(parent),_selectionModel(NULL) { + settings = new QSettings(YACReader::getSettingsPath()+"/YACReaderLibrary.ini", QSettings::IniFormat, this); + settings->beginGroup("libraryConfig"); + qmlRegisterType("comicModel",1,0,"TableModel"); view = new QQuickView(); @@ -20,6 +41,46 @@ GridComicsView::GridComicsView(QWidget *parent) : container->setFocusPolicy(Qt::TabFocus); view->setSource(QUrl("qrc:/qml/GridComicsView.qml")); + createCoverSizeSliderWidget(); + + int coverSize = settings->value(COMICS_GRID_COVER_SIZES, YACREADER_MIN_COVER_WIDTH).toInt(); + + coverSizeSlider->setValue(coverSize); + setCoversSize(coverSize); + + QQmlContext *ctxt = view->rootContext(); + +#ifdef Q_OS_MAC + ctxt->setContextProperty("backgroundColor", "#F6F6F6"); + ctxt->setContextProperty("cellColor", "#FFFFFF"); + ctxt->setContextProperty("selectedColor", "#FFFFFF"); + ctxt->setContextProperty("selectedBorderColor", "#007AFF"); + ctxt->setContextProperty("borderColor", "#DBDBDB"); + ctxt->setContextProperty("titleColor", "#121212"); + ctxt->setContextProperty("textColor", "#636363"); + //fonts settings + ctxt->setContextProperty("fontSize", 11); + ctxt->setContextProperty("fontFamily", QApplication::font().family()); + ctxt->setContextProperty("fontSpacing", 0.5); + +#else + ctxt->setContextProperty("backgroundColor", "#2A2A2A"); + ctxt->setContextProperty("cellColor", "#212121"); + ctxt->setContextProperty("selectedColor", "#121212"); + ctxt->setContextProperty("selectedBorderColor", "#121212"); + ctxt->setContextProperty("borderColor", "#121212"); + ctxt->setContextProperty("titleColor", "#FFFFFF"); + ctxt->setContextProperty("textColor", "#A8A8A8"); + ctxt->setContextProperty("dropShadow",false); + //fonts settings + int fontSize = QApplication::font().pointSize(); + if(fontSize == -1) + fontSize = QApplication::font().pixelSize(); + ctxt->setContextProperty("fontSize", fontSize); + ctxt->setContextProperty("fontFamily", QApplication::font().family()); + ctxt->setContextProperty("fontSpacing", 0.5); +#endif + setShowMarks(true);//TODO save this in settings QVBoxLayout * l = new QVBoxLayout; @@ -38,11 +99,40 @@ GridComicsView::~GridComicsView() delete view; } +void GridComicsView::createCoverSizeSliderWidget() +{ + toolBarStretch = new YACReaderToolBarStretch(this); + coverSizeSliderWidget = new QWidget(this); + coverSizeSliderWidget->setFixedWidth(200); + coverSizeSlider = new QSlider(); + coverSizeSlider->setOrientation(Qt::Horizontal); + coverSizeSlider->setRange(YACREADER_MIN_GRID_ZOOM_WIDTH, YACREADER_MAX_GRID_ZOOM_WIDTH); + + QHBoxLayout * horizontalLayout = new QHBoxLayout(); + QLabel * smallLabel = new QLabel(); + smallLabel->setPixmap(QPixmap(":/images/comics_view_toolbar/small_size_grid_zoom.png")); + horizontalLayout->addWidget(smallLabel); + horizontalLayout->addWidget(coverSizeSlider, 0, Qt::AlignVCenter); + QLabel * bigLabel = new QLabel(); + bigLabel->setPixmap(QPixmap(":/images/comics_view_toolbar/big_size_grid_zoom.png")); + horizontalLayout->addWidget(bigLabel); + horizontalLayout->addSpacing(10); + horizontalLayout->setMargin(0); + + coverSizeSliderWidget->setLayout(horizontalLayout); + //TODO add shortcuts (ctrl-+ and ctrl-- for zooming in out, + ctrl-0 for reseting the zoom) + + connect(coverSizeSlider, SIGNAL(valueChanged(int)), this, SLOT(setCoversSize(int))); +} + void GridComicsView::setToolBar(QToolBar *toolBar) { QLOG_INFO() << "setToolBar"; static_cast(this->layout())->insertWidget(1,toolBar); this->toolbar = toolBar; + + toolBarStretchAction = toolBar->addWidget(toolBarStretch); + coverSizeSliderAction = toolBar->addWidget(coverSizeSliderWidget); } void GridComicsView::setModel(ComicModel *model) @@ -74,36 +164,6 @@ void GridComicsView::setModel(ComicModel *model) setCurrentIndex(model->index(0,0)); } -#ifdef Q_OS_MAC - ctxt->setContextProperty("backgroundColor", "#F5F5F5"); - ctxt->setContextProperty("cellColor", "#FFFFFF"); - ctxt->setContextProperty("selectedColor", "#FFFFFF"); - ctxt->setContextProperty("selectedBorderColor", "#007AFF"); - ctxt->setContextProperty("borderColor", "#DBDBDB"); - ctxt->setContextProperty("titleColor", "#121212"); - ctxt->setContextProperty("textColor", "#636363"); - //fonts settings - ctxt->setContextProperty("fontSize", 11); - ctxt->setContextProperty("fontFamily", QApplication::font().family()); - ctxt->setContextProperty("fontSpacing", 0.5); - -#else - ctxt->setContextProperty("backgroundColor", "#2A2A2A"); - ctxt->setContextProperty("cellColor", "#212121"); - ctxt->setContextProperty("selectedColor", "#121212"); - ctxt->setContextProperty("selectedBorderColor", "#121212"); - ctxt->setContextProperty("borderColor", "#121212"); - ctxt->setContextProperty("titleColor", "#FFFFFF"); - ctxt->setContextProperty("textColor", "#A8A8A8"); - ctxt->setContextProperty("dropShadow",false); - //fonts settings - int fontSize = QApplication::font().pointSize(); - if(fontSize == -1) - fontSize = QApplication::font().pixelSize(); - ctxt->setContextProperty("fontSize", fontSize); - ctxt->setContextProperty("fontFamily", QApplication::font().family()); - ctxt->setContextProperty("fontSpacing", 0.5); -#endif } @@ -185,6 +245,32 @@ void GridComicsView::requestedContextMenu(const QPoint &point) emit customContextMenuViewRequested(point); } +void GridComicsView::setCoversSize(int width) +{ + QQmlContext *ctxt = view->rootContext(); + + QQuickItem * grid = view->rootObject()->findChild(QStringLiteral("grid")); + + if(grid != 0) + { + QLOG_INFO() << "method invoked"; + QVariant cellCustomWidth = (width * YACREADER_MIN_CELL_CUSTOM_WIDTH) / YACREADER_MIN_GRID_ZOOM_WIDTH; + QMetaObject::invokeMethod(grid, "calculateCellWidths", + Q_ARG(QVariant, cellCustomWidth)); + } + + int cellBottomMarging = 8 * (1 + 2*(1 - (float(YACREADER_MAX_GRID_ZOOM_WIDTH - width) / (YACREADER_MAX_GRID_ZOOM_WIDTH - YACREADER_MIN_GRID_ZOOM_WIDTH))) ); + + ctxt->setContextProperty("cellCustomHeight", ((width * YACREADER_MAX_COVER_HEIGHT) / YACREADER_MIN_COVER_WIDTH) + 51 + cellBottomMarging); + ctxt->setContextProperty("cellCustomWidth", (width * YACREADER_MIN_CELL_CUSTOM_WIDTH) / YACREADER_MIN_COVER_WIDTH ); + + ctxt->setContextProperty("itemWidth", width); + ctxt->setContextProperty("itemHeight", ((width * YACREADER_MAX_COVER_HEIGHT) / YACREADER_MIN_COVER_WIDTH) + 51); + + ctxt->setContextProperty("coverWidth", width); + ctxt->setContextProperty("coverHeight", (width * YACREADER_MAX_COVER_HEIGHT) / YACREADER_MIN_COVER_WIDTH); +} + QSize GridComicsView::sizeHint() { QLOG_INFO() << "sizeHint"; @@ -208,7 +294,7 @@ void GridComicsView::startDrag() QLOG_DEBUG() << "performDrag"; QDrag *drag = new QDrag(this); drag->setMimeData(model->mimeData(_selectionModel->selectedRows())); - drag->setPixmap(QPixmap(":/images/openInYACReader.png")); //TODO add better image + drag->setPixmap(QPixmap(":/images/comics_view_toolbar/openInYACReader.png")); //TODO add better image /*Qt::DropAction dropAction =*/ drag->exec(Qt::CopyAction | Qt::MoveAction, Qt::CopyAction); } @@ -333,6 +419,9 @@ void GridComicsView::setShowMarks(bool show) void GridComicsView::closeEvent(QCloseEvent *event) { + toolbar->removeAction(toolBarStretchAction); + toolbar->removeAction(coverSizeSliderAction); + QLOG_INFO() << "closeEvent"; QObject *object = view->rootObject(); QMetaObject::invokeMethod(object, "exit"); @@ -340,4 +429,7 @@ void GridComicsView::closeEvent(QCloseEvent *event) view->close(); event->accept(); ComicsView::closeEvent(event); + + //save settings + settings->setValue(COMICS_GRID_COVER_SIZES, coverSizeSlider->value()); } diff --git a/YACReaderLibrary/grid_comics_view.h b/YACReaderLibrary/grid_comics_view.h index 77d3c343..da8a894c 100644 --- a/YACReaderLibrary/grid_comics_view.h +++ b/YACReaderLibrary/grid_comics_view.h @@ -10,6 +10,7 @@ class QItemSelectionModel; class QQuickView; class QQuickView; +class YACReaderToolBarStretch; class GridComicsView : public ComicsView { @@ -65,14 +66,22 @@ public slots: protected slots: void requestedContextMenu(const QPoint & point); + void setCoversSize(int width); private: + QSettings * settings; QToolBar * toolbar; + YACReaderToolBarStretch * toolBarStretch; + QAction * toolBarStretchAction; + QWidget * coverSizeSliderWidget; + QSlider * coverSizeSlider; + QAction * coverSizeSliderAction; QItemSelectionModel * _selectionModel; QQuickView *view; QWidget *container; bool dummy; void closeEvent ( QCloseEvent * event ); + void createCoverSizeSliderWidget(); }; diff --git a/YACReaderLibrary/images.qrc b/YACReaderLibrary/images.qrc index caffa5a1..3eb7b46c 100644 --- a/YACReaderLibrary/images.qrc +++ b/YACReaderLibrary/images.qrc @@ -1,88 +1,99 @@ - ../images/sidebar/folder.png - ../images/sidebar/folder_finished.png - ../images/icon.png - ../images/iconLibrary.png - ../images/new.png - ../images/openLibrary.png - ../images/removeLibraryIcon.png - ../images/updateLibraryIcon.png - ../images/comicFolder.png - ../images/notCover.png - ../images/edit.png - ../images/editIcon.png - ../images/flow1.png - ../images/flow2.png - ../images/flow3.png - ../images/flow4.png - ../images/flow5.png - ../images/importLibrary.png - ../images/importLibraryIcon.png - ../images/exportLibrary.png - ../images/exportLibraryIcon.png - ../images/importLibraryIcon.png - ../images/open.png - ../images/coversPackage.png - ../images/setRead.png - ../images/setUnread.png - ../images/showMarks.png - ../images/editComic.png - ../images/selectAll.png - ../images/hideComicFlow.png - ../images/exportComicsInfo.png - ../images/importComicsInfo.png - ../images/exportComicsInfoIcon.png - ../images/importComicsInfoIcon.png - ../images/db.png - ../images/asignNumber.png - ../images/defaultCover.png - ../images/iphoneConfig.png - ../images/onStartFlowSelection.png - ../images/onStartFlowSelection_es.png - ../images/useNewFlowButton.png - ../images/useOldFlowButton.png - ../images/serverConfigBackground.png - ../images/noLibrariesIcon.png - ../images/noLibrariesLine.png - ../images/importingIcon.png - ../images/updatingIcon.png - ../images/importTopCoversDecoration.png - ../images/importBottomCoversDecoration.png - ../images/glowLine.png - ../images/readRibbon.png - ../images/readingRibbon.png - ../images/shownCovers.png - ../images/hiddenCovers.png - ../images/trash.png - ../images/setReadButton.png - ../images/openInYACReader.png - ../images/main_toolbar/divider.png - ../images/sidebar/collapsed_branch_osx.png - ../images/sidebar/expanded_branch_osx.png - ../images/sidebar/libraryIconSelected.png - ../images/sidebar/libraryOptions.png - ../images/sidebar/branch-open.png - ../images/sidebar/branch-closed.png - ../images/sidebar/expanded_branch_selected.png - ../images/sidebar/collapsed_branch_selected.png - ../images/previousCoverPage.png - ../images/nextCoverPage.png - ../images/getInfo.png + ../images/accept_shortcut.png + ../images/clear_shortcut.png + ../images/comic_vine/downArrow.png + ../images/comic_vine/nextPage.png + ../images/comic_vine/previousPage.png ../images/comic_vine/radioChecked.png ../images/comic_vine/radioUnchecked.png ../images/comic_vine/radioUnchecked.png ../images/comic_vine/rowDown.png ../images/comic_vine/rowUp.png - ../images/comic_vine/previousPage.png - ../images/comic_vine/nextPage.png - ../images/comic_vine/downArrow.png ../images/comic_vine/upArrow.png - ../images/find_folder.png - ../images/clear_shortcut.png - ../images/accept_shortcut.png + ../images/comicFolder.png + ../images/comics_view_toolbar/asignNumber.png + ../images/comics_view_toolbar/asignNumber@2x.png + ../images/comics_view_toolbar/big_size_grid_zoom.png + ../images/comics_view_toolbar/big_size_grid_zoom@2x.png + ../images/comics_view_toolbar/editComic.png + ../images/comics_view_toolbar/editComic@2x.png + ../images/comics_view_toolbar/getInfo.png + ../images/comics_view_toolbar/getInfo@2x.png + ../images/comics_view_toolbar/hideComicFlow.png + ../images/comics_view_toolbar/hideComicFlow@2x.png + ../images/comics_view_toolbar/openInYACReader.png + ../images/comics_view_toolbar/openInYACReader@2x.png + ../images/comics_view_toolbar/selectAll.png + ../images/comics_view_toolbar/selectAll@2x.png + ../images/comics_view_toolbar/setReadButton.png + ../images/comics_view_toolbar/setReadButton@2x.png + ../images/comics_view_toolbar/setUnread.png + ../images/comics_view_toolbar/setUnread@2x.png + ../images/comics_view_toolbar/showMarks.png + ../images/comics_view_toolbar/showMarks@2x.png + ../images/comics_view_toolbar/small_size_grid_zoom.png + ../images/comics_view_toolbar/small_size_grid_zoom@2x.png + ../images/comics_view_toolbar/trash.png + ../images/comics_view_toolbar/trash.png + ../images/coversPackage.png + ../images/db.png + ../images/defaultCover.png + ../images/edit.png + ../images/empty_current_readings.png + ../images/empty_favorites.png + ../images/empty_label.png + ../images/exportComicsInfo.png + ../images/exportLibrary.png ../images/f_overlayed.png ../images/f_overlayed_retina.png + ../images/find_folder.png + ../images/flow1.png + ../images/flow2.png + ../images/flow3.png + ../images/flow4.png + ../images/flow5.png + ../images/glowLine.png + ../images/hiddenCovers.png + ../images/icon.png + ../images/iconLibrary.png + ../images/importBottomCoversDecoration.png + ../images/importComicsInfo.png + ../images/importingIcon.png + ../images/importLibrary.png + ../images/importTopCoversDecoration.png + ../images/iphoneConfig.png + ../images/main_toolbar/divider.png + ../images/menus_icons/editIcon.png + ../images/menus_icons/editIcon@2x.png + ../images/menus_icons/exportComicsInfoIcon.png + ../images/menus_icons/exportComicsInfoIcon@2x.png + ../images/menus_icons/exportLibraryIcon.png + ../images/menus_icons/exportLibraryIcon@2x.png + ../images/menus_icons/importComicsInfoIcon.png + ../images/menus_icons/importComicsInfoIcon@2x.png + ../images/menus_icons/importLibraryIcon.png + ../images/menus_icons/importLibraryIcon@2x.png + ../images/menus_icons/open.png + ../images/menus_icons/open@2x.png + ../images/menus_icons/removeLibraryIcon.png + ../images/menus_icons/removeLibraryIcon@2x.png + ../images/menus_icons/updateLibraryIcon.png + ../images/menus_icons/updateLibraryIcon@2x.png + ../images/new.png + ../images/nextCoverPage.png + ../images/noLibrariesIcon.png + ../images/noLibrariesLine.png + ../images/notCover.png + ../images/onStartFlowSelection.png + ../images/onStartFlowSelection_es.png + ../images/openLibrary.png + ../images/previousCoverPage.png + ../images/readingRibbon.png + ../images/readRibbon.png + ../images/searching_icon.png + ../images/serverConfigBackground.png + ../images/setRead.png ../images/shortcuts_group_comics.png ../images/shortcuts_group_folders.png ../images/shortcuts_group_general.png @@ -91,9 +102,20 @@ ../images/shortcuts_group_page.png ../images/shortcuts_group_reading.png ../images/shortcuts_group_visualization.png - ../images/searching_icon.png - ../images/empty_label.png - ../images/empty_current_readings.png - ../images/empty_favorites.png + ../images/shownCovers.png + ../images/sidebar/branch-closed.png + ../images/sidebar/branch-open.png + ../images/sidebar/collapsed_branch_osx.png + ../images/sidebar/collapsed_branch_selected.png + ../images/sidebar/expanded_branch_osx.png + ../images/sidebar/expanded_branch_selected.png + ../images/sidebar/folder.png + ../images/sidebar/folder_finished.png + ../images/sidebar/libraryIconSelected.png + ../images/sidebar/libraryOptions.png + ../images/sidebar/libraryOptions@2x.png + ../images/updatingIcon.png + ../images/useNewFlowButton.png + ../images/useOldFlowButton.png diff --git a/YACReaderLibrary/library_window.cpp b/YACReaderLibrary/library_window.cpp index f88d03c4..ed13b638 100644 --- a/YACReaderLibrary/library_window.cpp +++ b/YACReaderLibrary/library_window.cpp @@ -504,49 +504,49 @@ void LibraryWindow::createActions() 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/exportComicsInfoIcon.png")); + exportComicsInfoAction->setIcon(QIcon(":/images/menus_icons/exportComicsInfoIcon.png")); importComicsInfoAction = new QAction(tr("Import comics info"),this); 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/importComicsInfoIcon.png")); + importComicsInfoAction->setIcon(QIcon(":/images/menus_icons/importComicsInfoIcon.png")); exportLibraryAction = new QAction(tr("Pack covers"),this); 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/exportLibraryIcon.png")); + exportLibraryAction->setIcon(QIcon(":/images/menus_icons/exportLibraryIcon.png")); importLibraryAction = new QAction(tr("Unpack covers"),this); 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/importLibraryIcon.png")); + importLibraryAction->setIcon(QIcon(":/images/menus_icons/importLibraryIcon.png")); updateLibraryAction = new QAction(tr("Update library"),this); 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/updateLibraryIcon.png")); + updateLibraryAction->setIcon(QIcon(":/images/menus_icons/updateLibraryIcon.png")); renameLibraryAction = new QAction(tr("Rename library"),this); 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/editIcon.png")); + renameLibraryAction->setIcon(QIcon(":/images/menus_icons/editIcon.png")); removeLibraryAction = new QAction(tr("Remove library"),this); 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/removeLibraryIcon.png")); + removeLibraryAction->setIcon(QIcon(":/images/menus_icons/removeLibraryIcon.png")); openComicAction = new QAction(tr("Open current comic"),this); 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/openInYACReader.png")); + openComicAction->setIcon(QIcon(":/images/comics_view_toolbar/openInYACReader.png")); saveCoversToAction = new QAction(tr("Save selected covers to..."),this); saveCoversToAction->setToolTip(tr("Save covers of the selected comics as JPG files")); @@ -557,28 +557,28 @@ void LibraryWindow::createActions() 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/setReadButton.png")); + setAsReadAction->setIcon(QIcon(":/images/comics_view_toolbar/setReadButton.png")); setAsNonReadAction = new QAction(tr("Set as unread"),this); 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/setUnread.png")); + setAsNonReadAction->setIcon(QIcon(":/images/comics_view_toolbar/setUnread.png")); /*setAllAsReadAction = new QAction(tr("Set all as read"),this); setAllAsReadAction->setToolTip(tr("Set all comics as read")); - setAllAsReadAction->setIcon(QIcon(":/images/setAllRead.png")); + setAllAsReadAction->setIcon(QIcon(":/images/comics_view_toolbar/setAllRead.png")); setAllAsNonReadAction = new QAction(tr("Set all as unread"),this); setAllAsNonReadAction->setToolTip(tr("Set all comics as unread")); - setAllAsNonReadAction->setIcon(QIcon(":/images/setAllUnread.png"));*/ + setAllAsNonReadAction->setIcon(QIcon(":/images/comics_view_toolbar/setAllUnread.png"));*/ showHideMarksAction = new QAction(tr("Show/Hide marks"),this); 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/showMarks.png")); + showHideMarksAction->setIcon(QIcon(":/images/comics_view_toolbar/showMarks.png")); showHideMarksAction->setChecked(true); #ifndef Q_OS_MAC toggleFullScreenAction = new QAction(tr("Fullscreen mode on/off"),this); @@ -659,7 +659,7 @@ void LibraryWindow::createActions() 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/open.png")); + openContainingFolderAction->setIcon(QIcon(":/images/menus_icons/open.png")); setFolderAsNotCompletedAction = new QAction(this); setFolderAsNotCompletedAction->setText(tr("Set as uncompleted")); @@ -685,7 +685,7 @@ void LibraryWindow::createActions() 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/open.png")); + openContainingFolderComicAction->setIcon(QIcon(":/images/menus_icons/open.png")); resetComicRatingAction = new QAction(this); resetComicRatingAction->setText(tr("Reset comic rating")); @@ -697,19 +697,19 @@ void LibraryWindow::createActions() 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/selectAll.png")); + selectAllComicsAction->setIcon(QIcon(":/images/comics_view_toolbar/selectAll.png")); editSelectedComicsAction = new QAction(this); 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/editComic.png")); + editSelectedComicsAction->setIcon(QIcon(":/images/comics_view_toolbar/editComic.png")); asignOrderAction = new QAction(this); asignOrderAction->setText(tr("Asign current order to comics")); asignOrderAction->setData(ASIGN_ORDER_ACTION_YL); asignOrderAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(ASIGN_ORDER_ACTION_YL)); - asignOrderAction->setIcon(QIcon(":/images/asignNumber.png")); + asignOrderAction->setIcon(QIcon(":/images/comics_view_toolbar/asignNumber.png")); forceCoverExtractedAction = new QAction(this); forceCoverExtractedAction->setText(tr("Update cover")); @@ -721,13 +721,13 @@ void LibraryWindow::createActions() 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/trash.png")); + deleteComicsAction->setIcon(QIcon(":/images/comics_view_toolbar/trash.png")); getInfoAction = new QAction(this); 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/getInfo.png")); + getInfoAction->setIcon(QIcon(":/images/comics_view_toolbar/getInfo.png")); //------------------------------------------------------------------------- showEditShortcutsAction = new QAction(tr("Edit shortcuts"),this); @@ -737,12 +737,12 @@ void LibraryWindow::createActions() addAction(showEditShortcutsAction); updateFolderAction = new QAction(tr("Update folder"), this); - updateFolderAction->setIcon(QIcon(":/images/updateLibraryIcon.png")); + updateFolderAction->setIcon(QIcon(":/images/menus_icons/updateLibraryIcon.png")); updateCurrentFolderAction = new QAction(tr("Update current folder"), this); updateCurrentFolderAction->setData(UPDATE_CURRENT_FOLDER_ACTION_YL); updateCurrentFolderAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(UPDATE_CURRENT_FOLDER_ACTION_YL)); - updateCurrentFolderAction->setIcon(QIcon(":/images/updateLibraryIcon.png")); + updateCurrentFolderAction->setIcon(QIcon(":/images/menus_icons/updateLibraryIcon.png")); addReadingListAction = new QAction(tr("Add new reading list"), this); addReadingListAction->setData(ADD_READING_LIST_ACTION_YL); diff --git a/YACReaderLibrary/qml.qrc b/YACReaderLibrary/qml.qrc index 5477ae08..9952ca07 100644 --- a/YACReaderLibrary/qml.qrc +++ b/YACReaderLibrary/qml.qrc @@ -5,5 +5,6 @@ qml/tick.png qml/reading.png qml/star_menu.png + qml/star_menu@2x.png diff --git a/YACReaderLibrary/qml/GridComicsView.qml b/YACReaderLibrary/qml/GridComicsView.qml index c8c04d11..8fc075bc 100644 --- a/YACReaderLibrary/qml/GridComicsView.qml +++ b/YACReaderLibrary/qml/GridComicsView.qml @@ -48,7 +48,9 @@ Rectangle { dragging = false; } - width: 156; height: 287 + width: itemWidth + height: itemHeight + color: ((dummyValue || !dummyValue) && comicsSelectionHelper.isSelectedIndex(index))?selectedColor:cellColor; border.color: ((dummyValue || !dummyValue) && comicsSelectionHelper.isSelectedIndex(index))?selectedBorderColor:borderColor; border.width: (Qt.platform.os === "osx")?1:0; @@ -159,9 +161,7 @@ Rectangle { } } } - } - } /**/ @@ -169,8 +169,8 @@ Rectangle { //cover Image { id: coverElement - width: 156 - height: 236 + width: coverWidth + height: coverHeight anchors {horizontalCenter: parent.horizontalCenter; top: realCell.top; topMargin: 0} source: cover_path fillMode: Image.PreserveAspectCrop @@ -183,8 +183,8 @@ Rectangle { //border Rectangle { - width: 156 - height: 236 + width: coverElement.width + height: coverElement.height anchors {horizontalCenter: parent.horizontalCenter; top: realCell.top; topMargin: 0} color: "transparent" border { @@ -206,8 +206,8 @@ Rectangle { //title Text { id : titleText - anchors { top: realCell.top; left: realCell.left; leftMargin: 4; rightMargin: 4; topMargin: 238; } - width: 148 + anchors { top: coverElement.bottom; left: realCell.left; leftMargin: 4; rightMargin: 4; topMargin: 4; } + width: itemWidth - 8 maximumLineCount: 2 wrapMode: Text.WordWrap text: title @@ -218,6 +218,7 @@ Rectangle { font.pointSize: fontSize font.family: fontFamily } + //number Text { anchors {bottom: realCell.bottom; left: realCell.left; margins: 4} @@ -227,12 +228,16 @@ Rectangle { font.pointSize: fontSize font.family: fontFamily } + //page icon Image { id: pageImage anchors {bottom: realCell.bottom; right: realCell.right; bottomMargin: 5; rightMargin: 4; leftMargin: 4} source: "page.png" + width: 8 + height: 10 } + //numPages Text { id: pages @@ -243,11 +248,14 @@ Rectangle { font.pointSize: fontSize font.family: fontFamily } + //rating icon Image { id: ratingImage anchors {bottom: realCell.bottom; right: pageImage.left; bottomMargin: 5; rightMargin: Math.floor(pages.width)+12} source: "star.png" + width: 13 + height: 11 MouseArea { anchors.fill: parent @@ -335,13 +343,13 @@ Rectangle { } } } - } GridView { id:grid + objectName: "grid" anchors.fill: parent - cellHeight: 295 + cellHeight: cellCustomHeight highlight: appHighlight focus: true model: comicsList @@ -388,20 +396,23 @@ Rectangle { } function numCellsPerRow() { - return Math.floor(width / 185); + return Math.floor(width / cellCustomWidth); } - onWidthChanged: { - var numCells = numCellsPerRow(); - var rest = width % 185; - - if(numCells > 0) - { - cellWidth = Math.floor(width / numCells) ; - //console.log("numCells=",numCells,"rest=",rest,"cellWidth=",cellWidth,"width=",width); - } + onWidthChanged: { + calculateCellWidths(cellCustomWidth); } + + function calculateCellWidths(cWidth) { + + var wholeCells = Math.floor(width / cWidth); + var rest = width - (cWidth * wholeCells) + + grid.cellWidth = cWidth + Math.floor(rest / wholeCells); + console.log("cWidth",cWidth,"wholeCells=",wholeCells,"rest=",rest,"cellWidth=",cellWidth,"width=",width); + } } + focus: true Keys.onPressed: { if (event.modifiers & Qt.ControlModifier || event.modifiers & Qt.ShiftModifier) diff --git a/YACReaderLibrary/qml/page-macosx@2x.png b/YACReaderLibrary/qml/page-macosx@2x.png new file mode 100644 index 00000000..a69a9428 Binary files /dev/null and b/YACReaderLibrary/qml/page-macosx@2x.png differ diff --git a/YACReaderLibrary/qml/star-macosx@2x.png b/YACReaderLibrary/qml/star-macosx@2x.png new file mode 100644 index 00000000..82e1ae7f Binary files /dev/null and b/YACReaderLibrary/qml/star-macosx@2x.png differ diff --git a/YACReaderLibrary/qml/star_menu@2x.png b/YACReaderLibrary/qml/star_menu@2x.png new file mode 100644 index 00000000..9e164485 Binary files /dev/null and b/YACReaderLibrary/qml/star_menu@2x.png differ diff --git a/YACReaderLibrary/qml_osx.qrc b/YACReaderLibrary/qml_osx.qrc index 85397d2f..1649991a 100644 --- a/YACReaderLibrary/qml_osx.qrc +++ b/YACReaderLibrary/qml_osx.qrc @@ -1,6 +1,8 @@ qml/page-macosx.png + qml/page-macosx@2x.png qml/star-macosx.png + qml/star-macosx@2x.png diff --git a/common/yacreader_global.h b/common/yacreader_global.h index e6f58501..bcff7922 100644 --- a/common/yacreader_global.h +++ b/common/yacreader_global.h @@ -63,6 +63,7 @@ #define COMICS_VIEW_STATUS "COMICS_VIEW_STATUS" #define COMICS_VIEW_FLOW_SPLITTER_STATUS "COMICS_VIEW_FLOW_SPLITTER_STATUS" #define SIDEBAR_SPLITTER_STATUS "SIDEBAR_SPLITTER_STATUS" +#define COMICS_GRID_COVER_SIZES "COMICS_GRID_COVER_SIZES" #define NUM_DAYS_BETWEEN_VERSION_CHECKS "NUM_DAYS_BETWEEN_VERSION_CHECKS" #define LAST_VERSION_CHECK "LAST_VERSION_CHECK" diff --git a/custom_widgets/yacreader_library_item_widget.cpp b/custom_widgets/yacreader_library_item_widget.cpp index b5f6b259..33fb567b 100644 --- a/custom_widgets/yacreader_library_item_widget.cpp +++ b/custom_widgets/yacreader_library_item_widget.cpp @@ -16,16 +16,32 @@ YACReaderLibraryItemWidget::YACReaderLibraryItemWidget(QString n/*ame*/, QString QPixmap iconPixmap(":/images/sidebar/libraryIcon.png"); icon = new QLabel(this); - icon->setPixmap(iconPixmap); + icon->setPixmap(iconPixmap); nameLabel = new QLabel(name,this); - options = new QToolButton(this); + options = new QToolButton(this); +#ifdef Q_OS_MAC + //TODO fix this crazy hack for having a propper retina icon for the options + //this hack has been perpetrated using Qt 5.5.0 + QString sourceOptionsImage; + if(devicePixelRatio()>1) + sourceOptionsImage = ":/images/sidebar/libraryOptions@2x.png"; + else + sourceOptionsImage = ":/images/sidebar/libraryOptions.png"; + QPixmap iconOptionsPixmap(sourceOptionsImage); + iconOptionsPixmap.setDevicePixelRatio(devicePixelRatio()); + QLabel * helperLabel = new QLabel(options); + helperLabel->move(4,2); + helperLabel->setFixedSize(14,14); + helperLabel->setPixmap(iconOptionsPixmap); +#else options->setIcon(QIcon(":/images/sidebar/libraryOptions.png")); +#endif options->setHidden(true); - options->setFixedWidth(18); - options->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Minimum); - options->setStyleSheet("QToolButton {border:none;}"); + options->setFixedWidth(18); + options->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Minimum); + options->setStyleSheet("QToolButton {border:none;}"); connect(options,SIGNAL(clicked()),this,SIGNAL(showOptions())); /*up = new QToolButton(this); up->setIcon(QIcon(":/images/libraryUp.png")); diff --git a/custom_widgets/yacreader_sidebar.cpp b/custom_widgets/yacreader_sidebar.cpp index fa9dd5d8..2d380e4e 100644 --- a/custom_widgets/yacreader_sidebar.cpp +++ b/custom_widgets/yacreader_sidebar.cpp @@ -23,9 +23,15 @@ YACReaderSideBar::YACReaderSideBar(QWidget *parent) : readingListsView = new YACReaderReadingListsView; selectedLibrary = new YACReaderLibraryListWidget; - librariesTitle = new YACReaderTitledToolBar(tr("LIBRARIES")); - foldersTitle = new YACReaderTitledToolBar(tr("FOLDERS")); +#ifdef Q_OS_MAC + librariesTitle = new YACReaderTitledToolBar(tr("Libraries")); + foldersTitle = new YACReaderTitledToolBar(tr("Folders")); + readingListsTitle = new YACReaderTitledToolBar(tr("Reading Lists")); +#else + librariesTitle = new YACReaderTitledToolBar(tr("LIBRARIES")); + foldersTitle = new YACReaderTitledToolBar(tr("FOLDERS")); readingListsTitle = new YACReaderTitledToolBar(tr("READING LISTS")); +#endif splitter = new QSplitter(this); splitter->setOrientation(Qt::Vertical); @@ -150,7 +156,7 @@ void YACReaderSideBar::paintEvent(QPaintEvent * event) #ifdef Q_OS_MAC QPainter painter(this); - painter.fillRect(0,0,width(),height(),QColor("#FFFFFF")); + painter.fillRect(0,0,width(),height(),QColor("#F1F1F1")); #else QPainter painter(this); diff --git a/custom_widgets/yacreader_table_view.cpp b/custom_widgets/yacreader_table_view.cpp index 9ace5aef..3b48d89a 100644 --- a/custom_widgets/yacreader_table_view.cpp +++ b/custom_widgets/yacreader_table_view.cpp @@ -158,7 +158,7 @@ void YACReaderTableView::performDrag() QLOG_DEBUG() << "performDrag"; QDrag *drag = new QDrag(this); drag->setMimeData(model()->mimeData(selectionModel()->selectedRows())); - drag->setPixmap(QPixmap(":/images/openInYACReader.png")); //TODO add better image + drag->setPixmap(QPixmap(":/images/comics_view_toolbar/openInYACReader.png")); //TODO add better image /*Qt::DropAction dropAction =*/ drag->exec(Qt::CopyAction | Qt::MoveAction, Qt::CopyAction); } diff --git a/custom_widgets/yacreader_titled_toolbar.cpp b/custom_widgets/yacreader_titled_toolbar.cpp index 9651a59d..ce337cc8 100644 --- a/custom_widgets/yacreader_titled_toolbar.cpp +++ b/custom_widgets/yacreader_titled_toolbar.cpp @@ -1,12 +1,12 @@ #include "yacreader_titled_toolbar.h" +#include #include #include -#include -#include -#include #include - +#include +#include +#include DropShadowLabel::DropShadowLabel(QWidget* parent) : @@ -40,8 +40,9 @@ void DropShadowLabel::paintEvent(QPaintEvent *event) QPainter painter(this); painter.setFont(font()); - //TODO find where is the '3' comming from? +#ifndef Q_OS_MAC drawTextEffect(&painter, QPoint(contentsMargins().left(), 1)); +#endif drawText(&painter, QPoint(contentsMargins().left(), 0)); } @@ -71,8 +72,8 @@ YACReaderTitledToolBar::YACReaderTitledToolBar(const QString & title, QWidget *p nameLabel->setText(title); #ifdef Q_OS_MAC QString nameLabelStyleSheet = "QLabel {padding:0 0 0 10px; margin:0px; font-size:11px; font-weight:bold;}"; - nameLabel->setColor(QColor("#707E8C")); - nameLabel->setDropShadowColor(QColor("#F9FAFB")); + nameLabel->setColor(QColor("#808080")); + //nameLabel->setDropShadowColor(QColor("#F9FAFB")); #else QString nameLabelStyleSheet = "QLabel {padding:0 0 0 10px; margin:0px; font-size:11px; font-weight:bold;}"; nameLabel->setColor(QColor("#BDBFBF")); @@ -95,14 +96,26 @@ void YACReaderTitledToolBar::addAction(QAction * action) { QHBoxLayout * mainLayout = dynamic_cast(layout()); - QToolButton * tb = new QToolButton(this); +//fix for QToolButton and retina support in OSX +#ifdef Q_OS_MAC + QPushButton * pb = new QPushButton(this); + pb->setCursor(QCursor(Qt::ArrowCursor)); + pb->setIcon(action->icon()); + pb->addAction(action); + + connect(pb, SIGNAL(clicked(bool)), action, SIGNAL(triggered(bool))); + + mainLayout->addWidget(pb); +#else + QToolButton * tb = new QToolButton(this); tb->setCursor(QCursor(Qt::ArrowCursor)); tb->setDefaultAction(action); tb->setIconSize(QSize(16,16)); tb->setSizePolicy(QSizePolicy::Minimum,QSizePolicy::Minimum); //tb->setStyleSheet("QToolButton:hover {background-color:#C5C5C5;}"); - mainLayout->addWidget(tb); + mainLayout->addWidget(tb); +#endif } void YACReaderTitledToolBar::addSpacing(int spacing) diff --git a/images/asignNumber.png b/images/asignNumber.png deleted file mode 100644 index 06fe03a1..00000000 Binary files a/images/asignNumber.png and /dev/null differ diff --git a/images/comics_view_toolbar/asignNumber.png b/images/comics_view_toolbar/asignNumber.png new file mode 100644 index 00000000..842b45c8 Binary files /dev/null and b/images/comics_view_toolbar/asignNumber.png differ diff --git a/images/comics_view_toolbar/asignNumber@2x.png b/images/comics_view_toolbar/asignNumber@2x.png new file mode 100644 index 00000000..606019c5 Binary files /dev/null and b/images/comics_view_toolbar/asignNumber@2x.png differ diff --git a/images/comics_view_toolbar/big_size_grid_zoom.png b/images/comics_view_toolbar/big_size_grid_zoom.png new file mode 100644 index 00000000..b209fa83 Binary files /dev/null and b/images/comics_view_toolbar/big_size_grid_zoom.png differ diff --git a/images/comics_view_toolbar/big_size_grid_zoom@2x.png b/images/comics_view_toolbar/big_size_grid_zoom@2x.png new file mode 100644 index 00000000..278dc8ec Binary files /dev/null and b/images/comics_view_toolbar/big_size_grid_zoom@2x.png differ diff --git a/images/comics_view_toolbar/editComic.png b/images/comics_view_toolbar/editComic.png new file mode 100644 index 00000000..f7d37eaa Binary files /dev/null and b/images/comics_view_toolbar/editComic.png differ diff --git a/images/comics_view_toolbar/editComic@2x.png b/images/comics_view_toolbar/editComic@2x.png new file mode 100644 index 00000000..c09e31f6 Binary files /dev/null and b/images/comics_view_toolbar/editComic@2x.png differ diff --git a/images/comics_view_toolbar/getInfo.png b/images/comics_view_toolbar/getInfo.png new file mode 100644 index 00000000..e55f0bb7 Binary files /dev/null and b/images/comics_view_toolbar/getInfo.png differ diff --git a/images/comics_view_toolbar/getInfo@2x.png b/images/comics_view_toolbar/getInfo@2x.png new file mode 100644 index 00000000..0228cda0 Binary files /dev/null and b/images/comics_view_toolbar/getInfo@2x.png differ diff --git a/images/comics_view_toolbar/hideComicFlow.png b/images/comics_view_toolbar/hideComicFlow.png new file mode 100644 index 00000000..9d821b1e Binary files /dev/null and b/images/comics_view_toolbar/hideComicFlow.png differ diff --git a/images/comics_view_toolbar/hideComicFlow@2x.png b/images/comics_view_toolbar/hideComicFlow@2x.png new file mode 100644 index 00000000..d2122fd8 Binary files /dev/null and b/images/comics_view_toolbar/hideComicFlow@2x.png differ diff --git a/images/comics_view_toolbar/openInYACReader.png b/images/comics_view_toolbar/openInYACReader.png new file mode 100644 index 00000000..7e860931 Binary files /dev/null and b/images/comics_view_toolbar/openInYACReader.png differ diff --git a/images/comics_view_toolbar/openInYACReader@2x.png b/images/comics_view_toolbar/openInYACReader@2x.png new file mode 100644 index 00000000..44169dbd Binary files /dev/null and b/images/comics_view_toolbar/openInYACReader@2x.png differ diff --git a/images/comics_view_toolbar/selectAll.png b/images/comics_view_toolbar/selectAll.png new file mode 100644 index 00000000..6664212d Binary files /dev/null and b/images/comics_view_toolbar/selectAll.png differ diff --git a/images/comics_view_toolbar/selectAll@2x.png b/images/comics_view_toolbar/selectAll@2x.png new file mode 100644 index 00000000..b160bc92 Binary files /dev/null and b/images/comics_view_toolbar/selectAll@2x.png differ diff --git a/images/setAllRead.png b/images/comics_view_toolbar/setAllRead.png similarity index 100% rename from images/setAllRead.png rename to images/comics_view_toolbar/setAllRead.png diff --git a/images/setAllUnread.png b/images/comics_view_toolbar/setAllUnread.png similarity index 100% rename from images/setAllUnread.png rename to images/comics_view_toolbar/setAllUnread.png diff --git a/images/comics_view_toolbar/setReadButton.png b/images/comics_view_toolbar/setReadButton.png new file mode 100644 index 00000000..aae2e341 Binary files /dev/null and b/images/comics_view_toolbar/setReadButton.png differ diff --git a/images/comics_view_toolbar/setReadButton@2x.png b/images/comics_view_toolbar/setReadButton@2x.png new file mode 100644 index 00000000..f38872a3 Binary files /dev/null and b/images/comics_view_toolbar/setReadButton@2x.png differ diff --git a/images/comics_view_toolbar/setUnread.png b/images/comics_view_toolbar/setUnread.png new file mode 100644 index 00000000..37d7e8f7 Binary files /dev/null and b/images/comics_view_toolbar/setUnread.png differ diff --git a/images/comics_view_toolbar/setUnread@2x.png b/images/comics_view_toolbar/setUnread@2x.png new file mode 100644 index 00000000..13643802 Binary files /dev/null and b/images/comics_view_toolbar/setUnread@2x.png differ diff --git a/images/comics_view_toolbar/showMarks.png b/images/comics_view_toolbar/showMarks.png new file mode 100644 index 00000000..5da31cce Binary files /dev/null and b/images/comics_view_toolbar/showMarks.png differ diff --git a/images/comics_view_toolbar/showMarks@2x.png b/images/comics_view_toolbar/showMarks@2x.png new file mode 100644 index 00000000..c5554f62 Binary files /dev/null and b/images/comics_view_toolbar/showMarks@2x.png differ diff --git a/images/comics_view_toolbar/small_size_grid_zoom.png b/images/comics_view_toolbar/small_size_grid_zoom.png new file mode 100644 index 00000000..dadef532 Binary files /dev/null and b/images/comics_view_toolbar/small_size_grid_zoom.png differ diff --git a/images/comics_view_toolbar/small_size_grid_zoom@2x.png b/images/comics_view_toolbar/small_size_grid_zoom@2x.png new file mode 100644 index 00000000..4608486f Binary files /dev/null and b/images/comics_view_toolbar/small_size_grid_zoom@2x.png differ diff --git a/images/comics_view_toolbar/trash.png b/images/comics_view_toolbar/trash.png new file mode 100644 index 00000000..4f0f5a96 Binary files /dev/null and b/images/comics_view_toolbar/trash.png differ diff --git a/images/comics_view_toolbar/trash@2x.png b/images/comics_view_toolbar/trash@2x.png new file mode 100644 index 00000000..bc36a8a1 Binary files /dev/null and b/images/comics_view_toolbar/trash@2x.png differ diff --git a/images/editComic.png b/images/editComic.png deleted file mode 100644 index 8dcc2deb..00000000 Binary files a/images/editComic.png and /dev/null differ diff --git a/images/editIcon.png b/images/editIcon.png deleted file mode 100644 index a90fbd9d..00000000 Binary files a/images/editIcon.png and /dev/null differ diff --git a/images/exportComicsInfoIcon.png b/images/exportComicsInfoIcon.png deleted file mode 100644 index e1c22eda..00000000 Binary files a/images/exportComicsInfoIcon.png and /dev/null differ diff --git a/images/exportLibraryIcon.png b/images/exportLibraryIcon.png deleted file mode 100644 index d176e495..00000000 Binary files a/images/exportLibraryIcon.png and /dev/null differ diff --git a/images/getInfo.png b/images/getInfo.png deleted file mode 100644 index c62c0639..00000000 Binary files a/images/getInfo.png and /dev/null differ diff --git a/images/hideComicFlow.png b/images/hideComicFlow.png deleted file mode 100644 index 3dd949d2..00000000 Binary files a/images/hideComicFlow.png and /dev/null differ diff --git a/images/importComicsInfoIcon.png b/images/importComicsInfoIcon.png deleted file mode 100644 index fbf7c7ee..00000000 Binary files a/images/importComicsInfoIcon.png and /dev/null differ diff --git a/images/importLibraryIcon.png b/images/importLibraryIcon.png deleted file mode 100644 index ea1e0798..00000000 Binary files a/images/importLibraryIcon.png and /dev/null differ diff --git a/images/menus_icons/editIcon.png b/images/menus_icons/editIcon.png new file mode 100644 index 00000000..3caf15db Binary files /dev/null and b/images/menus_icons/editIcon.png differ diff --git a/images/menus_icons/editIcon@2x.png b/images/menus_icons/editIcon@2x.png new file mode 100644 index 00000000..7be4e0ef Binary files /dev/null and b/images/menus_icons/editIcon@2x.png differ diff --git a/images/menus_icons/exportComicsInfoIcon.png b/images/menus_icons/exportComicsInfoIcon.png new file mode 100644 index 00000000..3857068d Binary files /dev/null and b/images/menus_icons/exportComicsInfoIcon.png differ diff --git a/images/menus_icons/exportComicsInfoIcon@2x.png b/images/menus_icons/exportComicsInfoIcon@2x.png new file mode 100644 index 00000000..ad192d32 Binary files /dev/null and b/images/menus_icons/exportComicsInfoIcon@2x.png differ diff --git a/images/menus_icons/exportLibraryIcon.png b/images/menus_icons/exportLibraryIcon.png new file mode 100644 index 00000000..bd45fc2a Binary files /dev/null and b/images/menus_icons/exportLibraryIcon.png differ diff --git a/images/menus_icons/exportLibraryIcon@2x.png b/images/menus_icons/exportLibraryIcon@2x.png new file mode 100644 index 00000000..837f3015 Binary files /dev/null and b/images/menus_icons/exportLibraryIcon@2x.png differ diff --git a/images/menus_icons/importComicsInfoIcon.png b/images/menus_icons/importComicsInfoIcon.png new file mode 100644 index 00000000..5745fbf2 Binary files /dev/null and b/images/menus_icons/importComicsInfoIcon.png differ diff --git a/images/menus_icons/importComicsInfoIcon@2x.png b/images/menus_icons/importComicsInfoIcon@2x.png new file mode 100644 index 00000000..50c80c12 Binary files /dev/null and b/images/menus_icons/importComicsInfoIcon@2x.png differ diff --git a/images/menus_icons/importLibraryIcon.png b/images/menus_icons/importLibraryIcon.png new file mode 100644 index 00000000..f5405865 Binary files /dev/null and b/images/menus_icons/importLibraryIcon.png differ diff --git a/images/menus_icons/importLibraryIcon@2x.png b/images/menus_icons/importLibraryIcon@2x.png new file mode 100644 index 00000000..dec6383a Binary files /dev/null and b/images/menus_icons/importLibraryIcon@2x.png differ diff --git a/images/menus_icons/open.png b/images/menus_icons/open.png new file mode 100644 index 00000000..048f55f3 Binary files /dev/null and b/images/menus_icons/open.png differ diff --git a/images/menus_icons/open@2x.png b/images/menus_icons/open@2x.png new file mode 100644 index 00000000..d72e19b1 Binary files /dev/null and b/images/menus_icons/open@2x.png differ diff --git a/images/menus_icons/removeLibraryIcon.png b/images/menus_icons/removeLibraryIcon.png new file mode 100644 index 00000000..83f894d7 Binary files /dev/null and b/images/menus_icons/removeLibraryIcon.png differ diff --git a/images/menus_icons/removeLibraryIcon@2x.png b/images/menus_icons/removeLibraryIcon@2x.png new file mode 100644 index 00000000..23a4c6b6 Binary files /dev/null and b/images/menus_icons/removeLibraryIcon@2x.png differ diff --git a/images/menus_icons/updateLibraryIcon.png b/images/menus_icons/updateLibraryIcon.png new file mode 100644 index 00000000..87fd0333 Binary files /dev/null and b/images/menus_icons/updateLibraryIcon.png differ diff --git a/images/menus_icons/updateLibraryIcon@2x.png b/images/menus_icons/updateLibraryIcon@2x.png new file mode 100644 index 00000000..edee9abe Binary files /dev/null and b/images/menus_icons/updateLibraryIcon@2x.png differ diff --git a/images/open.png b/images/open.png deleted file mode 100644 index c4b71a29..00000000 Binary files a/images/open.png and /dev/null differ diff --git a/images/openInYACReader.png b/images/openInYACReader.png deleted file mode 100644 index caee5d52..00000000 Binary files a/images/openInYACReader.png and /dev/null differ diff --git a/images/removeLibraryIcon.png b/images/removeLibraryIcon.png deleted file mode 100644 index 1e34630c..00000000 Binary files a/images/removeLibraryIcon.png and /dev/null differ diff --git a/images/selectAll.png b/images/selectAll.png deleted file mode 100644 index f71b06da..00000000 Binary files a/images/selectAll.png and /dev/null differ diff --git a/images/setReadButton.png b/images/setReadButton.png deleted file mode 100644 index 4a081b84..00000000 Binary files a/images/setReadButton.png and /dev/null differ diff --git a/images/setUnread.png b/images/setUnread.png deleted file mode 100644 index 7f5356db..00000000 Binary files a/images/setUnread.png and /dev/null differ diff --git a/images/showMarks.png b/images/showMarks.png deleted file mode 100644 index ab71f70c..00000000 Binary files a/images/showMarks.png and /dev/null differ diff --git a/images/sidebar/addLabelIcon_osx.png b/images/sidebar/addLabelIcon_osx.png old mode 100644 new mode 100755 index e1d4eee2..3f8a8a51 Binary files a/images/sidebar/addLabelIcon_osx.png and b/images/sidebar/addLabelIcon_osx.png differ diff --git a/images/sidebar/addLabelIcon_osx@2x.png b/images/sidebar/addLabelIcon_osx@2x.png old mode 100644 new mode 100755 index 6f688eab..e0e1fea8 Binary files a/images/sidebar/addLabelIcon_osx@2x.png and b/images/sidebar/addLabelIcon_osx@2x.png differ diff --git a/images/sidebar/addNew_sidebar_osx.png b/images/sidebar/addNew_sidebar_osx.png old mode 100644 new mode 100755 index 454b9fc8..aa101d8b Binary files a/images/sidebar/addNew_sidebar_osx.png and b/images/sidebar/addNew_sidebar_osx.png differ diff --git a/images/sidebar/addNew_sidebar_osx@2x.png b/images/sidebar/addNew_sidebar_osx@2x.png old mode 100644 new mode 100755 index 3baf3d1b..30c05b8a Binary files a/images/sidebar/addNew_sidebar_osx@2x.png and b/images/sidebar/addNew_sidebar_osx@2x.png differ diff --git a/images/sidebar/colapse_osx.png b/images/sidebar/colapse_osx.png old mode 100644 new mode 100755 index 96bfa372..b5b33008 Binary files a/images/sidebar/colapse_osx.png and b/images/sidebar/colapse_osx.png differ diff --git a/images/sidebar/colapse_osx@2x.png b/images/sidebar/colapse_osx@2x.png old mode 100644 new mode 100755 index eaf7a5f4..9c746a47 Binary files a/images/sidebar/colapse_osx@2x.png and b/images/sidebar/colapse_osx@2x.png differ diff --git a/images/sidebar/delete_sidebar_osx.png b/images/sidebar/delete_sidebar_osx.png old mode 100644 new mode 100755 index 6a4808d2..61bf6f9e Binary files a/images/sidebar/delete_sidebar_osx.png and b/images/sidebar/delete_sidebar_osx.png differ diff --git a/images/sidebar/delete_sidebar_osx@2x.png b/images/sidebar/delete_sidebar_osx@2x.png old mode 100644 new mode 100755 index 237e4982..b15e34f6 Binary files a/images/sidebar/delete_sidebar_osx@2x.png and b/images/sidebar/delete_sidebar_osx@2x.png differ diff --git a/images/sidebar/expand_osx.png b/images/sidebar/expand_osx.png old mode 100644 new mode 100755 index e537efa3..754d92c1 Binary files a/images/sidebar/expand_osx.png and b/images/sidebar/expand_osx.png differ diff --git a/images/sidebar/expand_osx@2x.png b/images/sidebar/expand_osx@2x.png old mode 100644 new mode 100755 index 135314f8..7bb3316e Binary files a/images/sidebar/expand_osx@2x.png and b/images/sidebar/expand_osx@2x.png differ diff --git a/images/sidebar/libraryOptions@2x.png b/images/sidebar/libraryOptions@2x.png new file mode 100644 index 00000000..b8413890 Binary files /dev/null and b/images/sidebar/libraryOptions@2x.png differ diff --git a/images/sidebar/newLibraryIcon_osx.png b/images/sidebar/newLibraryIcon_osx.png old mode 100644 new mode 100755 index 60e1eed9..7c4a5aea Binary files a/images/sidebar/newLibraryIcon_osx.png and b/images/sidebar/newLibraryIcon_osx.png differ diff --git a/images/sidebar/newLibraryIcon_osx@2x.png b/images/sidebar/newLibraryIcon_osx@2x.png old mode 100644 new mode 100755 index 3baf3d1b..30c05b8a Binary files a/images/sidebar/newLibraryIcon_osx@2x.png and b/images/sidebar/newLibraryIcon_osx@2x.png differ diff --git a/images/sidebar/openLibraryIcon_osx.png b/images/sidebar/openLibraryIcon_osx.png old mode 100644 new mode 100755 index 51eabbfb..0a61bd9a Binary files a/images/sidebar/openLibraryIcon_osx.png and b/images/sidebar/openLibraryIcon_osx.png differ diff --git a/images/sidebar/openLibraryIcon_osx@2x.png b/images/sidebar/openLibraryIcon_osx@2x.png old mode 100644 new mode 100755 index da93f1f9..0875b44d Binary files a/images/sidebar/openLibraryIcon_osx@2x.png and b/images/sidebar/openLibraryIcon_osx@2x.png differ diff --git a/images/sidebar/renameListIcon_osx.png b/images/sidebar/renameListIcon_osx.png old mode 100644 new mode 100755 index 8f6fffda..3ed190fd Binary files a/images/sidebar/renameListIcon_osx.png and b/images/sidebar/renameListIcon_osx.png differ diff --git a/images/sidebar/renameListIcon_osx@2x.png b/images/sidebar/renameListIcon_osx@2x.png old mode 100644 new mode 100755 index 7270703c..9a6a25c9 Binary files a/images/sidebar/renameListIcon_osx@2x.png and b/images/sidebar/renameListIcon_osx@2x.png differ diff --git a/images/sidebar/setRoot_osx.png b/images/sidebar/setRoot_osx.png old mode 100644 new mode 100755 index 6101b824..a2da070d Binary files a/images/sidebar/setRoot_osx.png and b/images/sidebar/setRoot_osx.png differ diff --git a/images/sidebar/setRoot_osx@2x.png b/images/sidebar/setRoot_osx@2x.png old mode 100644 new mode 100755 index e4a110eb..5dfcdd99 Binary files a/images/sidebar/setRoot_osx@2x.png and b/images/sidebar/setRoot_osx@2x.png differ diff --git a/images/trash.png b/images/trash.png deleted file mode 100644 index 482de4a6..00000000 Binary files a/images/trash.png and /dev/null differ diff --git a/images/updateLibraryIcon.png b/images/updateLibraryIcon.png deleted file mode 100644 index ff68a204..00000000 Binary files a/images/updateLibraryIcon.png and /dev/null differ