From 14fed7aba0e510b3c421cde02a96e1b162ea3d05 Mon Sep 17 00:00:00 2001 From: Felix Kauselmann <2039670+selmf@users.noreply.github.com> Date: Thu, 27 Aug 2015 10:34:33 +0200 Subject: [PATCH] Merged luisangelsm/yacreader into default --- YACReaderLibrary/classic_comics_view.cpp | 8 +- YACReaderLibrary/grid_comics_view.cpp | 158 +++++++++++---- YACReaderLibrary/grid_comics_view.h | 9 + YACReaderLibrary/images.qrc | 180 ++++++++++-------- YACReaderLibrary/library_window.cpp | 44 ++--- YACReaderLibrary/qml.qrc | 1 + YACReaderLibrary/qml/GridComicsView.qml | 53 ++++-- YACReaderLibrary/qml/page-macosx@2x.png | Bin 0 -> 218 bytes YACReaderLibrary/qml/star-macosx@2x.png | Bin 0 -> 472 bytes YACReaderLibrary/qml/star_menu@2x.png | Bin 0 -> 468 bytes YACReaderLibrary/qml_osx.qrc | 2 + common/yacreader_global.h | 1 + .../yacreader_library_item_widget.cpp | 26 ++- custom_widgets/yacreader_sidebar.cpp | 12 +- custom_widgets/yacreader_table_view.cpp | 2 +- custom_widgets/yacreader_titled_toolbar.cpp | 31 ++- images/asignNumber.png | Bin 229 -> 0 bytes images/comics_view_toolbar/asignNumber.png | Bin 0 -> 251 bytes images/comics_view_toolbar/asignNumber@2x.png | Bin 0 -> 353 bytes .../big_size_grid_zoom.png | Bin 0 -> 164 bytes .../big_size_grid_zoom@2x.png | Bin 0 -> 201 bytes images/comics_view_toolbar/editComic.png | Bin 0 -> 289 bytes images/comics_view_toolbar/editComic@2x.png | Bin 0 -> 415 bytes images/comics_view_toolbar/getInfo.png | Bin 0 -> 302 bytes images/comics_view_toolbar/getInfo@2x.png | Bin 0 -> 473 bytes images/comics_view_toolbar/hideComicFlow.png | Bin 0 -> 254 bytes .../comics_view_toolbar/hideComicFlow@2x.png | Bin 0 -> 402 bytes .../comics_view_toolbar/openInYACReader.png | Bin 0 -> 312 bytes .../openInYACReader@2x.png | Bin 0 -> 488 bytes images/comics_view_toolbar/selectAll.png | Bin 0 -> 237 bytes images/comics_view_toolbar/selectAll@2x.png | Bin 0 -> 328 bytes .../{ => comics_view_toolbar}/setAllRead.png | Bin .../setAllUnread.png | Bin images/comics_view_toolbar/setReadButton.png | Bin 0 -> 268 bytes .../comics_view_toolbar/setReadButton@2x.png | Bin 0 -> 383 bytes images/comics_view_toolbar/setUnread.png | Bin 0 -> 329 bytes images/comics_view_toolbar/setUnread@2x.png | Bin 0 -> 507 bytes images/comics_view_toolbar/showMarks.png | Bin 0 -> 316 bytes images/comics_view_toolbar/showMarks@2x.png | Bin 0 -> 519 bytes .../small_size_grid_zoom.png | Bin 0 -> 164 bytes .../small_size_grid_zoom@2x.png | Bin 0 -> 201 bytes images/comics_view_toolbar/trash.png | Bin 0 -> 209 bytes images/comics_view_toolbar/trash@2x.png | Bin 0 -> 253 bytes images/editComic.png | Bin 280 -> 0 bytes images/editIcon.png | Bin 269 -> 0 bytes images/exportComicsInfoIcon.png | Bin 289 -> 0 bytes images/exportLibraryIcon.png | Bin 241 -> 0 bytes images/getInfo.png | Bin 294 -> 0 bytes images/hideComicFlow.png | Bin 227 -> 0 bytes images/importComicsInfoIcon.png | Bin 207 -> 0 bytes images/importLibraryIcon.png | Bin 245 -> 0 bytes images/menus_icons/editIcon.png | Bin 0 -> 271 bytes images/menus_icons/editIcon@2x.png | Bin 0 -> 386 bytes images/menus_icons/exportComicsInfoIcon.png | Bin 0 -> 299 bytes .../menus_icons/exportComicsInfoIcon@2x.png | Bin 0 -> 444 bytes images/menus_icons/exportLibraryIcon.png | Bin 0 -> 248 bytes images/menus_icons/exportLibraryIcon@2x.png | Bin 0 -> 333 bytes images/menus_icons/importComicsInfoIcon.png | Bin 0 -> 220 bytes .../menus_icons/importComicsInfoIcon@2x.png | Bin 0 -> 337 bytes images/menus_icons/importLibraryIcon.png | Bin 0 -> 255 bytes images/menus_icons/importLibraryIcon@2x.png | Bin 0 -> 340 bytes images/menus_icons/open.png | Bin 0 -> 210 bytes images/menus_icons/open@2x.png | Bin 0 -> 277 bytes images/menus_icons/removeLibraryIcon.png | Bin 0 -> 271 bytes images/menus_icons/removeLibraryIcon@2x.png | Bin 0 -> 403 bytes images/menus_icons/updateLibraryIcon.png | Bin 0 -> 318 bytes images/menus_icons/updateLibraryIcon@2x.png | Bin 0 -> 536 bytes images/open.png | Bin 193 -> 0 bytes images/openInYACReader.png | Bin 305 -> 0 bytes images/removeLibraryIcon.png | Bin 259 -> 0 bytes images/selectAll.png | Bin 216 -> 0 bytes images/setReadButton.png | Bin 244 -> 0 bytes images/setUnread.png | Bin 287 -> 0 bytes images/showMarks.png | Bin 283 -> 0 bytes images/sidebar/addLabelIcon_osx.png | Bin 242 -> 242 bytes images/sidebar/addLabelIcon_osx@2x.png | Bin 364 -> 342 bytes images/sidebar/addNew_sidebar_osx.png | Bin 171 -> 175 bytes images/sidebar/addNew_sidebar_osx@2x.png | Bin 219 -> 245 bytes images/sidebar/colapse_osx.png | Bin 207 -> 216 bytes images/sidebar/colapse_osx@2x.png | Bin 298 -> 319 bytes images/sidebar/delete_sidebar_osx.png | Bin 187 -> 195 bytes images/sidebar/delete_sidebar_osx@2x.png | Bin 202 -> 212 bytes images/sidebar/expand_osx.png | Bin 168 -> 183 bytes images/sidebar/expand_osx@2x.png | Bin 208 -> 245 bytes images/sidebar/libraryOptions@2x.png | Bin 0 -> 219 bytes images/sidebar/newLibraryIcon_osx.png | Bin 169 -> 171 bytes images/sidebar/newLibraryIcon_osx@2x.png | Bin 219 -> 245 bytes images/sidebar/openLibraryIcon_osx.png | Bin 232 -> 244 bytes images/sidebar/openLibraryIcon_osx@2x.png | Bin 335 -> 331 bytes images/sidebar/renameListIcon_osx.png | Bin 254 -> 256 bytes images/sidebar/renameListIcon_osx@2x.png | Bin 364 -> 370 bytes images/sidebar/setRoot_osx.png | Bin 271 -> 276 bytes images/sidebar/setRoot_osx@2x.png | Bin 421 -> 438 bytes images/trash.png | Bin 192 -> 0 bytes images/updateLibraryIcon.png | Bin 306 -> 0 bytes 95 files changed, 350 insertions(+), 177 deletions(-) create mode 100644 YACReaderLibrary/qml/page-macosx@2x.png create mode 100644 YACReaderLibrary/qml/star-macosx@2x.png create mode 100644 YACReaderLibrary/qml/star_menu@2x.png delete mode 100644 images/asignNumber.png create mode 100644 images/comics_view_toolbar/asignNumber.png create mode 100644 images/comics_view_toolbar/asignNumber@2x.png create mode 100644 images/comics_view_toolbar/big_size_grid_zoom.png create mode 100644 images/comics_view_toolbar/big_size_grid_zoom@2x.png create mode 100644 images/comics_view_toolbar/editComic.png create mode 100644 images/comics_view_toolbar/editComic@2x.png create mode 100644 images/comics_view_toolbar/getInfo.png create mode 100644 images/comics_view_toolbar/getInfo@2x.png create mode 100644 images/comics_view_toolbar/hideComicFlow.png create mode 100644 images/comics_view_toolbar/hideComicFlow@2x.png create mode 100644 images/comics_view_toolbar/openInYACReader.png create mode 100644 images/comics_view_toolbar/openInYACReader@2x.png create mode 100644 images/comics_view_toolbar/selectAll.png create mode 100644 images/comics_view_toolbar/selectAll@2x.png rename images/{ => comics_view_toolbar}/setAllRead.png (100%) rename images/{ => comics_view_toolbar}/setAllUnread.png (100%) create mode 100644 images/comics_view_toolbar/setReadButton.png create mode 100644 images/comics_view_toolbar/setReadButton@2x.png create mode 100644 images/comics_view_toolbar/setUnread.png create mode 100644 images/comics_view_toolbar/setUnread@2x.png create mode 100644 images/comics_view_toolbar/showMarks.png create mode 100644 images/comics_view_toolbar/showMarks@2x.png create mode 100644 images/comics_view_toolbar/small_size_grid_zoom.png create mode 100644 images/comics_view_toolbar/small_size_grid_zoom@2x.png create mode 100644 images/comics_view_toolbar/trash.png create mode 100644 images/comics_view_toolbar/trash@2x.png delete mode 100644 images/editComic.png delete mode 100644 images/editIcon.png delete mode 100644 images/exportComicsInfoIcon.png delete mode 100644 images/exportLibraryIcon.png delete mode 100644 images/getInfo.png delete mode 100644 images/hideComicFlow.png delete mode 100644 images/importComicsInfoIcon.png delete mode 100644 images/importLibraryIcon.png create mode 100644 images/menus_icons/editIcon.png create mode 100644 images/menus_icons/editIcon@2x.png create mode 100644 images/menus_icons/exportComicsInfoIcon.png create mode 100644 images/menus_icons/exportComicsInfoIcon@2x.png create mode 100644 images/menus_icons/exportLibraryIcon.png create mode 100644 images/menus_icons/exportLibraryIcon@2x.png create mode 100644 images/menus_icons/importComicsInfoIcon.png create mode 100644 images/menus_icons/importComicsInfoIcon@2x.png create mode 100644 images/menus_icons/importLibraryIcon.png create mode 100644 images/menus_icons/importLibraryIcon@2x.png create mode 100644 images/menus_icons/open.png create mode 100644 images/menus_icons/open@2x.png create mode 100644 images/menus_icons/removeLibraryIcon.png create mode 100644 images/menus_icons/removeLibraryIcon@2x.png create mode 100644 images/menus_icons/updateLibraryIcon.png create mode 100644 images/menus_icons/updateLibraryIcon@2x.png delete mode 100644 images/open.png delete mode 100644 images/openInYACReader.png delete mode 100644 images/removeLibraryIcon.png delete mode 100644 images/selectAll.png delete mode 100644 images/setReadButton.png delete mode 100644 images/setUnread.png delete mode 100644 images/showMarks.png mode change 100644 => 100755 images/sidebar/addLabelIcon_osx.png mode change 100644 => 100755 images/sidebar/addLabelIcon_osx@2x.png mode change 100644 => 100755 images/sidebar/addNew_sidebar_osx.png mode change 100644 => 100755 images/sidebar/addNew_sidebar_osx@2x.png mode change 100644 => 100755 images/sidebar/colapse_osx.png mode change 100644 => 100755 images/sidebar/colapse_osx@2x.png mode change 100644 => 100755 images/sidebar/delete_sidebar_osx.png mode change 100644 => 100755 images/sidebar/delete_sidebar_osx@2x.png mode change 100644 => 100755 images/sidebar/expand_osx.png mode change 100644 => 100755 images/sidebar/expand_osx@2x.png create mode 100644 images/sidebar/libraryOptions@2x.png mode change 100644 => 100755 images/sidebar/newLibraryIcon_osx.png mode change 100644 => 100755 images/sidebar/newLibraryIcon_osx@2x.png mode change 100644 => 100755 images/sidebar/openLibraryIcon_osx.png mode change 100644 => 100755 images/sidebar/openLibraryIcon_osx@2x.png mode change 100644 => 100755 images/sidebar/renameListIcon_osx.png mode change 100644 => 100755 images/sidebar/renameListIcon_osx@2x.png mode change 100644 => 100755 images/sidebar/setRoot_osx.png mode change 100644 => 100755 images/sidebar/setRoot_osx@2x.png delete mode 100644 images/trash.png delete mode 100644 images/updateLibraryIcon.png 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 0000000000000000000000000000000000000000..a69a9428dd45c587f92b0bd1f218ef3368832e0f GIT binary patch literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRn!3HE-lJ=GZDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MKzu-jv*Ddl6d&}|DSh|5s2BCbdF5)R@*ySMiN|t>R4};Zjrb&u_ z9QMd(crbErWLwb6%JXINBi1zytsKiA_sVv~8e|<6P)oSV53vb0+5-RT_9^Bjd(UDpMV zeczu$aGNOHI*dgK=;Z-5J9ee)Ux>&W%lE3qzBwWVDGgWc=ZtbSJX?{<%@HntdyXPa zO@{FrqUskB4rR~D6I2(^-&hG9+F;)Y4SVt%ITLZYkK`Ag>*NcO0J?0sy(MS5Efdn&H!Ujw O0000B+t_KUJDoB1^W#af$me;^Qmn3P#iQ2x zoPvAF(yhm+Qb3yr)EwB2vVS2WYdz1amdECZ6qGdFt=ARhYIwFHlbaJU4;qf-U*t^0d5=1% zc*Fcg{)sOf?F$OR9A#br+gSL{89D+L2mx=NIBay_HL@!Az-~dp*wI;aSWwu=fHMyG z6N$6DQ^{gTy!XgK)&vAKYb3!73xENI@?_RVA4yDSFd-XcW3?LUVC_xo45+|ws552U zqkFSmc+O={Yvzz$a_GbtPIM3_TMLp5&l+pfnyMJ0tspp|*Hxmi9dkl~Sc|?Gen600RJ2+W`vWoZ?yl0000< KMNUMnLSTZKHO?9U literal 0 HcmV?d00001 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 06fe03a14f67c68959df9a3496cd5f9eefcb9fa8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^JV4CP!3HERJk;|9Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JirPJ0978H@C8anp@$vC7I%L^))IK=C=vHFak(T7Z$`E<&Io~g_)YDA}1{rUgjp4pT^n0YD#w;rdv`*8+^t#U{1?XS02 zwwf;@F6r>H+v0~x^;>2}JI7|31z%WYYD5ln$YdWVP|)O>c(^NTU*vRp}NklFE~CWtATK~qLA;bE};hKs_gSD9vW-W6NnE4ll=M6zEU}Pgg&ebxsLQ0NxT;`Tzg` literal 0 HcmV?d00001 diff --git a/images/comics_view_toolbar/asignNumber@2x.png b/images/comics_view_toolbar/asignNumber@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..606019c582826795277f6a022f522e29c6dd24b3 GIT binary patch literal 353 zcmV-n0iOPeP)Ux226h9> zM%|!x1Si67KsRs%H=x&lhM;g9myiN~3_LNsyxs>2Yi(E3xO9b$CMYznDK9CdCU`t| zOS9Jc5z9FolFs~w~Xpg4p`ilwr5@f_Ru>Ifp}oGhdKApCCBBq;L+0d_~V7IDb$> zd~6g>6?AvzA0#iYQXf_5Rv7E3)SkFf5EDx*&*~6t)}P%3L!9H2^`49|2%cS#B=YQn z+_vyW^7PBaL>-p zW^^jL5p$%!z2CpDDo*+jTkVm<$JLJ?u$a~7cKPB4A9n^uHiqvfRAu*csfYqiWbkzL Kb6Mw<&;$Tugf`~@ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..278dc8ec28dc55403597d91df67a9893e71c4b7b GIT binary patch literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBBuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrH1%WqZ0fhE&{ob8RDUg8`4rMV3@;{$#hqhb#1&Uj+6%QaZX{ zjn(QU>(U)^g1O6OayK)~O0B6a`2O0m}1{rUgjp4pT^n0YG0Nj6I>D?NrsEL}WIQUMH0 z9yM0j?Mn1fkuYNPn9KU8J3vw7@QjYHd=pNwKRW9$r#oc^vk$NG!iZ)mp?;Mwf*rMu zH!A-B`zzd0Bq-+W&>-K@JdyX{YbBYsh67Fu6ptL0TG^Ih+9Bg?u!qg$2!qF5^{WCR z;*PwGsykeQcpbk-F1($uraZdTggTe~DWM4fRV`zH literal 0 HcmV?d00001 diff --git a/images/comics_view_toolbar/editComic@2x.png b/images/comics_view_toolbar/editComic@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c09e31f6204eb1a593e5251eb7fbf1781670f9ac GIT binary patch literal 415 zcmV;Q0bu@#P)b5o7|qCe>h5`UAbD4_wj|{Nu|Vwx`K33?!zYB(hjRQGkk~ zIKtRP0pb{#E-+df6b*#ov9Up6XXqrI8&MP~Gr2hA^V0=Ik;=qit{G!*R}@9OXATx9 zJdlJT7N`myujS84eC%Ztm~mX;;(RUI@>0P#t1wJ4Hak);FS5XkmN=7yxCCzQ}%KZ}1{rUgjp4pUvTamS|uaC_ki&=pE&HerVney)O5~C%;QYzT}vd z$I|eF(crGl0j2c}OB{YM7wtMUO+lSuqpd(aOIFc=q?3#a&)6R|JG^n|x&C9}tO<-~ z1Qs1y!SF;%zopr0GNPpjQ{`u literal 0 HcmV?d00001 diff --git a/images/comics_view_toolbar/getInfo@2x.png b/images/comics_view_toolbar/getInfo@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0228cda041a2e2673e1089e9b4a7e737dd8969af GIT binary patch literal 473 zcmV;~0Ve*5P)tU@{HqT$be{es<8DrW(4as_N3$45=^)+q*uOEWc&L%smfk4`InpeF4>$wz~l> zG=Q2mZ<&mF=szaLEp$cGJM=9iF-`;jkP4G1?R8&Ewz9O1n|cHqPS`WF=gn3lrs{$mLt|@gwBMG2UEl}1{rUgjp4pT^n0YD#chAEYFEkjIm@#a$omj=s zRCwUu-{1BNc6W$4ODxDTPxvgQ=d9;ssCPJEZyR$Bi>3UjeGEtbJYh4_;E`)EnAE5u z9l~MqfT4#uReVy`1*ZkaIA1gcY;0X3A;Ry&C!r~-CFXyb#WG7EkD-Tw^~;o60o&OL z-IiZ^xP8}X=y5ej9dqz{*Ip>GGIRqYiv)vBmdUQ0rT?mcZe{Rv^>bP0l+XkK^{-W| literal 0 HcmV?d00001 diff --git a/images/comics_view_toolbar/hideComicFlow@2x.png b/images/comics_view_toolbar/hideComicFlow@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d2122fd8e58e4587386c84944fca77a2c232e80c GIT binary patch literal 402 zcmV;D0d4+?P)nEI*p4 z>-q(k9tML^+?0>Q_{g~9I4&xOR3&PFDd95R2%-Y30BY6(VP$5AFk7f{Un!M_dJixO z=IAM+W){J}I82REL|s^vehqB;stXsNJ(D^>EwIq*PzNB>dV{~aP(T9!y!Q|B+29*U z3b;L)Z!JY`1;kM|zas~nW9aJ~h#f8aJ18rWXIDf_fHD?&c2&d#C?k>Q2C*C1=bBBT z^voH2MTm7Mo){xg1d2crC0-wZNf3q6znY>1!z#{L2f0OKurVajaRFaQ7m07*qoM6N<$f=z3o761SM literal 0 HcmV?d00001 diff --git a/images/comics_view_toolbar/openInYACReader.png b/images/comics_view_toolbar/openInYACReader.png new file mode 100644 index 0000000000000000000000000000000000000000..7e8609310a742afa7679d565d6836d617cc27eca GIT binary patch literal 312 zcmV-80muG{P);nFxbvz>9s|2r*G1!1@IU5UQ-X@?H^40XAeJiTM+faO#$BGJZf) z$q%lxlAtQ0VWkA!BS4b`#i*Ac7Xi`|WDY_cTE75w2U30DCiG`F+`)pK2LP0!3vQ9X zo_mX~KIf_YYERdSEyyMaXP)AdY(P3e zoei=9jF1hQZU7SyHpm9a2xbGbL6{&tOJ@}k+luQ)tcsIPM#}5cy^r-cj;oj?Sw$ur zn}>^{Na4s)Q`8(UvnQop*U>reT${QKAWAq&{P5o3(K~3v72uc^5I|&bRG>%Dt)*8U zpeKN;je*c59OTPGxLg71I2#CHxJz2loyQoSKqU$oepBxmhRXrIMYKQ|v=;}lGFNJ) z%P@FpKo}t(qAVm5+R!ju$i!usQHO;JbS{gba>0&~$$+xhnk#vC`(L540kPPCdKnO1 z2}rs@Nzas^`zgu(tPs;(`JRZwHSVwhpyxE>F-=C=9wft e8!yn000RKg9H0XYfIkTU00000PbXFRCwC#*zFC2AP@#%H2vRhQb#D0 zw4I=?aQ)Z~G{Ss~M3oz2T)m+U*&yhkf>twNZZMDXKn{Z)yx_cD6GMVL%o%Up zLnsbR%m`H;MukvZ7!ri*#&hD)55Y0f?aAC4Rl7}P@Ngk3sBzZ{kkmMoBLz0L7;1AkI afB^utM)tkwEfXIA0000pWc?Ln>}1{rUgjp4pUv+vxbki-n96y3~W-ANu?IyZQkO zpNvT#RVPbmrLAA;HY1@=M&w@Mj!zlUqVvR>QNy><+8ug^1U(JaU<#sKAh_?)0?7 zh-1kG#ubH(yI4ZbFwRbV!4}Js#JZr3d&eGzslg4aTAAIlL~|Gz*%&_R+FKWSeFFKH N!PC{xWt~$(697{8URnSE literal 0 HcmV?d00001 diff --git a/images/comics_view_toolbar/setReadButton@2x.png b/images/comics_view_toolbar/setReadButton@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f38872a31b29a674ddb0e41d6fca4f12a72799ce GIT binary patch literal 383 zcmV-_0f7FAP)3j;U;qX3i0 z0<0jezyz`gte_jXfjR;9%*BxA5UwqP@tRx?=p}t=e;^;#_kFab(9y;s9!q3dR>5{y zsP3`ry2_PMu8{%E4z}Bpod6*96C=|j^!Fg@02F`*QI_RviM|*)FnON8@9Vl=uR|DS z)sbPCwr#z;Lk7Yck%A#<$Tb!z7`CV}7#D^#GE>kL#vuVi))0o0f?X_f;TMFa>~@h{W9(LJ4?R~_qDdHvg_}OCDRPhp^W{F*M#7lsh6uSz4 d&?e$3zyPPrlq$gGRCwC7Q!x&MFbp)P5(7J8grC4m zD9=C)Z3lLq01MyX3+)d&vUXr#0$&smMQNL;VCfXwu}>EptZ^J^4?C@cIF2hm63yPa zZQJu4*qh75K*U?EO*`4~L}gi0(=-%@p#Xg3KAE-N8V`F3T-T+dD9HDH5qDijd7e|> z_e(tw+xn>p4IpwHM*#ksMEhw_1O>w|2*5|qm`n$Z#8Q7xhW zuPN-t@~`sQPd+ZDie8L#CXw@ipUOKeA{0j4SSf~!T%;n~5aa bn*bS?;a00000NkvXXu0mjf%(Q+@ literal 0 HcmV?d00001 diff --git a/images/comics_view_toolbar/setUnread@2x.png b/images/comics_view_toolbar/setUnread@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..13643802911f9ee85e93de0d7df96ee546e78af7 GIT binary patch literal 507 zcmVJNRCwC#n7wX;Fc8OW6fuyc3p>0? z!jm*FfS6%uI@(25C1Ws8?DHuz6AXy{i6zqp=)cyYUV$F24-H8a zMZ~f!u3s(}ayp%U*@KFMUK*)k=nq4nyfuKWRgO3Q*Y#;<0 zYK+iZDEPov*|z`R7qk^f0?@e`>aQPTPa3un@}*CwB^ml=<8b}HYV<>6QwoHDI|lI9 zvz;-w6NM51`as`ff!{}Z3~W~8D;4P6WM=Z+*7)q^7W+n|cxQBDKt0bXc1@&s1&)cE xi(L~fUID0^id|b$yaG^@#ZK2hXcO`yzyPge|z6Z8N8002ovPDHLkV1j7U+W7zg literal 0 HcmV?d00001 diff --git a/images/comics_view_toolbar/showMarks.png b/images/comics_view_toolbar/showMarks.png new file mode 100644 index 0000000000000000000000000000000000000000..5da31cce9eb6d5dbb95361c812052347e9dec0cf GIT binary patch literal 316 zcmV-C0mJ@@P)wl?%rl{cptQW?MY-c%j=RULwX6hc{~)Ct>C+ypowU|! zJ5)ik&1mB5Zp8|rPUIHiKz!kRA>N2h>~fV5afOEX1Px+Kj*y~3&gjU117a#iD1}oj z$bBEt`fc#EGrD4!&y1O^bD|FUUPlcI1n~+{;fv&K%@y?EE{gf+h|mQ7Y)FR(4fKvh znA9^n0Ifh(UPlaQcKrHI+Q0VQ}3J&1clVyVTID2E&m&UtnU)G3Vj8 zCs#lXIVhB8u`{uvrw-#7b25d9jNG^Y%Cu*uz%W>+&6(D&0u(KX$jAjyp*?f-A;w$@ zbw09o6`+{JT53*O1xmuSDgf5RuA(f(u|(E8hA3)aV$5WI0!%u`fp0o7(#!gh#CRmf zSHs!}yR@5o{IJc`!Vx3KrqYqxs((o>3*k8RR&0;s$G-)tV1If*`*EeAsJkw`IxX3u z4rilWtLz7*$ZiJIAtRRq39r;DzjGi_t0HoI`6UZqP~ltGK$TjnMsB9E)>W=VZM=_< zKxK2p9@vQ2;vPR)?18O#EubceJy;@M3#d`C`;ULnM%uRk0{|Mj5P literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..dadef532a9ea456f4f0be5cf3975c43abbed24a2 GIT binary patch literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GZk{fVAr-fh{`~)M&uq#d%siEWyQlEWi;MgYUGk^?X5{AT zI;@e{)%|1RhECDN^RBaPca#S)lM`fo-50;ih*+lFz`)Fq)o&~--!N|t&_o7LS3j3^ HP6|k1|%Oc%$NbBBuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrH1%WqZ0fhE&{obIp;f!GOo*Vp!E`88x}HGHTDe9t9b2sa`lb z-`6qiqgJd>f5*0zopr003-8NdN!< literal 0 HcmV?d00001 diff --git a/images/comics_view_toolbar/trash.png b/images/comics_view_toolbar/trash.png new file mode 100644 index 0000000000000000000000000000000000000000..4f0f5a9680bde786a7c14b841c5b2adb9e80d49a GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1G#hxyXAr-fh{`~)M&uq%Tt;gx^ew@`oOU^Un;lIDXg$rh} z6bYKWdGO$ayu7@uu~Ic}w{`&|&vnCvnjPv!9tKwoFX?P(yr-ODbRoLuMUoFs2$N4s zj_YzyvyLo1DbtQ$Y>7*9veZtrwixLI>M4mcut+e(&5xC4esG8hXg!0ctDnm{r-UW| Dy!%6M literal 0 HcmV?d00001 diff --git a/images/comics_view_toolbar/trash@2x.png b/images/comics_view_toolbar/trash@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..bc36a8a1c3cc6e43cd4260c262cc572c9a75f987 GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBBuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrH1%&G&S145_&FX4*mC1_d71m4yu9Ng`^D>d7j18D5_iUfRWS z=>1Yf%`Z#;nk=0%>E%hW%QM&J>qTZWTkE&HH9WSUcJ>zC^ zm;@RaSQHq(?h8&%mJvJ=dgAG-%#2slVwrdtT664X^vfK$2y`lgr>mdKI;Vst0C?(P AjQ{`u literal 0 HcmV?d00001 diff --git a/images/editComic.png b/images/editComic.png deleted file mode 100644 index 8dcc2debc96b79a68fc6567379792ff00271ccc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 280 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GyF6VSLn>~~nRJo!kbywkWe1s$?&WHvE$Cv{+LY7V;Lq9+0_q%{oMqg$8-lZ+n$@3uDp#q zsJ)2A+F)v-GwVwCn@z?y8rp3($>)o#JmYa-qD+ zeEt{mFaKI9oGsXwx%7Ik(#LnbVP31(rMS*M8LxUSf@SjFc-EJ3zjz~K8nkybOm=%@ c!z#h>CN}#T`=*cIfWBbxboFyt=akR{0K5%sD*ylh diff --git a/images/editIcon.png b/images/editIcon.png deleted file mode 100644 index a90fbd9d97e98ed440f5dfd7412b3513f0c8a3da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1G>pfi@Ln>}1{rdmkp4srm!Gn&BGtVD!U@0gmiD6ix$B@Z9 zLqgfZoY7a|=<|hl`W@bEsQ>?uyTa5dmnm}&>yhAzCej9i7ex4v{BoGXcI0NjN?r$P z`Gl>4p29{uIF4{Cq&HdkxMVRkavS(cNPWzR;eQ PozCFt>gTe~DWM4f*mhpE diff --git a/images/exportComicsInfoIcon.png b/images/exportComicsInfoIcon.png deleted file mode 100644 index e1c22edaa2896429768e4edbd00549e7bb199089..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 289 zcmV++0p9+JP)9P;P_G8I`R-AsvQ%jP)8{5rYkv7|T0fD>}i+LVZF2*GA npn*#;T#~icLu2XvSAYQkI?0n(GS73=00000NkvXXu0mjfdhmCv diff --git a/images/exportLibraryIcon.png b/images/exportLibraryIcon.png deleted file mode 100644 index d176e495ddce7e3c967de64af55c4a73d1fcc349..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^{6Ngd!3HEhbh*6;Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JiY9xyIEGZ*O8WEvzdf^6K}ku>hWh{iSWFC4TICyeG;}gr zcd$zyXpsKE{E@|N!dZt_HU~du0c!`_NUCHLVmxzGLEVgLqv8cM zx0-EA%p1-+xbkK^Vli!EP~LVyjU}NjEolLRL87s!u3zVMpNVHnE}v;~<(ZQAv-87u m_Z%~E2i^m#1()zC9AMxUH`<{8=u;HXc?_PeelF{r5}E*BKvPHn diff --git a/images/getInfo.png b/images/getInfo.png deleted file mode 100644 index c62c06397c61566050f73e0fb0bde0f1815744c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 294 zcmeAS@N?(olHy`uVBq!ia0vp@KrFz)1|-ie{%Q%NBuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrH1%o$z#V45_%4^ymM7duFSGk`fb!An68+g#Z8kieGp-Q(^=2 z1hz_zvkq&PF(}k=EHz|MHhV6}v?GV+ zL!ROBQ%14pS`3;3{}{T=#a8@aQP{@*sNaE=FGA@TgTQCzkB$mu4&`$8A&f>1nFl@u zGoBDr>3zXw=al8U}fi7AzZCsS>JidsEg978H@C6yEu2qYvVMDQQs<2lmE>>zW(Wsw@&id$cO zDokP9C)9CKRG#{6MI!v=27%ov6c zb4Fze#U$gTe~DWM4fepyJB diff --git a/images/importComicsInfoIcon.png b/images/importComicsInfoIcon.png deleted file mode 100644 index fbf7c7ee60d50faa904689b38992c3a905685ac2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1Gg`O^sAr-ggTuS6RpuoX)VN&dw$vN)P>K`-o+)b5aZ?Om3 zS50|z@Qf$7(!Ema$$~c=wYCTdrbcRg*>h!bb+4dFT+br$cM6+V_lc~SyX%R7W72}H zx4OM||E|5-$R3sT=b&)V?8OgQeVG$_;x0{iBACE%C&%vfC*yk}K+73CUHx3vIVCg! E0BSi)?*IS* diff --git a/images/importLibraryIcon.png b/images/importLibraryIcon.png deleted file mode 100644 index ea1e07981d56bd1c0e59afdd0e9abe4d8528b0bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^{6Ngd!3HEhbh*6;Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jil%$IIEGZ*O8WEvzkT!K#fur3nGZMq{rz3qU;*QTJN0Zn z9|SwNXDpb*>9FR!gUti>mx(0>1rZD>M;6cA#qgqwDaI;s9plZMhND+%7BsOqU28V6 zX87nTz@8zkJi&|Qk()xDgNL#5LWaZ7bHrBk%5Sik-zbruJflmwiX(g3iDwHJ&SZ7p s^;BKyf?d+)oeWtFalHzq42*0Hod*qqj>)7Z0G-I->FVdQ&MBb@0H2^);Q#;t diff --git a/images/menus_icons/editIcon.png b/images/menus_icons/editIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..3caf15db8e26abbd5c70a7974ebf122569395c0c GIT binary patch literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XHhQ`^hE&{2`t$$4J+o> z)N`bQan(zkDZd3fWWT+?U*D)9?vTs&FlU8;y?}f}WqT*b*^dru_>W|IwB<1DdcYW` zuaN1+Cf;bl_^f7*-hqXZEP4vr$FdmY&T==-68_+(ymD6HAqL%59hZ2@8AFO01=J@k zlDx^y7O>n}LDDI}m}7&2g7c literal 0 HcmV?d00001 diff --git a/images/menus_icons/editIcon@2x.png b/images/menus_icons/editIcon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7be4e0efe42bd06fadea8537d1317a768a121e90 GIT binary patch literal 386 zcmV-|0e$|7P)-W07iff z+(6vGQP=>OKsTTxz$Q8YUXyD=O3xO&gT#1ALug3e>s>!+JdR_uXC%?i@w);=QIyas z-*>UZ9MEuh)cD$VT~}_F0Sm6<0)5SvCCD9pq(s6v@-wsy)7^$jB#ddlLsJ0~6{~<% z^J9QS&nDoQa6XAE^ffHYkbqC)r6(i+d#t^(;j0A#;4=xfWw-!t%5h@biWkC7%^xfR zE8z{xVI&0)5|D&@1*G901-5|uGH{cIJ2xU2c|O^%6|__ePGz7(usPcYDL5sN;i!EQ zU&ASZbn>JmSl}}OtiLT|OR&Lp931J72nl_vWzzQo7hu3u!47w2;E8`Q8rZ{#mGsRh g{$Eb_7I+IV0H_O{Yiw=3LI3~&07*qoM6N<$f=j%dD*ylh literal 0 HcmV?d00001 diff --git a/images/menus_icons/exportComicsInfoIcon.png b/images/menus_icons/exportComicsInfoIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..3857068d77bcadc998f44e311daac4d2b0bd0b40 GIT binary patch literal 299 zcmV+`0o4A9P)9i|s>u{beCYB$6q zZ~}2uI7zJ_6AuvHwpwWRiaBvkRSjyBe-3evm=8>C0pcF>rzTkfmljxb1VY92KY;gS zfYdwYC%2G0ucWj13^-oX{3pr=x8t;Xw>V99NZiU`RbmBD`4%*ye7kb#Wp$)Irrbn? xK@5kIOV(=?6E^59@if@Lf^#ka{Tk;hzyNsdn3aissfz#r002ovPDHLkV1f-Ocx3

Jp6Ls#E}u31jBtC0Oe$^jzQww>}5@lQ7&9{x=4WfDZ!pf&=F= z6M*}?hrd0;U)XF10RU{^n_&Ba-tYxisrw5xo-6@~C~>c=Qfw*00GBxFX%M38eTZ0u z&$i*#BEY`<2R9x>Bf}>)6I>z=ydUFkf-mL*S5Fuw(2$c6R|M62;mXaGBm(aOq@@!! z4-=bNX{V`m+*n=7);yuXb4t((%G1o`3D-O#sBc3}L^b~BOs` m`c@v`Rw-rXVz25?fB^u_AyFjF11u^400009>+A)K7e8+L`}@24f=Nv>pi78+sR1vp;g@Hwap+(DL&AO?#b%3s9@O1TaS?83{1OWS?Sn~h? literal 0 HcmV?d00001 diff --git a/images/menus_icons/exportLibraryIcon@2x.png b/images/menus_icons/exportLibraryIcon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..837f3015faf86e1a8f99e0d5eb23de067b9811a7 GIT binary patch literal 333 zcmV-T0kZyyP)51|NaCb)Zq)#jX>N0H0J_2ArKF81ce^<2jT-ja}3Ch0%|yd9~26dqycJ$1Q;-) z=K`SN4nPVN*C1LRk0A?*NfWrz22d{}MhE~Efr4f~$d?2xr&dTH8~`*d07%sjWI514 zqF$1sfEWkpqgw#Pf}ps9#TT_LM=6M~SVB{ulba2xYB{M6pt|KGIe-?H4~p7w)ByzB z1GviY(I^;oz^DU8UcZ3Ic0Wx*U?UAYzL69MfSPI_sc88}lKKVEZj=L+LIPxl19I1l fam4qI0RjvF4z^b(h`i(e00000NkvXXu0mjf!Zvuu literal 0 HcmV?d00001 diff --git a/images/menus_icons/importComicsInfoIcon.png b/images/menus_icons/importComicsInfoIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..5745fbf208c6d60a36bba5baa8c9e78a6663773e GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X>O5T>Ln>}9nas#_K!L+myUfsklWeZFr+YEy)s8D$YC9Av z@BayOIr721J&dJcch2&V^OncAaGR_0`^aXlWV?1QhfRCOl|Y$;w<`^9v>p}ct=i@2 z`7Mh*Y=_Z(UKusnd2R+XcnoGYCK(+}>geI*p1kOr^y|-ToN-bSU$_hyQm;FG=xVMH Q1GP}>CbFj7j|RW)ON9txAjo^3=ZQ9iU}m<9ncS|D$6;}THW(f#aek+9?wFN!H z-V_)G&kBr$Cjz742Z0&znb+|v5r|c5`Tx-q4y-f+10)Xc>=tyCNZ`dB=pd1WSCddt zq6lxE0tJaG9CZu@5=}U|4lpE8a8e;6NTA{5N{Emk!C9raB0+|;?}Cg33%)lid7Q!x jYPfK*z$sqGUjYUH9>#>58l9&zk|NpU+usRgxnANa6 zVp{Nv)yLqhgVsEj?w^enOdSVbJb2KsPBO*ngemKelEX2qA%{=29R58S;Nu0-) zIig@mah(#=CuKcxkpn868EopMZeE*>9U2%J{=SV}vS^Ld8=zwuJYD@<);T3K0Ra3` BU5)?% literal 0 HcmV?d00001 diff --git a/images/menus_icons/importLibraryIcon@2x.png b/images/menus_icons/importLibraryIcon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..dec6383addf2f04643d449deef75a4b3598274ad GIT binary patch literal 340 zcmV-a0jvIrP)w)20 z8xm834Vw@cb-<_tMjbHf02Wd;kk}8PN(gMEfyXzJ;s8(^{v#DF|A@6;fD1soQ4UlJ m36L2M$XzqW5#Kuo2rvK?Tv&*0hBWm60000}1{rUgjo>{e_v(f1Qlah?Atl^xE_5bVK7V#cn z+aTF>mdVZQaKpue2OD#Q9o8+d5O8FZIih&o!$Chnp8J9%Uj}1{rUgj{;&g+S{ozVV!i~&XBJjgLQ@sKy}y6n z!p6BF!Xd{)P`HU%j;Tj^pG?9+w>d$R#MpctO9~j?*jcRTdc>^qDtk%OUG@`vj0ul2 z8G_mzY6=gWW=!B?vRpP#X01cNOu{0kutgdsY&wEXHU6UP4vQby2)qssk!Ip$+IeE$ z4I!Qt_ZUvZI4nELuGz)pRoko0J0VEyO7LPHiIUz+%q3gOKeQak=+3ypxR{TD!+^p3 Xh~@6OIVaZuy};n<>gTe~DWM4fs$XD_ literal 0 HcmV?d00001 diff --git a/images/menus_icons/removeLibraryIcon.png b/images/menus_icons/removeLibraryIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..83f894d7779cfe81968315cf69457c34a8710f01 GIT binary patch literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XHhQ`^hE&{2`t$$4J+o@V#2{t~2R4OdcJ_7#1+xQ6c?^@B z#oY@V7cWj`nlOw1hPiZ6J?=J1L^;4^cfQa}x3n|MPPQ^S=imE(=Pjhhl@ zB`OGHoM01ZX7&8Q7$WSWXdj}?JnLD1z}6X!9nV5?7>;H~Bs2CaO3ZR>=xlUyu+@KX z;g6uZ!XaMAZ%s^QtpR@oJ?F@;5?d|q;pcHmdKI;Vst06C&vc>n+a literal 0 HcmV?d00001 diff --git a/images/menus_icons/removeLibraryIcon@2x.png b/images/menus_icons/removeLibraryIcon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..23a4c6b6026ddc3fc0bc95c801ca346c6fa55364 GIT binary patch literal 403 zcmV;E0c`$>P)Yz&^Ag z&+`KP) zz!j*0v$fXASS1yJxPYsG)xe_%B-y_u06B;Azznzp6y*4fl#r^Dc^9BXA|p$vnB0(j zTzYXwi5woG7z=Fp+@#|5&ddwBH?F@K>Oqd6_EYh!pcDy}8au``8EF|ylQK@!-64`J zHKySBg-ql1?4J_cx^ePC#mH;89gn;2r@-Ca{<26Yp_q1+C;3eO*h7E;0P>o09PAd% Qwg3PC07*qoM6N<$f~=E-VgLXD literal 0 HcmV?d00001 diff --git a/images/menus_icons/updateLibraryIcon@2x.png b/images/menus_icons/updateLibraryIcon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..edee9abe72c6f01f8d1ebaa1c41846027be1c2e4 GIT binary patch literal 536 zcmV+z0_XjSP)i2B^_yL%-fkYqfu6lWF=$6uroW(N78%RebTOj zx~@lk+IZBnOiNpg(GHTx8PuKc}$SMU;^7e!IotQpv(0Kf#6!EYV-zR(;HDZK~) z{EorHj!|C1QxN%dCIIk-Hi~dxw(AZ# zIDubN4gU#D6w$Pa;R&Ki`-*@!I9WNBrt&rd&)WBpn~A6cxKxg3>h(Sr1b4-ahfab*mzl&Q^c0ls)pSQ3Ap%YfO$g14^x`($rj#pI%DutH1AN)mQ4RmaWDu`rf4Ule a3orm~4Cf{M>{0Ll00008U}fi7AzZCsS>JijqBD978H@CH?vT-@bYA;>Y!DCL8Mi*SWDVHLy-+F=M{S zo6d66M=wD!h1u@F5eG(wOuG)}brT!zHCO!Q`7()dLKMT1UpGvGAH88-z>v*g^s3Ne q_q+-7`5#PJt)61+x{y~OfuZk^%&plsGgkqvWAJqKb6Mw<&;$Uzl0-ZJ diff --git a/images/openInYACReader.png b/images/openInYACReader.png deleted file mode 100644 index caee5d52349d0037c020bcc06ef7e51fd46f227d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 305 zcmV-10nYx3P)5r0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUy(@8`@RCwB?Q-KkJFc2#&zzDj5x=w)jaG{TnaTG1r5vs14Dysfk8%t zW`RMIO6%sL8rn#ceWdt|Hd-c7yg?}=#HDE7lPJ@;MmbKT>A(xuA@(1m9GHv;tC7+5 z-=d5YP+SMCrPx6HnEICRFjXZmw*P*{Q-A>gfcjOc2m)lv00000NkvXXu0mjf D1mt;y diff --git a/images/removeLibraryIcon.png b/images/removeLibraryIcon.png deleted file mode 100644 index 1e34630c55b9ffcafc0c3f175f982e64ab5d7ae0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1|(OmDOUqhk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XmU_B4hE&{|66nZ#*nsCtlY&Uw0udRu#sCiKNxV*{7Vrdd zxn6LTXg(u;^K#14{<$Sx#dhv?s#~scq&%B#a4U8z$K7|0ESgJ|jyv!0lnp(+)A71p ztiejR!+K{9gbP0 Hl+XkK9)4x- diff --git a/images/selectAll.png b/images/selectAll.png deleted file mode 100644 index f71b06da2e8f53c0942d9557f1f3d9fc05d8f813..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^JU}eK!3HFi66di4DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MOB_Ijv*DdlK%YvZ_jM^;Kd6Kh9!IqA6x(a{;qED=yJo7 z2zj+5EK@xg9DSr z1<%~X^wgl##FWaylc_d9MbkW8978H@C6yEuL>xG9K;XQCOvDL}D<9@JvK%<#ptN9J z+nzl(25Mf+9t$T=7H+fP-lZhLpm}e5zWm`Oo|6l*8#GxMbGi&o6toX4lVD-flM{0? zth0A;eEje4Z)pb}clYD$4y)v*^U60`2m%!>c;m7{ri*Pt19QMZrjpkSlK2dK6?nxP pBN#Ob8K=81EaFnw%D~9RP?&4JNN~r(RX`Uqc)I$ztaD0e0sz_0PbdHY diff --git a/images/setUnread.png b/images/setUnread.png deleted file mode 100644 index 7f5356db299847768789d4c3a047490b68ab26c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 287 zcmV+)0pR|LP)agwDge0zz8r5CWm$ z6$@z{tN}v9E570Xzcs@>a)---H(G0N5WMb#KiAR?8?#SgAnHEOJ_;~84(!&5UYANJ ltW3p&we-+9Q^>vr7yuI(PS$!!FJ%A#002ovPDHLkV1jyLae)8; diff --git a/images/showMarks.png b/images/showMarks.png deleted file mode 100644 index ab71f70cc4166750e04cb0d24fece2d3d4519b81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^JU}eK!3HFi66di4DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MSDG6978H@C6yEuRGdF>K;eLc%#Q;uO-TX*2}ufq8x}-! z9uaQ*!7$}L!;zmS)+IOvzu`E--%w#IV&BkJdtjO3#{-Sb;teJC0{IP(>Q+Q3nekTG zawi)wHGj3AHJN9@wgv}9f##eW{Fjfkq;YvTF?KL7oFzIzbn$Hm5d}-Rg3Jhpqb$mN zEK-e*HyQd&+1uM4R>@80m0wVJkwLg&lki4Y84Hg_E`vFYqRq$6giYp%E;Q^Cb$BY` en8nD%!?4WKcH4zZi!6a2VeoYIb6Mw<&;$S$N?;KH diff --git a/images/sidebar/addLabelIcon_osx.png b/images/sidebar/addLabelIcon_osx.png old mode 100644 new mode 100755 index e1d4eee24e587ea1eb3558bc78f762a563838dfe..3f8a8a51a243bd82bd041b6fadbfbc75ab9ac2ac GIT binary patch delta 199 zcmeyw_=!=mGr-TCmrII^fq{Y7)59eQNDF{42OE%-|NK93qM~WNYQw}dwm0|p$1`}C zG88fid|vDsUs6(H!eAKjA;XU0$S(_>wr*p=)sh*?${dfsGBM7UO+1yrwy2_!BmMnx zwG%E&(n>xE+VXIDT;O36zQFs#q3Kzx!+-Mx7NrZ)+zlZ%g0qA_9A&a|HZV!{?X=)I xxJoiT$jz8#d74w@LWWtg32GNi%$Zmu7~~{E!i8`0rvcr@;OXk;vd$@?2>^ggKs^8e delta 199 zcmeyw_=!=mGr-TCmrII^fq{Y7)59eQNb`d*2OE&IzBbisqM~X2&IZ=`PyYS=E!_~p zDDZi)r*26}iBH0z#f6L$Rvlj?$nwaMMOd!)@x69+iFRa~s3W%f(dwQ=dGgekXe{wUF~P;mA9 yjS>x^%3bp}9?53BvVn7l?4N@kp6i%63>fOW9cIb)7X3~2}K-@m^BNF@NVJds)&9UUDTD0TqQVgVp^0EqQT)eCe0 zBQl?fo|a<+Oao~-2(VDwa`Yeu>ibV|2++dkL_2_%mJ^Huax4exaiEF=DDe4yilczm z!H%~eqJ!mvz?|{{s{`m@`9q-Pe+u}bU;&MTeF32~AV5RQ7ot~0WYq-}Se`&kF1SEX z%W>rbP&~!c!*ZPM0V+9ypyhZQBosP=D9Z`9h{$vV(Uud{BqPxgBw0>$n~+FHkZd_g zjZy-RAj@)+Tg5mWLAK>&HOqmHm;j^*^qVsK!5=NV-}>&5VdcK$^ZZW M07*qoM6N<$f>FzSWdHyG delta 336 zcmV-W0k8hn0_*}IiBL{Q4GJ0x0000DNk~Le0000U0000U2nGNE06Q?QqLCpde*q3j zL_t(|+T7RM4T3Nf24En*>jsXXBgh6ifsEh=)(sc|Cr~HA5o8mc0RAR@fB@y3Lt7G? zG))N2mvbqXxUTDHiIGGLjm6-VbYoeT85V`PCER{X(^R!D#F82VEwG%K+d6m>2-V{% zuJH_1-dseq!aSK-&2BD6qzZL>f0{jdd59x+nO<_l0#unuBXiXFurSh{ExnVe_LW{M z90KjZp3!O$272)vX+9S5#v^*i`7T1g7B!mLYOJ3)zYu5##tk1V2Z#75+Do-V+=>p? z*a1F?jyBf}oP=7tT7Z+$$>YSpSt#io6L2=l`pU#3b&utZxo%y40X<4OCXn@cYw$Ld i1O9r4|Kb;>5nurSs(Ppad}`hR0000+OKL;C-yzo%ZbE2X~lCP(WV@SoVq(A@v z+cRr6Ow^M4_Wu5U1{Z59E42lu4Idh4$aP6}Tx}4(5Xby@U+r(P2Sxf~8zz)U7qGmp p&)8tZ*BFp=P*f_!yM}?0jUi*1jO%U_rbeIz44$rjF6*2UngG{XE&Bif 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 3baf3d1bf543fe6aa8657c3b498578a9132ed941..30c05b8af550b03ccd305279bb871055807e5c97 GIT binary patch delta 215 zcmcc3_?1zyGr-TCmrII^fq{Y7)59eQNGpIa2OE$quB!SnQBk9Qx~Gd{NX4zBKmY&R zA9i3;Yhz?v%$J}T{`lYD-_i{swo`7uc=6(fL!V{O6BVZgPnjHE*=~}!z}Ta#&dX5y zJJCeE$133p;}s?eR>3Gv_uPiSq(v4C(I8e_65l!#2Hl5JnHllQ7pDpuSjli)^?b3= zTj2$Nz*@5ws}KKAtkvapmo<3R5XhdOdG&;zt)%l>h($ delta 189 zcmV;u07C!u0owr~iBL{Q4GJ0x0000DNk~Le0000O0000U2nGNE05&e(<&hyMe|h<($yLmm>H}VXxtDu^J#4!&^ZjAu6{1-oD!MJl#pC>Qbhq%5G$plYVDn#D7&W!F2#T|XHZ b*%*E~=1(wiBL{Q4GJ0x0000DNk~Le0000W0000W2nGNE0CReJ^pPPbf8j|) zK~#9!V*LOAKf^!*CWZk9qYfB#0MQQEzkmM)AXXU25YPu=kRt*HG79*Ccs4~UCakMcVfYatqVQ^aUw7=5)}*03g5sGWkqh&XE*N00000NkvXXu0mjf>}6qF delta 268 zcmV+n0rUR90;&QbiBL{Q4GJ0x0000DNk~Le0000E0000K2nGNE0KEkaERi87f6Pfl zK~#9!V%WED-vuC6`2YVu11Xq^fq_9Eh%fBlzdwM11i%EP`GI&nP;&#Z8X1Ak{EsGf z5QqaD9UVUqV&Y+1LowKvdRZL2?=>)HV;F00000 diff --git a/images/sidebar/delete_sidebar_osx.png b/images/sidebar/delete_sidebar_osx.png old mode 100644 new mode 100755 index 6a4808d2cf0356da7cce1fc0cc00be1e593d95da..61bf6f9ed76e2ca317cce88817362a418b86b272 GIT binary patch delta 164 zcmdnZc$iVKGr-TCmrII^fq{Y7)59eQNDF{42OE%-|NK93qM}Ass;7%%NX4zBKmY&R zGpjam&VSO#%>J+0AWqmp??Bu4_xJzHOH0cdD^)ix$PIY#;K2coWaA(yHk})PeAm3S zU>01);iA0RvyZiFap4sPqsxo}IxS0CpO`SF>br!W@wj})gNK2`fWcoo;?auKIlF)s OGkCiCxvX+OKL;C-yzo%ZbE2X~QLLwnV@SoVq(A@v z+cRr6aL#_v$jtt)*&s|-L3+Z+e}8}fPfk8;pxkjFQ%b6!pdcYdE{=_Ib0p?~V}ALIzJ)KbLh* G2~7aAqBs@+ 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 237e49822990768e3f2ccbbdf728454865f608ab..b15e34f6e4f8e863c72aaf75f9b66771d8a0ba3c GIT binary patch delta 182 zcmX@bc!g21Gr-TCmrII^fq{Y7)59eQNGpIa2OE$quB!SnQBkA5%+tj&q~cc6pa1{u z4?8fawK1~kJjt>tc);Lw!P3IQpsz=u;it^q<2#P9*K!yq{;&`0xts8O>yi`!|& ztfj0@JCj~aVK$gA5X~nbUBoQMw3tt#^uP*cH(7&M4T0w;UHx3vIVCg!0IT>r@c;k- delta 172 zcmcb@c#2W6Gr-TCmrII^fq{Y7)59eQNJ{{*90wbaG}F8HbfTh0eU7J#V@SoVq(A@v z+cWDj3N!aIa&P3~m$7Jg6w1!der(}G<{76i#`bv6d1sfs8jrp}B1c!+n#6|V0z79e zm<78PBTSnal=m&+;f-L6nZ+q(;1s0f(7?#>r%b`z>~YXNpk)l6u6{1-oD!M+O8wVSZ{Qj=KaiXF|yqBkoV@SoVq&wU5 z?=!KnwNK4!V5EXwr7O*x)SOl_Zex=l_5E mwu!&LzmIQ7Vc=rmFktYVF3Du#nYj*VI)kUHpUXO@geCy<@hqVL diff --git a/images/sidebar/expand_osx@2x.png b/images/sidebar/expand_osx@2x.png old mode 100644 new mode 100755 index 135314f8fe64f4f00b523408163564c5a0352c62..7bb3316ea934dea6eb6c486daf1bf0d54a9352e2 GIT binary patch delta 215 zcmcb>_?1zyGr-TCmrII^fq{Y7)59eQNGpIa2OE$quB!SnQBk9Qx~Gd{NX4x;(=Kuz zP~c(RT4Jc4>Arfh#jMkxz7mkNj zZOKCCt)Kf9v0q~P&$_3IMOdY)U=ur=SIEP&YBCCrha$Hxa9+fj9`D@B!mW3Tv5`eu zk58$sg=3wUlamuqxO<_at`lqh>2EcsgL9;H_e3+CH)K)xz}*<#z{pVi-n6|%WAP23 PTNylE{an^LB{Ts5Wv@)D delta 178 zcmV;j08Rh(0nh;l}4)1dyz$ z_B9hYeg82q=QSuDKjNU~aQ#Jt`&#B*w@-4(d|KRmhs7aslCt_lW)=yCrnJO87H4L< Q10BNP>FVdQ&MBb@0M$%SSpWb4 literal 0 HcmV?d00001 diff --git a/images/sidebar/newLibraryIcon_osx.png b/images/sidebar/newLibraryIcon_osx.png old mode 100644 new mode 100755 index 60e1eed9c7b8e414f80da99d84804dfb7c1d23e6..7c4a5aea2ecd681585d1d051ae85c5c23d3ca07e GIT binary patch delta 140 zcmZ39bh~9F92H)fzi{#5WTw*C24$&(lN@eK ov={1Z5a7z~Vw$KI$G~C0aGOm=XW=BSIG_a#p00i_>zopr0PY+u!vFvP delta 138 zcmZ3@xROz^Gr-TCmrII^fq{Y7)59eQNb>+OKL;C-yzo%ZbE2X~g14uOV@SoVq(A@v z+cRr6bT+y)gdYC)_qTY1fu`9JXT#n(E}^_VzrVeWZaBR+;(*ho+yi2T2NYPjt*oq! n_!tR7%M+a2POX&6Z$S@ROYZG@ilJ)z4*}Q$iB}uAnTW diff --git a/images/sidebar/newLibraryIcon_osx@2x.png b/images/sidebar/newLibraryIcon_osx@2x.png old mode 100644 new mode 100755 index 3baf3d1bf543fe6aa8657c3b498578a9132ed941..30c05b8af550b03ccd305279bb871055807e5c97 GIT binary patch delta 215 zcmcc3_?1zyGr-TCmrII^fq{Y7)59eQNGpIa2OE$quB!SnQBk9Qx~Gd{NX4zBKmY&R zA9i3;Yhz?v%$J}T{`lYD-_i{swo`7uc=6(fL!V{O6BVZgPnjHE*=~}!z}Ta#&dX5y zJJCeE$133p;}s?eR>3Gv_uPiSq(v4C(I8e_65l!#2Hl5JnHllQ7pDpuSjli)^?b3= zTj2$Nz*@5ws}KKAtkvapmo<3R5XhdOdG&;zt)%l>h($ delta 189 zcmV;u07C!u0owr~iBL{Q4GJ0x0000DNk~Le0000O0000U2nGNE05&e(<&hyMe|RG|34N5Q^t;;ofmGuc=6)KffhB7HE9AXju$Zc7+*+ntFda-YyCaDv(c#` ziQz=rjJFQaVgj-qC;Xg>wN6}MSrpsAdPKO0v-B_ncZA0YZk`2GI(XmT-k#4WxAVUO zPm=M%c~5;6b#=Y^tg#>h2oJ0H-Up5nPqGo1`Kj*5o8n0HlV2s2nG(!YAj9y8J0lMMl2v6pUsr}5ery|Tcl!K1bYN zKL|6zk{m3MXdaKqDd!_7_27ygAbf#S0M$$kXaoo_02H}ajX3#+?*IS*07*qoM6N<$ Ef&m;#xBvhE diff --git a/images/sidebar/openLibraryIcon_osx@2x.png b/images/sidebar/openLibraryIcon_osx@2x.png old mode 100644 new mode 100755 index da93f1f9309ecbeddf04497da68849150513417d..0875b44ddfe4d51431bf77041863d36a06c3b477 GIT binary patch delta 302 zcmV+}0nz@?0?Ps+iBL{Q4GJ0x0000DNk~Le0000W0000W2nGNE0CReJ^pPPbf9**` zK~#9!V*LOAKf^!*CWZk9Echh%@853#q#A(OpNe))baZqqfN>acMFG_E13=7A1CJ*H z9kGB=6g1Gtau5h0CJp%0FzOwMN(0CM7-Wo;*a(bL4V2Fb)&=M#BP@idY58b%Jox(s_|gQ0;3F|1u#tuyKR}EF8jxK| zWw3#u1Ay7>0<`_Uk;*|o5jiU}j`-d&K!5=N1L#ps7{40>00000NkvXX1g=70g8$`j Ay#N3J delta 306 zcmV-20nPr)0?z^=iBL{Q4GJ0x0000DNk~Le0000S0000U2nGNE06)ckpOGObfAL8~ zK~#9!V*LOAKLb4h3pT<1`}Yd~sR=;r0L1cCvg;xcCorP>5NMeKkh%cG{50_3MkXwR z4K%V01pKjC7(nkhME9Mdqod;kaxDNx5lWmf5z;`3W!L}{1DyfgEo8wGgp4@iVgXPt zfu25$2U$w757AQ*5tcGg;!|?se~==dlACDAwv>`oN|vQVDjzN+C-E@R(=u``Tu4c_ zV8KHq)$ diff --git a/images/sidebar/renameListIcon_osx.png b/images/sidebar/renameListIcon_osx.png old mode 100644 new mode 100755 index 8f6fffdaa79eeca1a4c224ed4034047bd35e2ac5..3ed190fd66929bc70641ec2404bb713608cbf603 GIT binary patch delta 226 zcmeyz*ubRN8Q|y6%O%Cdz`(%k>ERLtqy<2jgAGW^fBv61QBk9Qk*AAeNX4zBKmY&R zGpjaqiX3Iu8+nI}W^I&eaR2PI;2F!F ziyo`erWiPMYb`Qayn6wIMTfBG#hyHd6EFEZ+61ofFzIB}%=piH(OFtNVM%u05jF-U a9)|D7eZ340UbzEwHiM_DpUXO@geCy0q)}i1 delta 224 zcmZo*`p2l)8Q|y6%O%Cdz`(%k>ERLtr1^lDpMwoZUJ?0MGEq^Zeu1ZpV@SoVq(A@v z+cR4>bVjtY^T`A#L@EbdW>P3+^pHMqM1s>&bkz@=DZd3fWE&nZ#q|cvc92SE{1~Eg zmd%I7 z7B`Fdet6-)UDPydLaq*j*&~-EQ^jl+%ZrSj#&Nz12bzww{X8#V`K5r-t*DsYp@EU% Y=|sP-Lp)pufsSVIboFyt=akR{03>KjsQ>@~ diff --git a/images/sidebar/renameListIcon_osx@2x.png b/images/sidebar/renameListIcon_osx@2x.png old mode 100644 new mode 100755 index 7270703c52d25a7223c259deec04edef209bcf79..9a6a25c9d6276388125b08309a9f36bef3ecb26e GIT binary patch delta 341 zcmV-b0jmD&0`dYOiBL{Q4GJ0x0000DNk~Le0000W0000W2nGNE0CReJ^pPPbe-ueX zK~#9!?3arTf-n$b3`t~?y8y5wraN=1&{|hZWWZq5 z%ynlbL^41RzhG!fWFM1>*#d)_f7cNbJ4n1mN-%&c0vbBjOgRc0K1+asha}jAIH?34 zxE*#mz}63uMHmV1B>+B%HKLL5F0Nvoa01-fd`1hTf=3CYga-vu!@UAaz@6LB^Hmdt z`!dkA%O*9P6~Nn9c;J(|Sd$X&%D_2NVm91Yf{=s=JhTm65@PU}Ml_T-D@nrHZ3rOu ndAtFfs|1n#{|$d$;3L2Qny0DolGT+Y00000NkvXXu0mjf4Nr_U delta 335 zcmV-V0kHn^0_*}IiBL{Q4GJ0x0000DNk~Le0000S0000U2nGNE06)ckpOGObe-24R zK~#9!%+`Ssf*=$CP~sY(5!@h0pbgrfnxIB;10A6e7(pkf5pn|ics~yn1@V8cf5&l% z$GZ=R$fjw;mPLwnm%?l!uV>6#ZB@uSEFfoTxWvHQ4j^`s(uAN3G zB{o$EDhbx?h#C6OBpMuS5D|dhf0R=1DA0lVP=gh}mv-j3A;9dY5Nu(Hr`;J024Wow zP#XOmF2qb^(I-s=)?2ehAT>4%a$u7n7v=;xu@T6PxiT~dam|JGK*%nG0ZKe2Y7T6e z;T_N-0FB06Q+n~BtFR6PGB h0srMy-xps21^~ZU_yDo^p%MT9002ovPDHLkV1oY$gB}0? diff --git a/images/sidebar/setRoot_osx.png b/images/sidebar/setRoot_osx.png old mode 100644 new mode 100755 index 6101b824b0416768c1ce0d7a2039ae3f4c6e87eb..a2da070d90ad397a588e851d3a32300b2b6245c9 GIT binary patch delta 246 zcmVwYHUI1!H08$fxm>(+i5r_+b zc)p{fBO|g}7A%@U8uOvtgHYNYq#3UZpnlx|RSW_XfwmRkFf;%t_W|7n3!s`|&OHFs zcmXOG01b}`P&EsnVkm+50BX7eOb~y7YS4$`3s5l!sG0{j0};)+=m735e9@SXC))E# wN=Tq6LytC+44^nE)5QQrn&w7g06>5N0PFxq^4I|wRsaA107*qoM6N<$f(-3fGXMYp delta 241 zcmVz{D3aUghjCdkh%cEP&Nu+M79B_AOT2C0AhZq&_^IH z0OI*T+ZaItEJ%t$3iF}dgHYNYq!`79ef#!-+`9oP2?7&=rWN2YBmiW?0;pn`^#_0o zFF+LqK>afTs%8Pm(+{A!9f0@)M^u466kmXfIY8AsfO{IvdUODHCUUUiQj8+UgiRI{ rgs@;F7;%IE?KLoBOMLhMK!5=N*C#?zJFee000000NkvXXu0mjfOcz*h diff --git a/images/sidebar/setRoot_osx@2x.png b/images/sidebar/setRoot_osx@2x.png old mode 100644 new mode 100755 index e4a110eb11dd7fc823af7f4f6f95b9e9f6cdb201..5dfcdd991ce275cc0bd821f2cc53a6fe842efc84 GIT binary patch delta 409 zcmV;K0cQTC1GWPpiBL{Q4GJ0x0000DNk~Le0000W0000W2nGNE0CReJ^pPPbe^^OG zK~#9!>{sm#fEr@g? zMAi8Y;1}>KY!pNqz5^+FB%O$=^CLcX{ihcf-np%J^#@S+(6s_HedtU0GvcdzzJXiU;}jnN013H!JxI$7D4X(Aa}V2 z6JF>`(rVRp&88IoO>j{ZF6tx+0641B&Kz&GZh1doNY^xVV#PwMNf6mBv*42d@__ifiMJkF-v1W=id_Ul9I4qJ0K3T4oXn=02*tkJao7!Dt>9@dG5f&Nf#t_6l*(2Xa?2C zZMnd!%(o+e`$9*xo#RtmVvIxY$l`My-vo~Iq|z6nosy5~>Vg#E)&qLRULqzvhwNk6 z=sm=0i=1>$GHpLm@X8eR3Lr^l95e+bCV8XGG|AzJ<3AjA9}JO2-$414Y){Xh-e{9w mnR9|U!LYwAf4_sf00RKX}{8U}fi7AzZCsS>Jijq8C978H@CH?vT-=3Mr!pdqH@~ diff --git a/images/updateLibraryIcon.png b/images/updateLibraryIcon.png deleted file mode 100644 index ff68a204f0421878c2461b26a7cafe8e60a0f519..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 306 zcmV-20nPr2P)0Jd-yv=`HM0etR3KsnYPT0<|04ju1NW~!oO_yKh*{-_vgs7yrlNfrv= z5S;E<=s=qpXNzVAP;cB{GuC5{!)~fM&RBkcb1f4KO)90*lsA-Xz5%hNVaDqZh@Q!l zk6;_0g$H2_QgA1Jwwg+%zjd5504TNiZ{(H?`CEVi08yc4*>=s(od5s;07*qoM6N<$ Ef