From ab638a55250a5e8b470195288e70dd4710ed9350 Mon Sep 17 00:00:00 2001 From: nowrep Date: Mon, 24 Mar 2014 16:08:33 +0100 Subject: [PATCH] [IconProvider] Use fallback oxygen icon theme (in oxygen-fallback.qrc) Instead of manually setting fallback icons, use globally fallback theme. --- src/lib/app/browserwindow.cpp | 2 +- src/lib/app/mainmenu.cpp | 14 +-- src/lib/bookmarks/bookmarksmanager.cpp | 11 ++- src/lib/bookmarks/bookmarksmenu.cpp | 3 +- src/lib/bookmarks/bookmarkstoolbar.cpp | 7 +- src/lib/cookies/cookiemanager.cpp | 3 +- src/lib/data/icons.qrc | 5 +- .../{locationbar => menu}/privatebrowsing.png | Bin src/lib/data/icons/menu/settings.png | Bin 0 -> 945 bytes .../unknownpage.png => other/empty-page.png} | Bin src/lib/data/oxygen-fallback.qrc | 43 ++++++++ .../oxygen-fallback/16x16/bookmark-new.png | Bin 0 -> 707 bytes .../16x16/bookmarks-organize.png | Bin 0 -> 625 bytes .../data/oxygen-fallback/16x16/configure.png | Bin 0 -> 717 bytes .../oxygen-fallback/16x16/dialog-close.png | Bin 0 -> 813 bytes .../data/oxygen-fallback/16x16/go-down.png | Bin 0 -> 623 bytes .../data/oxygen-fallback/16x16/go-home.png | Bin 0 -> 635 bytes .../16x16/go-jump-locationbar.png | Bin 0 -> 641 bytes .../data/oxygen-fallback/16x16/go-next.png | Bin 0 -> 721 bytes .../oxygen-fallback/16x16/go-previous.png | Bin 0 -> 634 bytes src/lib/data/oxygen-fallback/16x16/go-up.png | Bin 0 -> 672 bytes .../data/oxygen-fallback/16x16/list-add.png | Bin 0 -> 564 bytes .../oxygen-fallback/16x16/list-remove.png | Bin 0 -> 332 bytes .../oxygen-fallback/16x16/process-stop.png | Bin 0 -> 722 bytes .../data/oxygen-fallback/16x16/tab-new.png | Bin 0 -> 520 bytes .../oxygen-fallback/16x16/user-trash-full.png | Bin 0 -> 822 bytes .../oxygen-fallback/16x16/view-refresh.png | Bin 0 -> 931 bytes .../oxygen-fallback/16x16/view-restore.png | Bin 0 -> 370 bytes .../data/oxygen-fallback/16x16/window-new.png | Bin 0 -> 377 bytes .../oxygen-fallback/22x22/bookmark-new.png | Bin 0 -> 1031 bytes .../22x22/bookmarks-organize.png | Bin 0 -> 897 bytes .../data/oxygen-fallback/22x22/configure.png | Bin 0 -> 1101 bytes .../oxygen-fallback/22x22/dialog-close.png | Bin 0 -> 1251 bytes .../data/oxygen-fallback/22x22/go-down.png | Bin 0 -> 892 bytes .../data/oxygen-fallback/22x22/go-home.png | Bin 0 -> 935 bytes .../22x22/go-jump-locationbar.png | Bin 0 -> 957 bytes .../data/oxygen-fallback/22x22/go-next.png | Bin 0 -> 940 bytes .../oxygen-fallback/22x22/go-previous.png | Bin 0 -> 907 bytes src/lib/data/oxygen-fallback/22x22/go-up.png | Bin 0 -> 929 bytes .../data/oxygen-fallback/22x22/list-add.png | Bin 0 -> 907 bytes .../oxygen-fallback/22x22/list-remove.png | Bin 0 -> 498 bytes .../oxygen-fallback/22x22/process-stop.png | Bin 0 -> 1078 bytes .../data/oxygen-fallback/22x22/tab-new.png | Bin 0 -> 791 bytes .../oxygen-fallback/22x22/user-trash-full.png | Bin 0 -> 1108 bytes .../oxygen-fallback/22x22/view-refresh.png | Bin 0 -> 1283 bytes .../oxygen-fallback/22x22/view-restore.png | Bin 0 -> 433 bytes .../data/oxygen-fallback/22x22/window-new.png | Bin 0 -> 680 bytes .../32x32/preferences-desktop.png | Bin 0 -> 2245 bytes .../32x32/preferences-system-network.png | Bin 0 -> 2685 bytes src/lib/data/oxygen-fallback/index.theme | 15 +++ src/lib/downloads/downloaditem.cpp | 5 +- src/lib/downloads/downloadmanager.cpp | 2 +- src/lib/history/historymenu.cpp | 2 +- src/lib/lib.pro | 1 + .../completer/locationcompleterdelegate.cpp | 2 +- src/lib/navigation/websearchbar.cpp | 3 +- src/lib/other/sourceviewer.cpp | 3 +- src/lib/popupwindow/popupwindow.cpp | 5 +- src/lib/rss/rssmanager.cpp | 2 +- src/lib/sidebar/bookmarkssidebar.cpp | 7 +- src/lib/tools/iconprovider.cpp | 92 +++++++----------- src/lib/tools/iconprovider.h | 8 +- src/lib/tools/toolbutton.cpp | 3 +- src/lib/webview/tabbar.cpp | 8 +- src/lib/webview/webview.cpp | 20 ++-- src/main/main.cpp | 5 + 66 files changed, 161 insertions(+), 110 deletions(-) rename src/lib/data/icons/{locationbar => menu}/privatebrowsing.png (100%) create mode 100644 src/lib/data/icons/menu/settings.png rename src/lib/data/icons/{locationbar/unknownpage.png => other/empty-page.png} (100%) create mode 100644 src/lib/data/oxygen-fallback.qrc create mode 100644 src/lib/data/oxygen-fallback/16x16/bookmark-new.png create mode 100644 src/lib/data/oxygen-fallback/16x16/bookmarks-organize.png create mode 100644 src/lib/data/oxygen-fallback/16x16/configure.png create mode 100644 src/lib/data/oxygen-fallback/16x16/dialog-close.png create mode 100644 src/lib/data/oxygen-fallback/16x16/go-down.png create mode 100644 src/lib/data/oxygen-fallback/16x16/go-home.png create mode 100644 src/lib/data/oxygen-fallback/16x16/go-jump-locationbar.png create mode 100644 src/lib/data/oxygen-fallback/16x16/go-next.png create mode 100644 src/lib/data/oxygen-fallback/16x16/go-previous.png create mode 100644 src/lib/data/oxygen-fallback/16x16/go-up.png create mode 100644 src/lib/data/oxygen-fallback/16x16/list-add.png create mode 100644 src/lib/data/oxygen-fallback/16x16/list-remove.png create mode 100644 src/lib/data/oxygen-fallback/16x16/process-stop.png create mode 100644 src/lib/data/oxygen-fallback/16x16/tab-new.png create mode 100644 src/lib/data/oxygen-fallback/16x16/user-trash-full.png create mode 100644 src/lib/data/oxygen-fallback/16x16/view-refresh.png create mode 100644 src/lib/data/oxygen-fallback/16x16/view-restore.png create mode 100644 src/lib/data/oxygen-fallback/16x16/window-new.png create mode 100644 src/lib/data/oxygen-fallback/22x22/bookmark-new.png create mode 100644 src/lib/data/oxygen-fallback/22x22/bookmarks-organize.png create mode 100644 src/lib/data/oxygen-fallback/22x22/configure.png create mode 100644 src/lib/data/oxygen-fallback/22x22/dialog-close.png create mode 100644 src/lib/data/oxygen-fallback/22x22/go-down.png create mode 100644 src/lib/data/oxygen-fallback/22x22/go-home.png create mode 100644 src/lib/data/oxygen-fallback/22x22/go-jump-locationbar.png create mode 100644 src/lib/data/oxygen-fallback/22x22/go-next.png create mode 100644 src/lib/data/oxygen-fallback/22x22/go-previous.png create mode 100644 src/lib/data/oxygen-fallback/22x22/go-up.png create mode 100644 src/lib/data/oxygen-fallback/22x22/list-add.png create mode 100644 src/lib/data/oxygen-fallback/22x22/list-remove.png create mode 100644 src/lib/data/oxygen-fallback/22x22/process-stop.png create mode 100644 src/lib/data/oxygen-fallback/22x22/tab-new.png create mode 100644 src/lib/data/oxygen-fallback/22x22/user-trash-full.png create mode 100644 src/lib/data/oxygen-fallback/22x22/view-refresh.png create mode 100644 src/lib/data/oxygen-fallback/22x22/view-restore.png create mode 100644 src/lib/data/oxygen-fallback/22x22/window-new.png create mode 100644 src/lib/data/oxygen-fallback/32x32/preferences-desktop.png create mode 100644 src/lib/data/oxygen-fallback/32x32/preferences-system-network.png create mode 100644 src/lib/data/oxygen-fallback/index.theme diff --git a/src/lib/app/browserwindow.cpp b/src/lib/app/browserwindow.cpp index 6b8715379..4590f6899 100644 --- a/src/lib/app/browserwindow.cpp +++ b/src/lib/app/browserwindow.cpp @@ -325,7 +325,7 @@ void BrowserWindow::setupUi() statusBar()->setCursor(Qt::ArrowCursor); m_progressBar = new ProgressBar(statusBar()); m_privateBrowsing = new QLabel(this); - m_privateBrowsing->setPixmap(QPixmap(":/icons/locationbar/privatebrowsing.png")); + m_privateBrowsing->setPixmap(IconProvider::privateBrowsingIcon().pixmap(16)); m_privateBrowsing->setVisible(false); m_privateBrowsing->setToolTip(tr("Private Browsing Enabled")); m_adblockIcon = new AdBlockIcon(this); diff --git a/src/lib/app/mainmenu.cpp b/src/lib/app/mainmenu.cpp index be002ba5b..cb49b47cb 100644 --- a/src/lib/app/mainmenu.cpp +++ b/src/lib/app/mainmenu.cpp @@ -498,7 +498,7 @@ void MainMenu::init() connect(action, SIGNAL(triggered()), this, SLOT(showAboutDialog())); m_actions[QSL("Standard/About")] = action; - action = new QAction(QIcon::fromTheme(QSL("preferences-desktop"), QIcon(QSL(":/icons/theme/settings.png"))), tr("Pr&eferences"), this); + action = new QAction(IconProvider::settingsIcon(), tr("Pr&eferences"), this); action->setMenuRole(QAction::PreferencesRole); action->setShortcut(QKeySequence(QKeySequence::Preferences)); connect(action, SIGNAL(triggered()), this, SLOT(showPreferences())); @@ -515,9 +515,9 @@ void MainMenu::init() connect(m_menuFile, SIGNAL(aboutToShow()), this, SLOT(aboutToShowFileMenu())); connect(m_menuFile, SIGNAL(aboutToHide()), this, SLOT(aboutToHideFileMenu())); - ADD_ACTION("File/NewTab", m_menuFile, QIcon::fromTheme(QSL("tab-new"), QIcon(QSL(":/icons/menu/tab-new.png"))), tr("New Tab"), SLOT(newTab()), "Ctrl+T"); - ADD_ACTION("File/NewWindow", m_menuFile, QIcon::fromTheme(QSL("window-new")), tr("&New Window"), SLOT(newWindow()), "Ctrl+N"); - ADD_ACTION("File/NewPrivateWindow", m_menuFile, QIcon(QSL(":/icons/locationbar/privatebrowsing.png")), tr("New &Private Window"), SLOT(newPrivateWindow()), "Ctrl+Shift+P"); + ADD_ACTION("File/NewTab", m_menuFile, IconProvider::newTabIcon(), tr("New Tab"), SLOT(newTab()), "Ctrl+T"); + ADD_ACTION("File/NewWindow", m_menuFile, IconProvider::newWindowIcon(), tr("&New Window"), SLOT(newWindow()), "Ctrl+N"); + ADD_ACTION("File/NewPrivateWindow", m_menuFile, IconProvider::privateBrowsingIcon(), tr("New &Private Window"), SLOT(newPrivateWindow()), "Ctrl+Shift+P"); ADD_ACTION("File/OpenLocation", m_menuFile, QIcon::fromTheme(QSL("document-open-remote")), tr("Open Location"), SLOT(openLocation()), "Ctrl+L"); ADD_ACTION("File/OpenFile", m_menuFile, QIcon::fromTheme(QSL("document-open")), tr("Open &File..."), SLOT(openFile()), "Ctrl+O"); ADD_ACTION("File/CloseWindow", m_menuFile, QIcon::fromTheme(QSL("window-close")), tr("Close Window"), SLOT(closeWindow()), "Ctrl+Shift+W"); @@ -561,8 +561,8 @@ void MainMenu::init() m_menuView->addMenu(sidebarMenu); ADD_CHECKABLE_ACTION("View/ShowStatusBar", m_menuView, QIcon(), tr("Sta&tus Bar"), SLOT(showStatusBar()), ""); m_menuView->addSeparator(); - ADD_ACTION("View/Stop", m_menuView, IconProvider::standardIcon(QStyle::SP_BrowserStop), tr("&Stop"), SLOT(stop()), "Esc"); - ADD_ACTION("View/Reload", m_menuView, IconProvider::standardIcon(QStyle::SP_BrowserReload), tr("&Reload"), SLOT(reload()), "F5"); + ADD_ACTION("View/Stop", m_menuView, QIcon::fromTheme(QSL("process-stop")), tr("&Stop"), SLOT(stop()), "Esc"); + ADD_ACTION("View/Reload", m_menuView, QIcon::fromTheme(QSL("view-refresh")), tr("&Reload"), SLOT(reload()), "F5"); m_menuView->addSeparator(); ADD_ACTION("View/ZoomIn", m_menuView, QIcon::fromTheme(QSL("zoom-in")), tr("Zoom &In"), SLOT(zoomIn()), "Ctrl++"); ADD_ACTION("View/ZoomOut", m_menuView, QIcon::fromTheme(QSL("zoom-out")), tr("Zoom &Out"), SLOT(zoomOut()), "Ctrl+-"); @@ -585,7 +585,7 @@ void MainMenu::init() ADD_ACTION("Tools/DownloadManager", m_menuTools, QIcon(), tr("&Download Manager"), SLOT(showDownloadManager()), "Ctrl+Y"); ADD_ACTION("Tools/CookiesManager", m_menuTools, QIcon(), tr("&Cookies Manager"), SLOT(showCookieManager()), ""); ADD_ACTION("Tools/AdBlock", m_menuTools, QIcon(), tr("&AdBlock"), SLOT(showAdBlockDialog()), ""); - ADD_ACTION("Tools/RssReader", m_menuTools, QIcon(":/icons/menu/rss.png"), tr("RSS &Reader"), SLOT(showRssManager()), ""); + ADD_ACTION("Tools/RssReader", m_menuTools, QIcon(), tr("RSS &Reader"), SLOT(showRssManager()), ""); ADD_ACTION("Tools/WebInspector", m_menuTools, QIcon(), tr("Web In&spector"), SLOT(showWebInspector()), "Ctrl+Shift+I"); ADD_ACTION("Tools/ClearRecentHistory", m_menuTools, QIcon::fromTheme(QSL("edit-clear")), tr("Clear Recent &History"), SLOT(showClearRecentHistoryDialog()), "Ctrl+Shift+Del"); m_menuTools->addSeparator(); diff --git a/src/lib/bookmarks/bookmarksmanager.cpp b/src/lib/bookmarks/bookmarksmanager.cpp index 96768b8bd..92b3f5842 100644 --- a/src/lib/bookmarks/bookmarksmanager.cpp +++ b/src/lib/bookmarks/bookmarksmanager.cpp @@ -17,12 +17,13 @@ * ============================================================ */ #include "bookmarksmanager.h" #include "ui_bookmarksmanager.h" -#include "bookmarks.h" -#include "bookmarkitem.h" #include "bookmarksmodel.h" #include "bookmarkstools.h" +#include "bookmarkitem.h" +#include "bookmarks.h" #include "mainapplication.h" #include "browserwindow.h" +#include "iconprovider.h" #include "qztools.h" #include @@ -101,9 +102,9 @@ void BookmarksManager::bookmarksSelected(const QList &items) void BookmarksManager::createContextMenu(const QPoint &pos) { QMenu menu; - QAction* actNewTab = menu.addAction(QIcon::fromTheme("tab-new", QIcon(":/icons/menu/tab-new.png")), tr("Open in new tab")); - QAction* actNewWindow = menu.addAction(QIcon::fromTheme("window-new"), tr("Open in new window")); - QAction* actNewPrivateWindow = menu.addAction(QIcon(":icons/locationbar/privatebrowsing.png"), tr("Open in new private window")); + QAction* actNewTab = menu.addAction(IconProvider::newTabIcon(), tr("Open in new tab")); + QAction* actNewWindow = menu.addAction(IconProvider::newWindowIcon(), tr("Open in new window")); + QAction* actNewPrivateWindow = menu.addAction(IconProvider::privateBrowsingIcon(), tr("Open in new private window")); menu.addSeparator(); menu.addAction(tr("New Bookmark"), this, SLOT(addBookmark())); diff --git a/src/lib/bookmarks/bookmarksmenu.cpp b/src/lib/bookmarks/bookmarksmenu.cpp index 6d76b3871..a703ac188 100644 --- a/src/lib/bookmarks/bookmarksmenu.cpp +++ b/src/lib/bookmarks/bookmarksmenu.cpp @@ -21,7 +21,6 @@ #include "bookmarks.h" #include "mainapplication.h" #include "browsinglibrary.h" -#include "iconprovider.h" #include "browserwindow.h" #include "qzsettings.h" #include "tabwidget.h" @@ -153,7 +152,7 @@ void BookmarksMenu::init() addAction(QIcon::fromTheme("bookmark-new"), tr("Bookmark &This Page"), this, SLOT(bookmarkPage()))->setShortcut(QKeySequence("Ctrl+D")); addAction(QIcon::fromTheme("bookmark-new-list"), tr("Bookmark &All Tabs"), this, SLOT(bookmarkAllTabs())); - addAction(IconProvider::iconFromTheme("bookmarks-organize"), tr("Organize &Bookmarks"), this, SLOT(showBookmarksManager()))->setShortcut(QKeySequence("Ctrl+Shift+O")); + addAction(QIcon::fromTheme("bookmarks-organize"), tr("Organize &Bookmarks"), this, SLOT(showBookmarksManager()))->setShortcut(QKeySequence("Ctrl+Shift+O")); addSeparator(); connect(this, SIGNAL(aboutToShow()), this, SLOT(aboutToShow())); diff --git a/src/lib/bookmarks/bookmarkstoolbar.cpp b/src/lib/bookmarks/bookmarkstoolbar.cpp index 44d2608a2..4e66a9393 100644 --- a/src/lib/bookmarks/bookmarkstoolbar.cpp +++ b/src/lib/bookmarks/bookmarkstoolbar.cpp @@ -19,8 +19,9 @@ #include "bookmarkstoolbarbutton.h" #include "bookmarkstools.h" #include "bookmarkitem.h" -#include "mainapplication.h" #include "bookmarks.h" +#include "mainapplication.h" +#include "iconprovider.h" #include #include @@ -66,8 +67,8 @@ void BookmarksToolbar::contextMenuRequested(const QPoint &pos) m_clickedBookmark = button ? button->bookmark() : 0; QMenu menu; - QAction* actNewTab = menu.addAction(QIcon::fromTheme("tab-new", QIcon(":/icons/menu/tab-new.png")), tr("Open in new tab")); - QAction* actNewWindow = menu.addAction(QIcon::fromTheme("window-new"), tr("Open in new window")); + QAction* actNewTab = menu.addAction(IconProvider::newTabIcon(), tr("Open in new tab")); + QAction* actNewWindow = menu.addAction(IconProvider::newWindowIcon(), tr("Open in new window")); menu.addSeparator(); QAction* actDelete = menu.addAction(QIcon::fromTheme("edit-delete"), tr("Delete")); menu.addSeparator(); diff --git a/src/lib/cookies/cookiemanager.cpp b/src/lib/cookies/cookiemanager.cpp index 359847d31..9f100c281 100644 --- a/src/lib/cookies/cookiemanager.cpp +++ b/src/lib/cookies/cookiemanager.cpp @@ -22,6 +22,7 @@ #include "mainapplication.h" #include "qztools.h" #include "settings.h" +#include "iconprovider.h" #include #include @@ -202,7 +203,7 @@ void CookieManager::slotRefreshTable() else { QTreeWidgetItem* newParent = new QTreeWidgetItem(ui->cookieTree); newParent->setText(0, cookieDomain); - newParent->setIcon(0, style()->standardIcon(QStyle::SP_DirIcon)); + newParent->setIcon(0, IconProvider::standardIcon(QStyle::SP_DirIcon)); newParent->setData(0, Qt::UserRole + 10, cookie.domain()); ui->cookieTree->addTopLevelItem(newParent); hash[cookieDomain] = newParent; diff --git a/src/lib/data/icons.qrc b/src/lib/data/icons.qrc index 274220c12..438370789 100644 --- a/src/lib/data/icons.qrc +++ b/src/lib/data/icons.qrc @@ -16,8 +16,6 @@ icons/preferences/extension.png icons/theme/settings.png qupzilla.png - icons/locationbar/privatebrowsing.png - icons/locationbar/unknownpage.png icons/menu/history.png icons/menu/history_entry.png icons/menu/tab-new.png @@ -81,5 +79,8 @@ icons/theme/speeddial.png icons/theme/view-restore.png icons/other/loading.png + icons/other/empty-page.png + icons/menu/privatebrowsing.png + icons/menu/settings.png diff --git a/src/lib/data/icons/locationbar/privatebrowsing.png b/src/lib/data/icons/menu/privatebrowsing.png similarity index 100% rename from src/lib/data/icons/locationbar/privatebrowsing.png rename to src/lib/data/icons/menu/privatebrowsing.png diff --git a/src/lib/data/icons/menu/settings.png b/src/lib/data/icons/menu/settings.png new file mode 100644 index 0000000000000000000000000000000000000000..13395f0bf3d97b1dbbf270c0f2c3a003103ddbaf GIT binary patch literal 945 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~&H|6fVg?53 z^&rd`CpA$9D9B#o>FdgVlS`hL)!;?s`>8-ZcLRJvT!B(PzTWAXX=~Q4zH;-@|NsAi zBC@iwKvG6t5=e@OhyY1mUVc74J_`$L4^P*ssxk`;TcDtun-`FjloFpfxgW@2W?{@(m0PfDBw9KR*vBRa8>Y($?hW?rLFSzINT}ty{MM1t(6L(B9dyYSr45 zlq6R-7dv~~$&)8`bhWj&_pDpL_QHh=D_1R_I(_omb!$30dUovC6%i3zT3S|FS)G-Y znUR^k|G?g$VE2m#8P>FF(9;<@&X2H?Lj0bK}PKn>X(OU2^;O!`pXmJ$Uf^<;xeZ zUcY+%`qjI4Z{NLt_wmDrFJHd^qcT2DIsh1;nI%Dfpi}|`j7-eTES%ij`~m_JvT|}t z%F3#$n!0-Cmew}*&Tj6$5mC{pdBxQY?Ol^6PoF+>?&4LeH*MK==-A2Ar_Wuvdi} zG%#vr$D7;wSxk4#$#ScjyIaQTK+3T@Dy(KK^AB#VE)!uE=ALu@a)5pMG|T24iarjD z7jG#_tN!33KBFPF#y9TvlOtlj2K^Hq_or8tMHXi*VYKczenW8nVZqwz heC#Lm@ + + oxygen-fallback/index.theme + oxygen-fallback/16x16/go-down.png + oxygen-fallback/16x16/go-home.png + oxygen-fallback/16x16/go-jump-locationbar.png + oxygen-fallback/16x16/go-next.png + oxygen-fallback/16x16/go-previous.png + oxygen-fallback/16x16/go-up.png + oxygen-fallback/16x16/list-add.png + oxygen-fallback/16x16/list-remove.png + oxygen-fallback/16x16/process-stop.png + oxygen-fallback/16x16/tab-new.png + oxygen-fallback/16x16/user-trash-full.png + oxygen-fallback/16x16/view-refresh.png + oxygen-fallback/16x16/view-restore.png + oxygen-fallback/22x22/go-down.png + oxygen-fallback/22x22/go-home.png + oxygen-fallback/22x22/go-jump-locationbar.png + oxygen-fallback/22x22/go-next.png + oxygen-fallback/22x22/go-previous.png + oxygen-fallback/22x22/go-up.png + oxygen-fallback/22x22/list-add.png + oxygen-fallback/22x22/list-remove.png + oxygen-fallback/22x22/process-stop.png + oxygen-fallback/22x22/tab-new.png + oxygen-fallback/22x22/user-trash-full.png + oxygen-fallback/22x22/view-refresh.png + oxygen-fallback/22x22/view-restore.png + oxygen-fallback/32x32/preferences-desktop.png + oxygen-fallback/32x32/preferences-system-network.png + oxygen-fallback/16x16/bookmark-new.png + oxygen-fallback/16x16/bookmarks-organize.png + oxygen-fallback/16x16/configure.png + oxygen-fallback/22x22/bookmark-new.png + oxygen-fallback/22x22/bookmarks-organize.png + oxygen-fallback/22x22/configure.png + oxygen-fallback/16x16/dialog-close.png + oxygen-fallback/22x22/dialog-close.png + oxygen-fallback/16x16/window-new.png + oxygen-fallback/22x22/window-new.png + + diff --git a/src/lib/data/oxygen-fallback/16x16/bookmark-new.png b/src/lib/data/oxygen-fallback/16x16/bookmark-new.png new file mode 100644 index 0000000000000000000000000000000000000000..57173cfc05782e9b134c2a8cefee2c9c8ae08e0f GIT binary patch literal 707 zcmV;!0zCbRP)$IH9y)eg zgSzwwghogv5_l00dh#Gre}Em7Na)a#M1lpibTV0G*ImpMc4v2fy-)A^HZm>=eTIj3 zV7||1zQYIr=T!Qj*n0S2#p&&JTR*p(*A|zCagrw(&fm@#`g{5>Y*sgGC9m{?1uj4_ zRIk@r-P_|@-wl4qb#v`zAAcPj@b}>%508#G|81UwtAiZS9JVcQl+fkqI(5f;KAgl$={RD=-N zt?j~l?BST#cT3QSInk>HW{^^%t%f5dkWgjYhMfp{uJ$0aC~!*vp9{pJWr0m7E}?1x zFhfEOXPhjA-pI`!Z(uT(AA`Iou;aq;#Zu{lL^och8<22a2R0?7;~bZbyl}Yyp|0uj zG;(ip@FaE+;~DR9>90Ty5rCU@(8U;$5ty=xX5`9*ih$R33002ovPDHLkV1jz{GAaN7 literal 0 HcmV?d00001 diff --git a/src/lib/data/oxygen-fallback/16x16/bookmarks-organize.png b/src/lib/data/oxygen-fallback/16x16/bookmarks-organize.png new file mode 100644 index 0000000000000000000000000000000000000000..de36f1022a0e557532384048bf817fa7d1fa7ce3 GIT binary patch literal 625 zcmV-%0*?KOP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2ipZ2 z3nK?_@pI$=00HqyL_t(I%YBl+YE)4Whrc;@H@n%pYoSGgA&7qvv=g)lDJ+bgRu*Xl zA(ao{1NaV#uV5o+lg7p;P%E`j&?1e9C|UO2bI!~ii@SG4-F3Pd_g8Z0hYxlHpw|Iz?Cr6&xxuBI*JShJC1@NG zIQsbmd$CO}OTzS+J3FVP-=A zAHPR*HtS@+0U!hkm>D_iqMA*a_6Ag;K>7pB8e*N60lXDtBjyH~=P4=U!GI!0CW8Sn z8C8t`0^H{vlTs%|a0DUN%6PcOu$oeqW9qEbRa`a!h(IsI!u?5woHx^Lpa~w|4LGYU?t( zdV-dhRf)-33j(9HG0zSjaiv%A{Q5rYB7BQStFMrzSUUa%(EkBX>`a0z00000 LNkvXXu0mjfxEBSx literal 0 HcmV?d00001 diff --git a/src/lib/data/oxygen-fallback/16x16/configure.png b/src/lib/data/oxygen-fallback/16x16/configure.png new file mode 100644 index 0000000000000000000000000000000000000000..5ce478b1adfefacc19d35d61e88a6c02ebe97454 GIT binary patch literal 717 zcmV;;0y6!HP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L02{9W02{9XUK)`c00007bV*G`2iXAx z12+)F5m%`I00K=(L_t(|+KrN3NRx3C#*f?DM%ip+yqb-i;h^3{#n{|Ose_>C#@NE# z7GW2nLRnqZRk>l z!E^IGoWld>6hQ%)Ob;ZrwY8lTqK?F3D=U#m#6CX$#%MA3twKK3jp{=S3-bwzqR{g1 zWn_6|PHT0V4^ml84HUxVD;?&gUq4YYxrThci3GMzVQs_8wx>aE7+A7!I1H&&3b@>z z8%!qi9rhAf2rzWW0VzB{sMRWCC={ZTLLqRr7qhDNRaNlz?0&5`==X~y;%hk@XtmlC z)z#Ho0)bh$({nG|qLN>Ej>p>@6bJ+}b93`2b1k5YM55;Lw?1I9w}RI{3DeUbfmgwU zk`fL#FdNvgKDCcf%4E{WJ?36(INk6~Szl-8a=AAFK#9fNG~C_Y#rJsJGrheQ zBv;6hcfyN?hOCn~Qef@KUgduny7b2#PFv(s$3;Yx5y)(Lh@2zNPdMU39%!A08&{uL z2UAU&vxvjtpqADa^wRZWsl2>Q3i-Hgymh^|--2{HEh0%0sm`d7%`u#mNW_}#x8;FB z5JX#iH3q4425MvyP%7)Gf&RxmQ&aDUagOpXV6s?qkSO9GJthSE-4*}<0=h{= zK~#9!WzSn^)dc{@@z4K%&e_h+uIFq=%jRlhi`pDHEu;s75`r%D5=B@K77|LMhcYtB zu_)9aeCwfntVjt2>7mQOAXr+9^^#1|9GtD`ZtZrqbGCB}A8nt9-{Tj40h@h9LxO!V z9temQ$rQNw4io<8j=*th8yKhw!#7%Y@2*Yv^ax`yi{s-m!^7olE_Z&Nw~vw86c}Jj z6W_OP-`>~P->3c$VnnTx?4w_de8rShOxK5(ZQP zN|Z|!OC5~hy?t0~b6;C=n z)zxm_N=G8;IHwSVh$J|ijD%uMd4=Yrnr+*49Xe*Zv@SC@uH(%k>N`8dd%G=7PDs_) zOYq`*G)E4Q?%sk^EO23`--RVK`hNN^?k3WC<(delcw71NvYRrn(QjIEF!*z;P z2uhTT6iX}?Q+l6#4nX_Phs8U3RT`;kCQ?HTF$&>1CPG%%bL18opHJB{Fr;&U2HSaeDWsC5=5FFCVs!)oxmmJTNUXBK&;g!bWF-JV!{;2kpSPBY zt%j7V5fT=NZ_tEgE_}eDQKnIe0AT%Feu*)BAN9$KbX`#*QJ}75wan!|7&yquoBWFk r1U3tiK&qRTdZHuDlvzL)B>?yjfS~`FyINaO00000NkvXXu0mjf;$wU` literal 0 HcmV?d00001 diff --git a/src/lib/data/oxygen-fallback/16x16/go-down.png b/src/lib/data/oxygen-fallback/16x16/go-down.png new file mode 100644 index 0000000000000000000000000000000000000000..5891219e49603b6409d5479247ef1fa8a8cf71c2 GIT binary patch literal 623 zcmV-#0+9WQP)9KeakxIdTpje7cQjq<2c!^ z`Zm_SltDZPAt&#frRYyLt2KB&-G(%{q(iVQLTLEmE7;x%Q2E-zMx_cKcr*5=`6qt_ zJ8$Qx>E38HYSm`*8wpg%DHAF6Ak@qu=tdr9ZV&@0hK{|pLTM+EAS1zES!j~^>gMV) zSJgD~g*+^)fTA^sp+W%}T|?#b>p<{m+*@08kigJI_+;7}FTlfl=m%yDpG=!Ydu;Nd zxN@f?(x%l?jNxPW8<>{Ae&FyaVOl4ItmVe>FR)CpL^X>&_z8O)@9BsigdhL_002ov JPDHLkV1jC@76SkP literal 0 HcmV?d00001 diff --git a/src/lib/data/oxygen-fallback/16x16/go-home.png b/src/lib/data/oxygen-fallback/16x16/go-home.png new file mode 100644 index 0000000000000000000000000000000000000000..9ee717c8b124c186edfd629c70d83ebc3dfc6b4e GIT binary patch literal 635 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJbFq_W2nPqp?T7vkfLzW3kH}&M z2FBeW%xLxI@gtz1WQl7;NpOBzNqJ&XDnogBxn5>oc5!lIL8@MUQTpt6Hc~*<;sHJ( zuK)l4PfAbIH!(A^ur#%@Hn+92u(P+cwX=3`aCCKX_ww-e^YQWb@d*s{3-I+1@(&0N z1+w*x4D<{Pl2TKWQd1L>k`j`W(lRmp{}_Vo7i2AT{sFeo%IG}t#*k0BwGA)%B3Xe7|6w9K?DE1vv<)M879;%J7F;=Gd5 z%!-Pfnwo-!hT_IFu9lXvj;_|uo~|xuhTh)pIYGP&7S3G~z_2!iVOQJbd`*@#Ck@o;`o@ z`pw(VU%veQ^9L9vOH|^o0K-wbB*-tAp`rm5^j)~}^XIQ$fByb`P`a@KsBFEbi(^Q| zt<;|Dd`$rYF6;M}zuBvu9_+>u2KDjwcG z>uT>9#rA3W?4o~P+fJClr!T8}$ zJCS$qI^o{LM uTFAdLcI_93TAP57bSXBm$5B#$KQr0RRZpyT(^LaGox#)9&t;ucLK6VI&jeEd literal 0 HcmV?d00001 diff --git a/src/lib/data/oxygen-fallback/16x16/go-jump-locationbar.png b/src/lib/data/oxygen-fallback/16x16/go-jump-locationbar.png new file mode 100644 index 0000000000000000000000000000000000000000..6f81609506683747dfb6c1f2acc9908c351fa5e5 GIT binary patch literal 641 zcmV-{0)G98P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2iyS= z3>7vtM1nE^00IF?L_t(I%av0-XcKW9eV1Hvx!RP2XstFjXp5O`z#@SXnD-Izc)sVKpaX zZ=Vz6=Ym3?%l_SS=}8O#1}{8pZJ;VusA>ZhMFq#(P^=qR-BR##Q)Xi4k5V^pec-zi zpBEP8iXXE#)y1260X z=j5QO4SGMm$Yk=laAtmDdjHv()(I@8hGYI-9O~`D$v{7rQX9yB{)Xj`Ns(pDQ0~pG z5&&dh&9qKXmZ}ho3c5KK{VqFgth~q4-1B>d<(ocglG2Wkv~M^@qY06ISg)Fg!&8(W ziktxeA$YyLEjR{7sdG;NN+~Vc9JWy9%gbU%Tc9u?7e3vsWfr|e(~BMLz%elLkN3ET b+rIk^Y~Iz85c-m#00000NkvXXu0mjfr49<` literal 0 HcmV?d00001 diff --git a/src/lib/data/oxygen-fallback/16x16/go-next.png b/src/lib/data/oxygen-fallback/16x16/go-next.png new file mode 100644 index 0000000000000000000000000000000000000000..a04c99e2544a55fc0e7a0b2d3b33939ad3644f86 GIT binary patch literal 721 zcmV;?0xtcDP)-QyBq8B=CC0L~nB}pY&r5r?n2O2gdSfeRirxGq%C0L{(Pm?25 zoe3K^Bu8K)QklWe9OLnjyM13buiwGAh z3LQ8LB18)#Mhzf64<<+uAutgqI}$Ba5-vp&E?E;YVH7Y|6fs;CIBOO;ZWl6D7%)s2 zJ8vF8S1U|?ELD;k_ttILqC%8{_mld{j2w9uEe(V)NAro`I0)#v~J z|KYj7cK`qYCv;LyQvd(}0s;a90}Bie85%M+O-@c&ba;=Cnx3Spy1m%k>g(tyM)C7|k8r{la5Hg1p_F?B)3x7&sNRG&R(9lcNH>?4-Hj z?$FCf@KF|KMmWqM%SDzK$)T)P7UCSpE@zVvV88_c7XcqIKS|iV00000NkvXXu0mjf Dy00sk literal 0 HcmV?d00001 diff --git a/src/lib/data/oxygen-fallback/16x16/go-previous.png b/src/lib/data/oxygen-fallback/16x16/go-previous.png new file mode 100644 index 0000000000000000000000000000000000000000..940797b8a588cd4a74ce79ffd8c3957041c319e6 GIT binary patch literal 634 zcmV-=0)_pFP)Btj8dji$CWjoEB=citM4UJ9wN_<`s6d|`$e{40W==$&{9 zA^C*lynEr<+3RRQ!!~+OJq$DV`&~|Jlal+WYZ*|`LUMdAQ(v4<>^3H^oF9g_zJ%>) zTNj@wQi`i8*!1zCL|`!63j)9|fBto#XMCRyC2mQOz(B@nay$w+%P9Y-(_fU0Ux6r~aPK?(uRIVknvdoE^f zKESv69MQT@&fd`#@8ZE!l*D5p)M`E$1GE4(Bh7#i5{z=#wu^lJ12}V=M-bEj<337j z1VI%D?*NQ81wo-g)i|Uipj4ph_*g4dP$(>8rT7(sHUsMV`{yr=UD-EFAD54QDy&$x z1C(vvn2OC{I~6M_;90gBeRM0fFJWXnt3nLa}#r&B7#jeXfedf&hSgiI4NQzzi9<_UgR zI62a9?LGW1J#tB2yZ>71v6TGdzhLeeG$r?M3Bk@m2zbS}1b;)1?;q8>GCBM&8?MXX UHoH%CfB*mh07*qoM6N<$f(*zK!2kdN literal 0 HcmV?d00001 diff --git a/src/lib/data/oxygen-fallback/16x16/go-up.png b/src/lib/data/oxygen-fallback/16x16/go-up.png new file mode 100644 index 0000000000000000000000000000000000000000..b3d9cef97e16ca46909765c0a67091c97908660b GIT binary patch literal 672 zcmV;R0$=@!P)0b000McNliru*9;vE5edJ)+6{olpPkPT$sbOg93kgUk5S3}N14Mj zJ9`2QPnU^Q!($^(CTVNfnvCJd_^zB_{%mUB`TqliV3)SpD2)!M;I1`LS5+JxL^j zO~OgoFbrKmJg8}SpP#!u{Y2f#ZY)Tn8ycjY)X_29v1zB_c}-ACQP&!9y++%+cK|hQ zcVTYU5iEd=eDJ6R!6Ub4fC}%BEHs50WXy+95J(Yr%Kip{H}1g9jtZOr00008Z)0JRB|3DF3=|YfF7jDEZ>IVpdRI~vVL~%?rHj{Mb-aA4?aN$HkpY6+e zIJ}%A@;qlRND8>Ne);a1hpoZcM@ORNcT0CDpm2lpt8;$t;5m`HA+Mts_V&s9W~>cf zetj;y8B(ff-fq3o6i^ss-tluMK}bpJ9RCvtKmqnoV4WvU2M7e2b^n@kK&}DWEA7Qj z+`01X%TpaFO`sJG5esISB#+&7>@2gVH>sP%}a+DuI`p-7R~pI$1Y5x z9J%rcDSiulyep{dI#Oy%ghc%waq@#~ax=Pj`qhjEu-38}b?Q6+eS$+ zxgkjtHlh#o1_P#oDl|xq z)$=3opuA-AQ-@kiO_W*dZ1Abw6Jy@#*R^Fg!5P*sA&3jgil^7k&X>BCo8zhBfN|0000j literal 0 HcmV?d00001 diff --git a/src/lib/data/oxygen-fallback/16x16/list-remove.png b/src/lib/data/oxygen-fallback/16x16/list-remove.png new file mode 100644 index 0000000000000000000000000000000000000000..5a4d15b7baaf3a4d255430be6d2c0423379f0f9c GIT binary patch literal 332 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4nJ zFzyCnMyofE9{~j=OI#yLg7ec#$`gxH8OqDc^)mCai<1)zQuXqS(r3T3kpe0@>FMGa zQgQ3;q>X${1_EvC9b7%{lo;_Hxw!m6mdKI;Vst075>6Bme*a literal 0 HcmV?d00001 diff --git a/src/lib/data/oxygen-fallback/16x16/process-stop.png b/src/lib/data/oxygen-fallback/16x16/process-stop.png new file mode 100644 index 0000000000000000000000000000000000000000..5b4c488bdfde337177a0fa697d72b92c91bfb4ff GIT binary patch literal 722 zcmV;@0xkWCP)T3ZYmz(SzqVG|c5sBvYC8;yxO zSMFq|3m+?&Il=G#E*49tb+=foJF~O)o2zJAzY&PF{ zcQn;xSqPzlrXf8Sr($<54-e-N;#i|37$JfeySwr|H*TiPjViKU2hYP-r|-JdeIIGH zvULAmHS=RRl4$?nxsLQ$&+S_&y<9>lNLMW?6?D~xf(rKqNMIPx zd#_(jYV!-|zE9h^AzFuq)IAV+w4c8~=fz8y0^G?-dasQn115Tdn&%~|A0}vNX+xMM zI1WZ8gLU}|!H6++cMEgqtE(6)(Z>6UZ6-?KfMBzVR#`_c{$geH4(`G{Mt4TRS=_}1 z)}K5ku0+iP0~os4W}*Zhh?V?Xnv7=Z$s~F<8$KdoN!Mj#`V-#t6m{EXEfF$}36PsM z{9MLeU!(oOL(IN@{(Swi-DdxO(vP0vC*p_z(nBUnAYrSfv!k{YxOn;`zVFlX@->=i zA^`zZ^pJ`6U`mLC?_!J(Hk0VGLEG0J+JjFDxRwQa41O0`O2Ldx?YPU)!&1&fixf!S zn2aCUOCnPtj4HxY0=|T$7Qx3gSv%o`aN{OMl2=M{z*k99Nn-Ihx?xcFJjw_rSIV_h z4e)M3BpHVn>L*IXElUe#_Z6_Z&-?jt@saYwNUW~DB6gKR|1IvkC-UgHG4T5w~&ZO%mWY1!S~KLFhd;20SLjt z5|qwvq{}575e}HybgK9R!~t-)j7VxWyur(YTrJejP3`TnaH4HaZ$Sgl)cbbSZc(Q#^rV{4Aj#}U>6Dy67(nqSe2FZUhz1)8fM zH8eKgRed%gh4Qcs9(5}tPEMr~GySvBbsd5rpcz8QN5D-PH9D|}+O-J%;Q|QF!KXYx zV#O|!B>mh07(QNtJdyz{gH5QLk0!qF01S@f(0C7&hevAx-o&Hz0IS`A*LDMJN-0d! zL@T&8E`%9ij^cluHGX3|&`)=A$KodiZ=W!2ropT;bx(~QZodOi!F&&d&=%GJ0000< KMNUMnLSTY5kl1(t literal 0 HcmV?d00001 diff --git a/src/lib/data/oxygen-fallback/16x16/user-trash-full.png b/src/lib/data/oxygen-fallback/16x16/user-trash-full.png new file mode 100644 index 0000000000000000000000000000000000000000..dd9d12db79e875a088eb7fa98fc760992a057888 GIT binary patch literal 822 zcmV-61Ihe}P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L0B*Vf0B*Vg*50uf00007bV*G`2ipV! z5eXq{>q=Ju00Op2L_t(I%XN@VY>aCdhOhU1ziB(u9_nX0hC_8)KOGHekcdd=LM#pv zTUHVaiLfD&SV*w55)z59AVPxV9E#YepT^GuC+9?}5lL0Foza$brtN&+%=i9SOk34( zZ=dJ6pZmUGLO1^Yhv_JdFv*#L*9zUKM%Us-bdvkj9I;;S=bN}wtp7-S03$|?9 zNHUT9>(0G=o_0KJD+Ru5NTtN`6)UN%iV=@5p!Desd-k2+{Dmvbt=~rA7hF%zM^RH-+r4&m zOIiZ_5sS4oH?P8rM8w*4>#1L|g!%L4po;IG_axPgM`&zVKtu`V&97r5m#4Zq#-e0GcmP5O zaE@3kN-EWWv5s7Bg!-iow6@-&Q1Hp;M^I8RIQ*5d(Q&Gx(K1ASA?GZva#Ib<5@3zR7>ASsXQvrhYYD^fr)xLEPXNZaasr{S*dGSQ z7_7Av3I(jSh>6cLO)R!Nmx74~Wd_C=!Z0KZL#(w(sgP14#Ee$PVvNC43Z^sATBEhb z7z4m~VT_@nA&k*TDW*zT=djkIl$c8AO){9|Af?1;OECz@3}ld=qN1V_PboqNNQvh~ z7#th~kRCuLlgXvi>DgLqq?BkKqKyF|@W*|Ihlla~0Ouem7Fo0~NpEj2K&=93Z*RZW z)YP;r9*-|iBoY{{$>nkgDJRl7q?8~eef@oOcXd5Kbnw7Vpmzo)YFb)aHf-OqqqVZ4 zVsTY8HY?Ox4TMNw)Y6{994!H+hHY0`A;By%&J`*F@a z_jpGPX3-x!yYsx~<$2$ij4{{`Jx5hAT(G*VCr2tHljW{5TiIM$s&CaVL*qm9nfdd- zcS8Vpr@)?(f$&OswEV{T6X)GZe+7emgRq!|AP8{d_6^Kjor$;Cwl5*WkEKfSlO#yu zPJw^T%%N|mPMw-MGx?NYHpBhUQse5v74_@-FLd$gm-u@hzYC5WVtBPS_VCn+vByLZ z2B478Xf&{Kdjn($)!{0<9uFNRj@HCPwT8?XFc5hD`-A-hJ(rFi85fOa13J~1|9KvN zto#l~3wXAND|6qYw^GK*<0sKu>;(*984HXUI1yf`l!lyk+(t)>*B9}3ebW?NAw#Jy zCz;Yd6K9)o!=7E8rRni$xW)xZf<*-G_~MMwpzY>1c7t7P+**h4i)c4W9_=KacQ^?P z&zMJu9yojuE#5+OFG8>rfHD{^99E09LK+09->t*a3~i~t-Wyk!=k|#r^F*(Q^iG1c z;3iskS}^SlX{^5_|ALTN+Y;b_aukFjNU3M_Om=qPZnywS0v3Uc&T?sEl=;-Om`wCF zgehVXLzgwoDB!r(bSGT=&ml(i5lv8^u4P;dTdKS0#K_^P%)W4K@i-2oggzka&QLB2 zhnCn+?0NbeMC91~Txr;yONX-4iK5lGlx|wfY>O_^CgE8;twq17uc8msD$B!Kj$-w?zax~(J9FoG0Riq43dd}+ zCK$>7OcZ>(+U3~eCEFiM7W8ZJR(b?EdprA1V=Mfo=cb$VFb}Q}paNm{V2qtZ5t@TB zTKx%%+^I&_<>{~~mjHZ+oc+f{0AB7s;J)RJa<4L0Wbv^S?XrY*i{b8E+vsaq7~WHF z0(d*`Tq5Uw=X@Bzi@Bb#7#%kTlo_)C;D=oA=f-vH;~!CSYaU5(-z)$C002ovPDHLk FV1l!GvY-F} literal 0 HcmV?d00001 diff --git a/src/lib/data/oxygen-fallback/16x16/view-restore.png b/src/lib/data/oxygen-fallback/16x16/view-restore.png new file mode 100644 index 0000000000000000000000000000000000000000..7726c3546aa71ad49c31755dd4fcacaf848eee2e GIT binary patch literal 370 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~&H|6fVxZ#d zAk65bF}ngN$X?><>&kwEM@HCM-YMps0#GPFz$e5NNJD_?9LeBK-r<}5(s#vY>`o}z zpIdq`ukuh)?cvh3w^pvZwQ9rd)f;ZF*?4E|raNo5-rczE?xxeH&zwGe_RQ(Cw{PFQ zckjWQZ?E5efBo*=hj-uKzWe_E{jawleth`w>;1=H??3(g`03Zj|NsAol~#TO+Q(cH z zCF<+GLZ@3(EJU6PaA|nGxL_xxmoa6PcJSJeV#YJlH~K_Pbn2$PST6D}gP}+)>wyo0 z#DqIn9~5RjJm(}>{lopFl1VcECz0HlRU3Nmp1<&Z>wCWmY9a^u=9gH30>RVO&t;uc GLK6UKbD~uM literal 0 HcmV?d00001 diff --git a/src/lib/data/oxygen-fallback/16x16/window-new.png b/src/lib/data/oxygen-fallback/16x16/window-new.png new file mode 100644 index 0000000000000000000000000000000000000000..426818910dfbef525c3133dea3bed328593c62f0 GIT binary patch literal 377 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4nJ zFzyCnMyofE9{~j=OI#yLg7ec#$`gxH8OqDc^)mCai<1)zQuXqS(r3T3kpe3E=IP=X zQgQ3;<&9pM3~6?eyAhn|Ii~7gPxisAHULea71h{!f}<$onI~yWvxc(c1?b zOJodh&-uIK^t?Uo42v&H%+Ih?vJnbve7!2jyG5F{Yfl?P=B!7X!&Y7Tap!5}yoYy~ z$|D(?->@uLW4T2xI%}63_j6X$>2A0Eb4w%tu-55GfAId#TEEbN;eYz4>K{xeO<&z^ TQO}$L3;_mDS3j3^P6bwn+Bx%Hgpl|xANO$Pp5K0VxG+jY_&-t$%HkHMtUcCnJQwc~M`BBAX);(1ex{2{@`m^T z3P@CKW`;ieKKjz3R%Kb_XJ&GVufKf{kdXQcPczKO@t2Qxo;Yv7E4uccCv)ekgheiozN7m5FHm1s1IQi`(p9QpAG?H%n5_6+hMz09Tl z5dc0JKf}JRF0S7DiHW(1MFI|30G4GL7fT)ml(FZRtG&=8e~qwcEfVjHbGI}@W^I;r z{ga*LaWF%oJ&qG|x`~jqYhY!Dy>gj~vH-AsKZGja%G?#CMfh#%8qY>uSSi3e7%k4< zX7%5@Ea_8=E8sC~HzfA_4X~~iU@3*tP6uiHJ3bFT&j5|Oes(3S?JpF>Xt(NMGo05c z3rZOmE0vAJ+R<2)-N*p<;@UtJY5;*7rMQ-@ZHTxAXbiONX(O{gL(7OF9)*@CF#V|j z@a9(v_Ccxum2N<|Yq9CL%@K!Y#8}s+Z>-@%i6MwUz6;dz;B*nnjcf0RY$rM#;P9OR zn^XoI!Ii++aovVnasJ?W60HfaVBrxwED`E{0seRZ%N`Kp4mrNucoo`?2HPS4=1+9r z7{FFG&|LSj90>~gR{Ec4k{u9L15M$!5FZw!BPkNTcCwP zfmA9*E|GUMq=x9ElmtwIfdQkKc z#rJ)w_9~T%XkgW*KRP;UdOE2$FfcGEB5Y@yO>!J_#lm`%%qcXV8#jJ0o;!E;t?B7o z*I|2E>{2=@D=V4h)2D~}cY-#4^LD3{i2Thi^dAF6rFx2QwAugw002ovPDHLkV1nL^ B;iv!r literal 0 HcmV?d00001 diff --git a/src/lib/data/oxygen-fallback/22x22/bookmarks-organize.png b/src/lib/data/oxygen-fallback/22x22/bookmarks-organize.png new file mode 100644 index 0000000000000000000000000000000000000000..5348ec6a46a95a44f2de4d7acd20abb69aa1c27a GIT binary patch literal 897 zcmV-{1AhF8P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L011Qu011Qvs^VjL00007bV*G`2ipZ2 z3mOx9uPP$|00RL@L_t(I%Z-#hk6Tp`hMzgt8(-VID2bHa@F7A(fCh;k(Et?%B_$oA zp`oNl;ula*P|!q3`~)begP@H>w?dmNQrOL|%{}u)actw2u*oTpub=b2Gw%!lw{E}0 zvz}k!uLs}{Abx`c%IdeTemq`(Hv%|4Ip)rtySaZbqZ8qsPrl^kx85crks=5n0>^(o z;`&ctv-kR|NGVJnKhDqZe&8>@@g{D`7w;X)6)?cA);ljP{tjgMf_oun61(^DW>F)2KUYjtFE1 z0^owWvDZ%+U!Fq>lfK8yF^eYTzZEASP{34C59G>of@v_F^mOM>K!j;OMLn>{9pDXy zs^jKlCMQc!iqea~JvNMSl2qaM^jQO)f&CR-@28dV!uq>)7ub7$O->B6B)X8kp) zI#mPp*a2Rq(A-dUl9uCT+E8DKDMy99*9*)-7*1TNPRSoqZA}C!!1cbmf7%dju z90@Wi4D(Agl3@tceTU*D+_W;NBbney=^zsqa47;IB+0@44Zi#ATl#(q1mDz8IUrGOJ=vkSErnGnBm;42!$54mvK$_$TT8JKjk>f}NOJXOn(9@XW#b-rhEf1#%218c z;;>Glh%Cpv#c(x00+`wVOrAh^YhGE|Urk?;2BqBvNs;z|S?;c}AegSUTdQ$X30>E~ z8ML$r%gF@YrZ_hqFn7cp$&Ka-s4amAMDXt-0o&3%ad*s&B4AY+DMUt7R6v>mY(3^n z<(-fLrT|QV`NnpjKRSBh{poBvMhXl1zvrXR!^ literal 0 HcmV?d00001 diff --git a/src/lib/data/oxygen-fallback/22x22/configure.png b/src/lib/data/oxygen-fallback/22x22/configure.png new file mode 100644 index 0000000000000000000000000000000000000000..45b8fae8b8666fbf77bb3f906a6ea7b1ddb620f9 GIT binary patch literal 1101 zcmV-T1hV^yP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L02{9W02{9XUK)`c00007bV*G`2iXAx z12Qe)4)6T{00YfQL_t(|+MSbYOp|96$IsjLZ7HMDl|)KuRd9<5th6H|V}`kQqcbDR zT*5G0HZLI{F58gxqBdEC#2ZoEvH_ctm{K$`CIp)Z*aA^hKFon8SQ#1}pk&sr7wAft zweRKG!Gy#QGqyd+KY4P_Kfm|9=R6MusRw1XTJ$E9sWCG%vz+5OaWwk(gHR}V-r;bb zy*hd=0qH=Sn-A3bp7;_R$C5}SLT2Y?$<136r0+s6Z?S#bjvi6U)ORb5>o2(n{|N*G zB>r!lEX9^cYwJ<2tn7{ZG)@12mN!vCNR=*oDQio1woJ-#958GGD2jqXxBJZa_=FwH z0TjF96{Nrw%3qehH8V2@gb-jD23Y)nN~xU2+LIM%I$&v0QBm3S^zXp342lJoVPV_$ zZIx@+t)-tenypRQ!eps$Z>o5$s;bHs42CFah7?pP72pCPBU4(44 zyW!Bn!s6j%JEjZMs=e-;Nu0*UL7&V{qK@ z-l_I@JdmTv!8xu0WuB7n?ELw+_V)IR*x60A&Z2^-B@}}q@Vu~C&969n9Fto<{)lMS zXoya)BSxc<3=R(Pdz$w2qNNZeeBolAJ=^wLHWw5YoOO2hSQL0s(HGV>!^ht^=00000NkvXXu0mjfA3OQ4 literal 0 HcmV?d00001 diff --git a/src/lib/data/oxygen-fallback/22x22/dialog-close.png b/src/lib/data/oxygen-fallback/22x22/dialog-close.png new file mode 100644 index 0000000000000000000000000000000000000000..5492295e76cf7ffa015b427a68ab7213bdecbbd7 GIT binary patch literal 1251 zcmV<91RVQ`P)00006VoOIv0RI600RN!9r;`8x1aL`2 zK~#9!h1GkETvZ(h@Xx(>W_D-xy)E`dw{)}67Hhi}OVZe2L=bIgiDKd-#6YNQ0{ChZ zgGQ0Re8rd$qY^`me*hts(2&9(kVrzb4YdKWG<4mybt~P6`sP>^BYP{) zb#b77aL~X#UlT@wAfUNQ6QoGr-_jJ!oj&c%Q%{*o)9EsMe#Ci*0KvUH(7~Y%U0wR` zKA>K|q;+7x(!~)$eTiCGQdtr&Eh^8>$@XosFgB*OP>@|&u{<@^R%d&er{5)w;LCJg z$C1@^Y`kfwxGU9h%V%u*($|H(tBfCiQ7$ZNs!DUya)Y~Fe{e`kU!QX?yr83_!^*jH zDoL`rkH5XjXo%oO_UBpO9t85&WGpO9D)eumIj`DrvyJzB+l9$7<5Q!8kL|MU;DdrN zRJeA7<+Pz*D(dX))JD+4L4*;aeH`j$XIF-{)$`iA6L0^y`I75*>0H;RWBql)Yc?s> z*z>K&nrNhQY2J%NU(tU4jA(pHeR@ueD(fmd9w7HPCsuRQns!zVl3N{UbY#6X+wPN( z9o2vHEdXHoQpukV?zev8l&87G{TJ{XN?U5!LMQTm-_%A;1&0pVc=Im== z;8S*b3>lTeZ zc|dXaGJfqRZdK^p?$Q+1WuVMa)FY&Cv9OPwZQKyY1dWFA6G!##-0jS-?h{U&l+Plj zHK>|;{dt8AA2;%c?^-_f7mIHb#sn0fO!w>UYR3kt#OsS9Yt=tiksjW~g6W6HMFGKI0EmHn3^JiIj zht?H3FwGx__<6!IL;#5Y%K0_?`$qQWDI_uVB`QUhXDClnzQD?Vi00`^=%&#epLmEz zE0mD_KMb|w{Oba*eU#pHY%Y+=CFEjS>J%Dur}UD>oPL?_9pd*@ib$^ZH3i6G)n2yV z#qDd@(Zbq*D5ki;$eX3$(24?bfI2EzK^+NK=6`G0%UxKnIbQ$( N002ovPDHLkV1j5$YncE5 literal 0 HcmV?d00001 diff --git a/src/lib/data/oxygen-fallback/22x22/go-down.png b/src/lib/data/oxygen-fallback/22x22/go-down.png new file mode 100644 index 0000000000000000000000000000000000000000..63331a575a3207c6618466ee43398315e28f8e81 GIT binary patch literal 892 zcmV-?1B3jDP)d0hQqVW5MG!)~ zQ(l3~#roK)XgqrHOm@gAWPH5Z~NK~`i)k_?9txDMb2=3X!cY~Q+?S7nDNwO~_<>VOY- zA9t_#BXNIx@MJXcV|T-{`gv8=RRBaTlXyA-;KQ$BI~OxPC_mSDO#_J}zJ7~gD4%13 zB%knnqPOVLF3UH4(VKiO+dQLgra*XVmxyp7!Qou+KYW1#1|txWUha{5{d6-LR0VF9K^xR`)C1U4h(-^}}<`cMj~SmY%U z;9CpU;ONmxlOE3WcDmd=CxZ2g>J>?hcrG{-FN-MIS~W zq5_VdOj3p-VRTFV;syi*e)t2!i519_#M2UlyB;F)_Gzn?3ZFs+1fVj!v$G#wcRol) zKOn%RYA{$%9OP*WnK<4&xgG`)j({^RG0lE)ADMEnJ2WWpKEo>e`qcKJZG zADy?_ZxT^C?q~^&hJ-OdMBmX*gP%9NfAUP``vEil3jd5LOSa7o%vnDVW8^1;=xT*| SG6r-20000EA#GaEY#J3AXECnq--H!lx2FCRA_9}gcd zFFzl@06)JVzkrZ{ppbx&s3t#CwI-NlO%mt&4Qn@d2W;yN+7ZdR zJDTxu9Mh3w$Brg49zA~iVwW{re9dJ$mr?!NbQO@bvlf=PzD7fBEvwn>X*?z5Dd()3YwVk~K9A7~u2g-@pHY!M}gX;$^^e!zk_P z;us=vIXU47mxO?it7^_6uB=yHGY%EqTDR`jr=DkKd?yYC&AMk=Y8SOha&M@|p-I2q zrB0nH`mSoBuP#R-C-41hc?ucdxASN>aCb*nTs3cYY@Qvd;1hAgWI?@>h|dRO!B!4# z$(Lnc4meKlTWH`Bam=gql8A~y_NQ;3D&n}#W$KIIrF3u?{bDau>Bc6ocTddE~A(Xyf< zE+G6CK4;eCypf5yV^i~IkIkJqGH-Hpe0Uh1{Vh^Cl_$;%${(JtelF{r G5}E+933O@z literal 0 HcmV?d00001 diff --git a/src/lib/data/oxygen-fallback/22x22/go-jump-locationbar.png b/src/lib/data/oxygen-fallback/22x22/go-jump-locationbar.png new file mode 100644 index 0000000000000000000000000000000000000000..889a2c3a1e773ea52fae0f21f284e7660aac6c99 GIT binary patch literal 957 zcmV;u148_XP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2iyS= z3=kl^=ffrd00TWqL_t(I%eB>AXq#0S!14ci^YwOV>g?JMtG1mcsiL4mWgA;tu(M)i zisH6*bRY;$6dZUVB7WR?)pK=tE`B`c;d#yje>>q_NBG}PWN`HB$euB)bLhl_0MR|M6*=0{K*cO~ zZ{O19)s*#lcp!EleteMV;AqXTSQ=>DKCI4s`aIbMi&qYu=9k3cIlZoKvvjL=JT|oQ zjHOe>EGvoylb4?9VR!%S8w*AuuY~u`Rh2@zRXiSnf-lv+^`rf`}*RhY|u^}P@$7+Rbs!92Hb&Py()QTll<)@D*IZ+}Dp|KS$n0E!`Nax`X_Ly7$QTtm+Z%cE z(YtO?R%I?SaJ(N_Hv45@3y)93tXL$|IkKe+dDFqDx|Avo`Lcso6XMlpyH&#)?UM~V zj~tvD+e`R~k$;Af7DmzHk93|;eSnVE28xcPU`dkM5|fwG{G7;Qo2GbpO9xFJXaB7` z51+ks;;Abb?^RDw4i{$@nM@W5_&pTLHs4L>vC1ZxCQh+TomY{(Y@l3Q*;YwN>5VUS zu7ZWMm`LQfxM;Cp+6c!*1i&xBb`+XNV&roq=X7=Ii!;I%zNb^CUw&`Hj$slf_g@=E z+AK(oP0eWY7d)OEk?z4{8*$8TH{uKNJIc@ZQu{ug8Ha(B)yLN^4Vy`y&k) z6_d?3t>M&B$S~o#7Ez_yS$|^B+tA zq`!T)w#n0!&1c`wku4VKxL)Vv(NW%dRt-4v00000NkvXXu0mjftx(A4 literal 0 HcmV?d00001 diff --git a/src/lib/data/oxygen-fallback/22x22/go-next.png b/src/lib/data/oxygen-fallback/22x22/go-next.png new file mode 100644 index 0000000000000000000000000000000000000000..aa7cbb91e667c2f24b5371887943ceec0bd3cf87 GIT binary patch literal 940 zcmV;d15^BoP)>-%*UQ^@((w+ey2zFy3Ku>s8+8vR%1*6lP&biBT)<*^3^mlfv*F+MI)kP1s) ze-`gI&27vC=xA8^_2PT3qV}aNjt~y4mY}2vvPuXY={;ZUKw>P20OCtVF%JK9m9F>8 z&mo*oE+1T_?wWYxwy#>JRffhIWo#miDUKN(4QW*vMZTaQB|Bypim(K{@#;*m@R^!s z0duNha&JX8u(roDZ zZq2v2CAU1Nd3syJQ?pQrHIxRl1q|C-!KTvK@T6uZiGflHTLYx=L~Rfb42?Hc%w93G zdd`X;M=u;w-ef1Hv`Ai<2EnrVPCW0REIR==JZ~(byu!_~aSRWS^3EAVZfp$3&8!uf z8T0GkYH6GV3yTY#H&Fd(4YE~LNT&hMw+!YwXaYEqRHMjAqevo_5>ghp^B4qyR62zy z*5LIa;rf`&BW$ULNE&{CP$*i&iWmei4`!kga!TEMegH3Edp>;MM@1%$NP!ag`xrd0 z`_QId@9#fs!FyYgnO=#?N3zIH%c6o4gn97G@;-?Buux(e$*-p?SzRV0Xuid}>vh2PHng1(;K zR>$?%4gR`+2)C)+@wp@W-o!sBTl*S?VZh0C>C1cv7|HeH)Unn`#>p1P3tJe9vdZA8 z6r>O^7(ze<0v$gb$N9FCXW@pca-Bynp{)A^J7EPxI>c}^f+H<^P5<@oot$!ezUyf6 zz{h4p9){``ynP^D_xxw!j;;EmaOqG|jHDZgh1o2e9X_zzv(yH6kdqH_fVDvtwNo z67d+$rElP`DxS9W(wZ1y?HgCmu4$Y*1%h+9+RV+24jvhJ*@BWM#*dA+Y+f~sR+g6_ z?-fBXEbeAeF>kv;s0m`k6^+>d2>KqJme8UJc24<#NfnqGcr+p2n+uqfPukAfGP zMdn@(Jm1GfF~?<45Q_VvtRyD(9=*^3E%HN?wp`q5TcmZx+={ZgaVZ$43BxczX=n;U zhL0$vA`2n3Id~9&F&}MLI`H=HSz>-SMkRncTkWV_jnhlv*aUf9rD;i+rlsL3f)h$Y zcm$PFMqnOr1dPGcQGL!0e9O3DL)!$&S=Zz-!HoJ^8$M$IA&A8QOArmG+C;-CXb6VV zAD|>q^aVZ-xajT6;C;_0XwEmVlmQfH%FX-e`BZ@8l)`o#*tSAEL10-S92zR2Kp><- zz$FSr7Uf>_Jmg)Du#rj(gAHiqUUUwo>Q|f}EU@zaTz-*PWW-|j#-wD zCZ?-5qeu|KgoxHsDfoIXY_6TOkdJnMqUy#yRZ;|Pl~vWvGv_QoDpiJLGJ!-quHhC; z)4-_%&Efolm`M;Tq1Q=_t*n4j^47=h>+1+cQ00Q1klf#`f8R3;m#lOq)-@oR(C|b& zs`}*qX0Xi55zkYMpiFlf{ZFs9xr6=l?{!{&^yFbzG!3SXC9a=MsD;r)@e2*Sxcypk zvF!1~uH)Czr^G;iUjzp+@XwSSzj#S$-O@MBM_SdSru7P==#Q@DLmxj7yC$9O{a_3Y hxzGLVyAJ#}`U0KDUItL)W}5&2002ovPDHLkV1gOknz;Y~ literal 0 HcmV?d00001 diff --git a/src/lib/data/oxygen-fallback/22x22/go-up.png b/src/lib/data/oxygen-fallback/22x22/go-up.png new file mode 100644 index 0000000000000000000000000000000000000000..4459024ea838b000fce0d11c72066ce76b1347cd GIT binary patch literal 929 zcmV;S177@zP){11?EK zK~#9!y^>346;~X_zw?-9?jyN2#^lDNxw*z#Yw9D|YO5h)Q1F4+in?=E5qBzxrC=Au zu5_h{ZqynmlnPq9anaH)3I!J~q?NW=s9;olkbCpEcV^C<)BlVph>tud{bs&7bIu%o z^Zoxbn69=T{=Rkd!AnILwF&%jzmU-$IPUDCUFUJrvg ziD^h+3bn2|xW2p8a%%gQ4_I4E7I*JgmYVsShM)X#`NpghH?Q1Va4dFy%Z6pFS{Xy) z!PP}%Tz-1N&Wq()gH0Tr8Cbid2%}M{R8vPm9cz~tvVi_}!LA{D#^A#HyZ4m4+deI} z7Sg0+m2r$!$5Ev*=V~l0ias6Hj?JjY`FB6*%4Ga2{rxK)V}Ll;P>GdB6sgqt2H@Vv z!&PqQz_rToPybArIJa=CV9?+6_4VeAVF)9QP?_hB$U(A3ey^NoCKx?m95~W8CD<5s zxU1CpaW>ybARvkvB_+okv1T;q>6}7CNDJkT#^$(Q8ERkm1%EBLp)|N6lgWJ9St=6< zDM%X*!z92g7$la^5cG`G9)?Ud3)jMcsy+Vvm0-8C-#0KrbBiTwvK~{pfYO3MHbI}- zkd>CG1q`EO3L_83ap&$RgzdvCUN`E-@#x26Q|zs*-^Nj z3ros`OXX8Ffy57I4uMGz!p%W?O(?X_N6X^UUoR!T`Q3?qZb$!qCM+=F5JW?(TIhMM zXz+d5Hmx(3{%S%9aJLawuILNP54q)GV$#C!Z@1!?z=`U2e$_92%=K^`2fj}wyG{xY z!Vm@~O-TXbN7paLc!eb1Bw-sV1svN(1Hn1xKmrd!h!pG^kY)}xCOJXZ6v#Mxz9!r} zz^vJU9p6D1MX1+<)YyS&C)sOPuUU7GWft~Bx(#euuEiJk0F$V%W=dn22X$(LfTCDSj0d_?ky^aNW z(5(;d7)eh@fYJRj_TG`?8EKy4oWmghVS@ z+{eNZQkxQIF;WO(7h_b&xtk|^pcGmw0@d^J@mUs*Ufg+_ZC})DPuIS=eD?B~^Evfs z3l9kCDI`2X2y#+7wgW)s5^56`e)dBe@%CFf%~Jl^ zd4Q8Koh$|iQVF!{#o@aKk5Ps|1q8Bd5t7)HN6p9lUH_Tgs7)uym@!AYj83tRf<J$I7pBXX6(Tc`=cZT`N^sDS?uHHPHHk z_KSWEm}MW0e>?1>JSre1tw?-C+^rvcS{MEIxW9_L+F84pKr2Dw;^GZp5O9&-Ub;tS za}bc&=y3iD>nzQrg(5;pfyi53usxhl=t-xEi`%r~giz#%5ykgtUc2nGhr97=;!=c^ks(+f hwc{TxEiLs0{|}&sZo)`g(B=RD002ovPDHLkV1oSvsSW@D literal 0 HcmV?d00001 diff --git a/src/lib/data/oxygen-fallback/22x22/list-remove.png b/src/lib/data/oxygen-fallback/22x22/list-remove.png new file mode 100644 index 0000000000000000000000000000000000000000..2bb1a59831d42e01df138bbe76861b3c573cd71a GIT binary patch literal 498 zcmVRHg64C~ZChUS5vpoL5VA5tAr}#SR$T{WGVm-b<<#qEEI#tZ50{s_ zoB2GJ{XUkK6-*-`DOY$(N^&m*v}_h{o(H?v!{cy>!(tJ_w)cZ57K;U5Ivqr2GuZ@_ zl0vXVk4B*}a!Qvcbf!~0H5wR?MtB84xg6Zd1lnrG9&lqfo5vfRQ#76C(+C7#7A*2u zQ7DK8~KoZ=ls6?v;mtBy1Il+Yx+d6O^HH;mDg~3Pp&X;F85rUpy ot~*YL`;#rAZuoZ##s5M40Ta=R=mj`S^8f$<07*qoM6N<$f>l$>!vFvP literal 0 HcmV?d00001 diff --git a/src/lib/data/oxygen-fallback/22x22/process-stop.png b/src/lib/data/oxygen-fallback/22x22/process-stop.png new file mode 100644 index 0000000000000000000000000000000000000000..738d6f9b87c20cf7876ffb81472de1c37eb315d0 GIT binary patch literal 1078 zcmV-61j+k}P)kelO`4ERTf7K_N`*p9B)!mr zXso1>V8k1(ibQV;9$FMh5UXBQ%pXu}>0Lb~hBj&{^iFJ23?7OGL#Y=@n(8LIiJLuS zcV=GSm!0ggrqZiC@Z%kZc|Hse^Du^#lHDka|0zRN7gz-_xJv~<&Veme-5ai=<|*ju z_W3?(?Cfj|?%QXD+S^54JZ_d!DJQqQ?51wqNPoY$_>y||y0V>n!Ww-O9(ts;b?Wfs zWURia3DsDR>y}T)VKbF#F@}b|c2`&XRnP2yaXsT5Xm3+|>fwu@#zOf#ZlQpyAdR_R z9DNFb9c^HCcsMKav$lr3 zbB9ACBk_X`k;~f9Rs}u+=3c>t-qF!UzwJ;`4OVLl(W6I+4Gx0B#iqhD8A4qT66-%k z%X7~oTo*T)ME>81EFW?3O1iHJ4 z_VoeaYi}pq*@>CWB2#Pl0BvZi=Bp?PgrnZd1T4oPb@nVxue^%Y)`n1XY<}%^48Nc4 z+W2Y$`^q$?*fj01}a$y??Jxi%@)M>6JNquyN($W$@4Vs=9r#Sr${zQVvfdhp0 z@29Z5q>QR(K^0yY|D5JPn0O=%_4SBwgw2_2#D<=!pt4vbe|-j_W}BP&fx^N98QWn^ zfNkC#Hi|2^DY{SuG6pofGg5;B7(O4ZC*R^`-=m26c?`g>W0Z{@qbL~&6VS1M*yy_? zPJdVdS3W*N{^y?nF!$`C2$#f)pm>$lomFe9)2`<6p>?_urE@eaJuk z<@}y#mbtkf<*mU1xlo7vL*=UK(Y@O6wz+ntUxvp6Aub&YQg`1!Aceq`E&?#TNMK6{ zEY}4IOHr7}QOf5SI0xT(D_wyr_;Kiqgt_!|2y5@U2O9dUmekQ`48F`_=dwI?0j9T6 zYT+vWB0Le&cs*t!W9WN2Rai=r&3-N>^Ujt+&%w79bSJzMxBPt8*cSCi;&J@pFv7HO w9h=w1Na6EqB_mPh7r&A9~27kQ{X#MrBYNZ2G z=qRL(yqK`|>srKD>Anm1ARM4nH`=eyk%af|twnwaZorZaMp|K&WxS&;{dTLX`NHt*e0O(yPenzAObEd$ zayl?D@WZI>FytXJc3BKc<@!lmq2z|>2W(YGgiW6f%GH>-m0LYq1O^cSx+M7CnWnVgbYHzTqS3CApUvUXQAm|*;AIJ*pIY*G9#-~jwz;@`S> VI+F9-a$f)d002ovPDHLkV1h#FU^D;# literal 0 HcmV?d00001 diff --git a/src/lib/data/oxygen-fallback/22x22/user-trash-full.png b/src/lib/data/oxygen-fallback/22x22/user-trash-full.png new file mode 100644 index 0000000000000000000000000000000000000000..57e2c2ed101a86cea89564d3646767902bcac288 GIT binary patch literal 1108 zcmV-a1grarP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L011Qu011Qvs^VjL00007bV*G`2ipV! z5dgrY}_UTP0jYB9%Jp_D?C&0mV$+9aFpZnB%*neTgF z4{5g1Y-?T^W(MZ_&GS9a10QU1Mn*;&&(q)R*mYxQ=+8@#{%K31>G$Sgu+yJ^kr{aQ znM`XCbfA*nzP&G*N^LtnKl=Q^k510YC%XqOzI1N%)&B+meChXOi`Y}*jY&Am~NvG3vr_*GzSvpf`JOjzLb`sU!_~7Hu*wJ~FgKwSV>755yDwn9$A~ovFT(NX) z-`?Hd19)rTM^dRXV`DcopU+b&mD%~+0NF=-X>0GmI>Bd&%cEz><)%4s_!uPnnV!0d z2(+}s&5hioraC&m+o1UJA6Il+PY*LwQ)DtdY-vf*(b<7#KuwHF{yc-Pe9Et1#kuZ( z&C5dr6pIBG77AEr$z~rT*_I^Rv&{hbYvARjGTrGe_V3?Msa&E~t1&k}M_8{DB$G_t z%JSuh?Ti-QWpH0N#bSY=HK6~=PVSbMDV3K<1j$BT{`&A#m3Z7I-PP52uh&B=)haIz zZAV_XN)%P8Rw|U1mZ@1w=p6amcW7@*0@@t>-*L`StJk<&F5{d~tJevm2pdM!!jP7h zID%q~!NY)V65I$vR~H+zE))YQf&vBu9*9bFurY?sk3m#H1`-<58>E9u96?cJ;2RRIAG@6z1{$IEh38 zFXm&6hjErz%qI-%yXV0#_zCQoX+&qOsfglK|hapiI5jjV-QX!X{ zh;q5H>%UyMaCUZP`deUrGiP23=pP&$e5$7>lT9QN32P%$sjRHb&Q9MMA0M9tCV@h; a#s2_T!ZrAUSGibR8&_|OnTqHjDjCKy41 z5Mw&Od&Y!GTR~rV_>z^q*ZR)NTFKc2;EC|)i+a+iiMFtMc0OxU)?`6X!Bk;SVI;3J z@3yC$XUoS+};VN`}(uM6`Z^zE>cB22werz1s zh?N5?VXiapvDLJTe3Zm_iq+7CWdqA5XNf69s$466mbpG7((+*oc6_tral}6I;Vc}G1i}1kLB+!M|OKQw2%fVAi-1bL4IF8>W1skcCIbX z*?&lCOpJ@EiVWLo{a(qQ5`>S1V}yo6NN-LD^D&5}0;E+!L@AXb(U^r8v=$9Z4=zRc zBc4CXIn5ak!)h?&Vyi)YBeOXJ{)7I9xa-{z%ecTV-A!7fRxj))F}ax(BP4H-ec}V5 zoq=s(SaN&`{G+_)6z8~~ixcAFq_F-)?nW<)-zkpa-Q)!;Wl)3CT`?%yr!Ck=1*%`X zDfJ3q2N~uZn}gypUU!Ofq!@{HwzxQmucS+KJO=hZ3{!^>eV5_phs5L;11hrg_Fn?S; z6Y3{QDpzD@l`c9O^y&BUj-_9s+owtbHFG)%39SmmARB#@n3d6dd!yl&ngmM;3A*Z+ zw2`fZfI$eXdHTD+$g;~E%3Q~;~)*|w50pf+WgD27G0gY zh;^V?>>0&@WF#ek3Kzk^5of*&yQZb zc=_t<%a0#Feg5_N%a^ZTe|-VkJ7=23RiMReB|(0{3``ulhQE1BTf2cG(>z@qLn?07 zPQ1<6WWeK~E&H`;g+kYh0Ea1m|BK)9HIlQkh`jV|N#-t*1W^VBC)EQS2LHH{SgwBk zTijy&-HLV9N-f(%Gpl)D|598L`Fgj*W;4crzb4H-I8~xKK;Genex*&y=R};JH4(`jp3ZEZp|ZkP9Z(X TCFc#Mg96Lb)z4*}Q$iB}$(_l! literal 0 HcmV?d00001 diff --git a/src/lib/data/oxygen-fallback/22x22/window-new.png b/src/lib/data/oxygen-fallback/22x22/window-new.png new file mode 100644 index 0000000000000000000000000000000000000000..54ad48c2d326417bfcebd97260926d7eff133bb8 GIT binary patch literal 680 zcmV;Z0$2TsP)(8L(qz+TQPvPMsCnqH=pfR; zI@HZuKcG|4p$PgH!oXAd2XqOcW8@(OJ7|PCFWS$zyuWFhv9``MrTITG?I`Tva%gkN_jZQWBfEQoj9H7=snfTx6CqwmxgfNAHPde zq=i@M5hms*z5*wGTTu;&0Y0iRxfuusI*elmY4ZccVitCMFMY%#Yn*5{cwY=e&1LhU z&yAMLt(pcaWw^q&rTH21>uEBZ8%RLF%N+&8v)Noy*L7Tl z!W#QI`}z!})e`bZsK)n1VIN`D2Vhw?sZ8} zP8nDl5Nm5(ZgX$r8d6GidH75IhyU@gMeSJ%*gf>MiUObZzNQ)y5$88rkS4q9-n!rb O0000~=s=~vVN2Gi zsscq(pb}MNYGq=n(z&FKWl7earx=)lrYl#h*Df4Xq5u|bJ}w%}@jM2LI;2FAn6bdB zN{tpg3PO#5fIjb<#V{>$3RI+ zkAaAp*hGy0ph4+?C=C)*Ic8-Aezym=ziNPQzzvh0M=;>j`|g~J0hqVxsQ9DlY5anT zsranTgWAUKa3F>m5`AbTs3Mwqv2IMO90)|57ZwS1mM-< z;?z+(K7XtpS9^JUY4;4_XlzWmzyd5AwoJq#%okM(K^6i;gHS?#*c%(*=(-O*r-EZt z0zv@KF&J?5>b>^5K>#-VQ8Xqb@eHd2%jrS>5XTP!J|G({H!Z0MMv*`&iBK>IAryil ziNv`C5=P5DdXq9qPh1=yWBawRbpJ-l#c}Wfg#e2L;I_4&PX{5cZBvY&?7k*3n}T za1EfL;WqppH>7|EQpg7(;0H(6&&?f;%Gb+bHk)zaos-yGa~`%^m(1e8U0;-0v&(jg zdXtG8LUlzZMkY=orKiLrKS8ex#d%{fDPsg2E+1Yya26(`nSkZd-tC4U#@cZBuy_>D z9gD((e59nLqVC#FY~5Rnrp7ws^NVwaH#fEPXaHvY@+|_u$Z2@!sTZ-~`Oqe|x~JO-FWK{vMi1V8r5NsjgpHMFV2x+M zDk0qO>H^2{NQ~pKqUZ;p1-x?QDi%NW6x!R{kz!57$q!D}9;`Z86b7(-m#8z)hEZd^ z&M=YEbHwss38@4@fveX^SnP%z^g!_R!lL$L|LqZ>AMJwN=XOXsqk#pZWlsr3v!`7^F~I3?lI%lKVroY&z2&G%0wnTT znk9rCuarU}^P9I?@cHGxfai52Yb%a@{1sfnFzxt`GZ_%*w;8;hUkK4I$bDv;#Ork| zG>M(@{XI@NNy$}KPry*sIwHD7ROqUa$wma+z0eEY*tdN>{Gx&WVI zL8E;bdIxmi$lBn5%@FLm90M@9V57tv4D18qiGqaQ`y^{oq5&hyhAjPR5#|IXF~(0Ka-^Ei4ub_Uzk>{OJO2kP7;I3HWD|3Y#+#zCN2laKtLWPFlEL zOd6Iz0T5>axSVbZBpMXd4!M9B@Ei+kl8L-OK-jOKq#&1MeF%hD$eaCr%$zj`v$L-u z$$u5^eQd*RH4g!wfcj2q zYheKT+uE^mWf`igtI^!tj8RFz z#wEZ~qSo)wNU1ow+l|_;xuFj~xR|0!KCcGAkTT6^wHkjG8t5{I0>1FAhOfz7Rl^nx z8LHfxvK7m+Cr+62?$H|DX}yE8vQ=t*L*uEB&eWbK+eWiv6J5H&UbX3IIHFz{TpnWH_P~?Y{tZK$$EocbME*0F+ez=sECq}DkAKc1rPh?+W8em z9kcv)>+PhsD=WE@l2VA0a%#`fbDI(~X7{RtzM_R}=Q7@3b@xx-%~R77GA2U~^`ZH4 zcf+4QLBZw^VP`DkmN1!9CeX%5Si{F{cZUO#q{P^-k&(evOI!MjWu?appDuoB{kmVT z%*x6t@p`?VZrJp@=MyF^X=in2dKraPmJxK+b6Na9^50x7?Vmm!V-qvd$a6nh{@&m6 zWgULZ;9E*|cJ{dK+qa*ts;XL0SXj6v5C}Y0QBkps*cJdPzFzpuROG$22Guj3z<5i# z1*#z6`X`~+7<_w)FE20OGHu$lXPcUu>MJWNE6CY?1Av16EF2-`<2zTQdiM7)B^YEJ zFKkzT%HY3~1frveI*Ima!M~ZXRx_sjA|J(P>rvZiM;-H!{u|?n%Hi*X4_W>N4iq$5 T6?v+n00000NkvXXu0mjf_&6?@ literal 0 HcmV?d00001 diff --git a/src/lib/data/oxygen-fallback/32x32/preferences-system-network.png b/src/lib/data/oxygen-fallback/32x32/preferences-system-network.png new file mode 100644 index 0000000000000000000000000000000000000000..0e16fd703f73920b841cc14037deb07abeeb57ec GIT binary patch literal 2685 zcmV-@3WD{CP)hlZ7HR+6xMPp3aAL8E2EUz zikC%X@w%()tnM=I>bRqW;*5WsQBf3Tc3rC??u@&ju&b`JD9FmC-eF29X+wdMwn=H) z+)hq%?)&B>Q*;F{zxK>|@}1A#gqgSV9?r`S|00?UBdd zzH7lH^^Z-P8u00cf#ER;@w5ynr{P#AhRARVnySOl2#O9})gpRMdm=W-wG$ET#}Z%( z0ztar=FP2vO7}}sn<^(791GcG2!N}^0lSUE&W?Tz$1*TABX5+9YtZwMRcJXCdQJ`M zIr&$^r=IBeF$6e*es$Z6zx(OsQ=W5q1YRNI8p}apSttyHoNi(uCZW>nK&U@~WHMVY zN+6?TT!Ee~tXfu)X}u@X^VpUj9D?SSCm+83){CEXlnBslJT$uvx`SY|K_&vD85R8_ z8O!6wasiSkBOaIF<{6B|M8wXBP$W5Td>pzYKR9q~?X%xYV9v$QT)%8-^Y*&NN+zWN zy3+x(M6jR>4rqo6LpPw1hiXo-q%O6wNT#yrqI_^NfQtnTxu}G!VK5v=A|@J!q+A>B ze&oIL5~!$sv~Ky&W&|&sU+>B?6mz?s3_HR2-0)WU;CAvD5fyYrGEk+wXR@^-Cu2#i z2^$P_p3b53c)H-ZME7a+**VzA&hStoolc1}29K-_pR)|Bt2|Fnp5k|zB)h1XFgYH9 zau;~73kmZ4bV5ZeqX8TXmXeUwcuaMU;^#9t)K*u)PJ~xn#^d;491p(S1Cx|8>Agge ztlQ)8l=+!BaqXPx&DATj1|WmA60XW$f{3Ie6we`&RFKT5R;j@#sK%K( zuJ&g!xvmaguMa2t!+3M&UOcg7e}SN#rJ&x-A%DKS&&_;3{9ZunSqMr2{g7e!s&Fv?RMkUH@4%w5BH&R(sa0| zwSl#iB4|WLCGZ?-Dm=_kEPV%n{ohbvBqp`?4J7k2SrQ)`5|LJPh*=G3l2FVjR*f5Z zs2X%aJ(q?o%a$Qs*WoU&LG`6K;gV&yf^!I9=y!%?3oFl2h`m^RX+2^IX(<5TIDzWA zb+b6ZRyRmZWq``-Bzdlqm+7MMEUmhnhgw*Pn3m09ft!{ml3NUC-$ zYG83eS&RrU1lC$x7dK)wnS%kQ?w5afYt}dc-7p(ClD($dOBpPzeuMf}fJvOX|krSxb>b zN^Lls0}N{F>dFuvPJ^Mc8%xQUP-|MAGQ4K7H%%+{g@2PB}k0cWk>GB8G-@9yX)QaK3ZY(|v*;|dU?aua~8=mkRteHe7A zI^k@8Cs^0^ToP9_PsGB73lSZP;>P7S;K089h(sgQmJ|5$t1t2HhaG61H5V+y0Wjed zc=Ys-Ask6s)zuds6UG&&^t-7)qTG+ywrs)7nKSX(r=KI9Ok(H9U%@P&4Tq-^W;_i(UkxykKYd<-LaV^g&CziJ z)dBD5NlHGO&2GtTXa-Uw)#M3Y^7t$PADhMlS5{)%wl~n#briR(zJ==BiG80PLC=W+ zq%&FAJ${r=~x8A~H@u(Ug##XRRJ@LDQ}HCn#!c=beVezhG(j~&ITmA}CIdk)|~ong2G4Jd7yhw9Q=s(UwJGNd8{jU1U! z;lfZfWf7S%r4mPj!&VNd40G}uvtZ7Zn+DRlS!<`EW21S`y9k0EbEgLoA05I2ZT0x` zi+{qg?jTmJT7{#bQ`jApP}Q=Oj0%9k6vCvLJrqz0_Q5~h^o=R$V_nv{2mh-BH z`}VDw^o>U3urWJXB4g;}y-H9t3ruPdYg%iuannY0c6MUfvSm0O8Nml#2?S;?1;@Jp zoh=wvE%hwWHo_|5QnwuqRNjY!XOPQjR&tZmZ+~kR4E85Cm3r(X9s{GeyO|Nl;HE`> zGX4U^{0OdCd?h(*!}bGV_@}p0934cmNH+hDs#~ka!CBsyICzUx_wkWJ3Fj3e%?%DO zpK}~fy71{O6Q}rZvk5l*q*lgti>t8twO7#7(~G$m&BLsgi?C_yrzmS~h0W|)Oz-R+fhfwB{F;_0XIjr1V)n10eQRzz=Q!3iWo>jYe%*Dg0q=t5612bk z5<;O6rZ!E(g3A`+^?!Z>@8l(57{Tg_08rwzQI~TRwXO*`m2hJ>NxFYVhtuyN@n+jne7Utb^ml>yxS>wBaYeQpwEqVu1 zU>OFWQRQBQjH9j7Kl`B`e?!W*39W+v}dGBBE;#7Y>#S?hw zp+DlKzwd@we-#4d)o|Jv2n=IwPOrUcDuSot_=K|C8n;dXJlzA&fhH@Q0tYcA14>RY zGSYpaz4yLy&RsEq`{<*O{&x8A;rYQ}(3m%GUj0)~J;knDx6a)9<~v{XOBV$ux6G(# zOG=<~3^bB9nbVbv_Vzn5`pNL^~e=&(^J5`$_(1dwYA|p`o((;K73@ z*RNlHD}dvKazcRTg(^?&Rg0Wu(=Hc0fhNx5@!8y77sIpABpNSbDy=3XebVT$j^yyc z4qeI(18Nk&Fxk(37Xjz$)vKRtYiqkxRaN8Ap+hG(Y}jx!fFQw6m_Vo@RF8vYtEgbA zNQF``;7Rs0W0*0+(8(yGU&ATF01?QXpFmLs+EOo66h#2=IUzzX>14#p5rT~%5Zpz0 rif|E3LZ*mxag_);f=bZ7D+K=q?BI@2v3cRe00000NkvXXu0mjf&b9>9 literal 0 HcmV?d00001 diff --git a/src/lib/data/oxygen-fallback/index.theme b/src/lib/data/oxygen-fallback/index.theme new file mode 100644 index 000000000..a21ab457e --- /dev/null +++ b/src/lib/data/oxygen-fallback/index.theme @@ -0,0 +1,15 @@ +[Icon Theme] +Name=Oxygen +Comment=Oxygen Team +DisplayDepth=32 +Inherits=default +Directories=16x16,22x22,32x32 + +[16x16] +Size=16 + +[22x22] +Size=22 + +[32x32] +Size=32 diff --git a/src/lib/downloads/downloaditem.cpp b/src/lib/downloads/downloaditem.cpp index 8e5a81d28..faf5a437a 100644 --- a/src/lib/downloads/downloaditem.cpp +++ b/src/lib/downloads/downloaditem.cpp @@ -22,7 +22,6 @@ #include "tabwidget.h" #include "webpage.h" #include "downloadmanager.h" -#include "iconprovider.h" #include "networkmanager.h" #include "qztools.h" #include "schemehandlers/ftpschemehandler.h" @@ -72,7 +71,7 @@ DownloadItem::DownloadItem(QListWidgetItem* item, QNetworkReply* reply, const QS ui->setupUi(this); setMaximumWidth(525); - ui->button->setPixmap(IconProvider::standardIcon(QStyle::SP_BrowserStop).pixmap(20, 20)); + ui->button->setPixmap(QIcon::fromTheme(QSL("process-stop")).pixmap(20, 20)); ui->fileName->setText(m_fileName); ui->downloadInfo->setText(tr("Remaining time unavailable")); ui->fileIcon->setPixmap(fileIcon); @@ -378,7 +377,7 @@ void DownloadItem::customContextMenuRequested(const QPoint &pos) menu.addAction(tr("Go to Download Page"), this, SLOT(goToDownloadPage()))->setEnabled(!m_downloadPage.isEmpty()); menu.addAction(QIcon::fromTheme("edit-copy"), tr("Copy Download Link"), this, SLOT(copyDownloadLink())); menu.addSeparator(); - menu.addAction(IconProvider::standardIcon(QStyle::SP_BrowserStop), tr("Cancel downloading"), this, SLOT(stop()))->setEnabled(m_downloading); + menu.addAction(QIcon::fromTheme("process-stop"), tr("Cancel downloading"), this, SLOT(stop()))->setEnabled(m_downloading); menu.addAction(QIcon::fromTheme("list-remove"), tr("Remove From List"), this, SLOT(clear()))->setEnabled(!m_downloading); if (m_downloading || ui->downloadInfo->text().startsWith(tr("Cancelled")) || ui->downloadInfo->text().startsWith(tr("Error"))) { diff --git a/src/lib/downloads/downloadmanager.cpp b/src/lib/downloads/downloadmanager.cpp index db6038826..8750debea 100644 --- a/src/lib/downloads/downloadmanager.cpp +++ b/src/lib/downloads/downloadmanager.cpp @@ -270,7 +270,7 @@ void DownloadManager::downloadFinished(bool success) if (downloadingAllFilesFinished) { if (success && qApp->activeWindow() != this) { - mApp->desktopNotifications()->showNotification(QIcon::fromTheme("mail-inbox", QIcon(":icons/notifications/download.png")).pixmap(48), tr("Download Finished"), tr("All files have been successfully downloaded.")); + mApp->desktopNotifications()->showNotification(QIcon::fromTheme(QSL("download"), QIcon(":icons/notifications/download.png")).pixmap(48), tr("Download Finished"), tr("All files have been successfully downloaded.")); if (!m_closeOnFinish) { raise(); activateWindow(); diff --git a/src/lib/history/historymenu.cpp b/src/lib/history/historymenu.cpp index aa24c792a..e0550ad1f 100644 --- a/src/lib/history/historymenu.cpp +++ b/src/lib/history/historymenu.cpp @@ -219,7 +219,7 @@ void HistoryMenu::init() act = addAction(IconProvider::standardIcon(QStyle::SP_ArrowForward), tr("&Forward"), this, SLOT(goForward())); act->setShortcut(actionShortcut(QKeySequence::Forward, Qt::ALT + Qt::Key_Right, QKeySequence::Back, Qt::ALT + Qt::Key_Left)); - act = addAction(IconProvider::iconFromTheme("go-home"), tr("&Home"), this, SLOT(goHome())); + act = addAction(QIcon::fromTheme("go-home"), tr("&Home"), this, SLOT(goHome())); act->setShortcut(QKeySequence(Qt::ALT + Qt::Key_Home)); act = addAction(QIcon::fromTheme("view-history", QIcon(":/icons/menu/history.png")), tr("Show &All History"), this, SLOT(showHistoryManager())); diff --git a/src/lib/lib.pro b/src/lib/lib.pro index 85a71c030..93881af48 100644 --- a/src/lib/lib.pro +++ b/src/lib/lib.pro @@ -524,6 +524,7 @@ RESOURCES += \ data/html.qrc \ data/data.qrc \ data/certs.qrc \ + data/oxygen-fallback.qrc isEqual(QT_MAJOR_VERSION, 5) { include(3rdparty/qftp.pri) diff --git a/src/lib/navigation/completer/locationcompleterdelegate.cpp b/src/lib/navigation/completer/locationcompleterdelegate.cpp index 4ccb90645..95b108b61 100644 --- a/src/lib/navigation/completer/locationcompleterdelegate.cpp +++ b/src/lib/navigation/completer/locationcompleterdelegate.cpp @@ -129,7 +129,7 @@ void LocationCompleterDelegate::paint(QPainter* painter, const QStyleOptionViewI int tabPos = index.data(LocationCompleterModel::TabPositionTabRole).toInt(); if (drawSwitchToTab() && tabPos != -1) { - const QIcon tabIcon = QIcon(":icons/menu/tab.png"); + const QIcon tabIcon = QIcon(QSL(":icons/menu/tab.png")); QRect iconRect(linkRect); iconRect.setWidth(m_padding + 16 + m_padding); tabIcon.paint(painter, iconRect); diff --git a/src/lib/navigation/websearchbar.cpp b/src/lib/navigation/websearchbar.cpp index c5dd672f1..b202c8b52 100644 --- a/src/lib/navigation/websearchbar.cpp +++ b/src/lib/navigation/websearchbar.cpp @@ -28,6 +28,7 @@ #include "searchenginesmanager.h" #include "searchenginesdialog.h" #include "networkmanager.h" +#include "iconprovider.h" #include #include @@ -106,7 +107,7 @@ void WebSearchBar::aboutToShowMenu() menu->addSeparator(); completeMenuWithAvailableEngines(menu); menu->addSeparator(); - menu->addAction(QIcon(":icons/menu/gear.png"), tr("Manage Search Engines"), this, SLOT(openSearchEnginesDialog())); + menu->addAction(IconProvider::settingsIcon(), tr("Manage Search Engines"), this, SLOT(openSearchEnginesDialog())); } void WebSearchBar::addSuggestions(const QStringList &list) diff --git a/src/lib/other/sourceviewer.cpp b/src/lib/other/sourceviewer.cpp index 64951e332..5c13186a4 100644 --- a/src/lib/other/sourceviewer.cpp +++ b/src/lib/other/sourceviewer.cpp @@ -20,7 +20,6 @@ #include "htmlhighlighter.h" #include "sourceviewersearch.h" #include "qztools.h" -#include "iconprovider.h" #include "enhancedmenu.h" #include "plaineditwithlines.h" @@ -95,7 +94,7 @@ SourceViewer::SourceViewer(QWebFrame* frame, const QString &selectedHtml) m_actionPaste->setShortcut(QKeySequence("Ctrl+V")); QMenu* menuView = new QMenu(tr("View")); - menuView->addAction(IconProvider::standardIcon(QStyle::SP_BrowserReload), tr("Reload"), this, SLOT(reload()))->setShortcut(QKeySequence("F5")); + menuView->addAction(QIcon::fromTheme(QSL("view-refresh")), tr("Reload"), this, SLOT(reload()))->setShortcut(QKeySequence("F5")); menuView->addSeparator(); menuView->addAction(tr("Editable"), this, SLOT(setTextEditable()))->setCheckable(true); menuView->addAction(tr("Word Wrap"), this, SLOT(setTextWordWrap()))->setCheckable(true); diff --git a/src/lib/popupwindow/popupwindow.cpp b/src/lib/popupwindow/popupwindow.cpp index 56ba49c3b..0aff0156b 100644 --- a/src/lib/popupwindow/popupwindow.cpp +++ b/src/lib/popupwindow/popupwindow.cpp @@ -25,7 +25,6 @@ #include "qzsettings.h" #include "popuplocationbar.h" #include "qztools.h" -#include "iconprovider.h" #include #include @@ -82,9 +81,9 @@ PopupWindow::PopupWindow(PopupWebView* view) m_menuBar->addMenu(m_menuEdit); m_menuView = new QMenu(tr("View")); - m_actionStop = m_menuView->addAction(IconProvider::standardIcon(QStyle::SP_BrowserStop), tr("&Stop"), m_view, SLOT(stop())); + m_actionStop = m_menuView->addAction(QIcon::fromTheme(QSL("process-stop")), tr("&Stop"), m_view, SLOT(stop())); m_actionStop->setShortcut(QKeySequence("Esc")); - m_actionReload = m_menuView->addAction(IconProvider::standardIcon(QStyle::SP_BrowserReload), tr("&Reload"), m_view, SLOT(reload())); + m_actionReload = m_menuView->addAction(QIcon::fromTheme(QSL("view-refresh")), tr("&Reload"), m_view, SLOT(reload())); m_actionReload->setShortcut(QKeySequence("F5")); m_menuView->addSeparator(); m_menuView->addAction(QIcon::fromTheme("zoom-in"), tr("Zoom &In"), m_view, SLOT(zoomIn()))->setShortcut(QKeySequence("Ctrl++")); diff --git a/src/lib/rss/rssmanager.cpp b/src/lib/rss/rssmanager.cpp index ecb5d0feb..3bcb87694 100644 --- a/src/lib/rss/rssmanager.cpp +++ b/src/lib/rss/rssmanager.cpp @@ -53,7 +53,7 @@ RSSManager::RSSManager(BrowserWindow* window, QWidget* parent) m_reloadButton = new QToolButton(this); m_reloadButton->setAutoRaise(true); m_reloadButton->setToolTip(tr("Reload")); - m_reloadButton->setIcon(IconProvider::standardIcon(QStyle::SP_BrowserReload)); + m_reloadButton->setIcon(QIcon::fromTheme(QSL("view-refresh"))); ui->tabWidget->setCornerWidget(m_reloadButton); diff --git a/src/lib/sidebar/bookmarkssidebar.cpp b/src/lib/sidebar/bookmarkssidebar.cpp index 30102f035..f76507126 100644 --- a/src/lib/sidebar/bookmarkssidebar.cpp +++ b/src/lib/sidebar/bookmarkssidebar.cpp @@ -21,6 +21,7 @@ #include "bookmarkitem.h" #include "bookmarks.h" #include "mainapplication.h" +#include "iconprovider.h" #include @@ -99,9 +100,9 @@ void BookmarksSidebar::deleteBookmarks() void BookmarksSidebar::createContextMenu(const QPoint &pos) { QMenu menu; - QAction* actNewTab = menu.addAction(QIcon::fromTheme("tab-new", QIcon(":/icons/menu/tab-new.png")), tr("Open in new tab")); - QAction* actNewWindow = menu.addAction(QIcon::fromTheme("window-new"), tr("Open in new window")); - QAction* actNewPrivateWindow = menu.addAction(QIcon(":icons/locationbar/privatebrowsing.png"), tr("Open in new private window")); + QAction* actNewTab = menu.addAction(IconProvider::newTabIcon(), tr("Open in new tab")); + QAction* actNewWindow = menu.addAction(IconProvider::newWindowIcon(), tr("Open in new window")); + QAction* actNewPrivateWindow = menu.addAction(IconProvider::privateBrowsingIcon(), tr("Open in new private window")); menu.addSeparator(); QAction* actDelete = menu.addAction(QIcon::fromTheme("edit-delete"), tr("Delete")); diff --git a/src/lib/tools/iconprovider.cpp b/src/lib/tools/iconprovider.cpp index 1009938f9..2d789d5a5 100644 --- a/src/lib/tools/iconprovider.cpp +++ b/src/lib/tools/iconprovider.cpp @@ -70,95 +70,81 @@ QIcon IconProvider::standardIcon(QStyle::StandardPixmap icon) { switch (icon) { case QStyle::SP_MessageBoxCritical: - return QIcon::fromTheme("dialog-error", QApplication::style()->standardIcon(QStyle::SP_MessageBoxCritical)); + return QIcon::fromTheme(QSL("dialog-error"), QApplication::style()->standardIcon(icon)); case QStyle::SP_MessageBoxInformation: - return QIcon::fromTheme("dialog-information", QApplication::style()->standardIcon(QStyle::SP_MessageBoxInformation)); + return QIcon::fromTheme(QSL("dialog-information"), QApplication::style()->standardIcon(icon)); case QStyle::SP_MessageBoxQuestion: - return QIcon::fromTheme("dialog-question", QApplication::style()->standardIcon(QStyle::SP_MessageBoxQuestion)); + return QIcon::fromTheme(QSL("dialog-question"), QApplication::style()->standardIcon(icon)); case QStyle::SP_MessageBoxWarning: - return QIcon::fromTheme("dialog-warning", QApplication::style()->standardIcon(QStyle::SP_MessageBoxWarning)); + return QIcon::fromTheme(QSL("dialog-warning"), QApplication::style()->standardIcon(icon)); -#ifndef QZ_WS_X11 case QStyle::SP_DialogCloseButton: - return QIcon(":/icons/theme/close.png"); + return QIcon::fromTheme(QSL("dialog-close"), QApplication::style()->standardIcon(icon)); case QStyle::SP_BrowserStop: - return QIcon(":/icons/theme/stop.png"); + return QIcon::fromTheme(QSL("process-stop"), QApplication::style()->standardIcon(icon)); case QStyle::SP_BrowserReload: - return QIcon(":/icons/theme/reload.png"); + return QIcon::fromTheme(QSL("view-refresh"), QApplication::style()->standardIcon(icon)); case QStyle::SP_FileDialogToParent: - return QIcon(":/icons/theme/go-up.png"); + return QIcon::fromTheme(QSL("go-up"), QApplication::style()->standardIcon(icon)); + + case QStyle::SP_ArrowUp: + return QIcon::fromTheme(QSL("go-up"), QApplication::style()->standardIcon(icon)); + + case QStyle::SP_ArrowDown: + return QIcon::fromTheme(QSL("go-down"), QApplication::style()->standardIcon(icon)); case QStyle::SP_ArrowForward: - //RTL Support if (QApplication::layoutDirection() == Qt::RightToLeft) { - return QIcon(":/icons/theme/back.png"); - } - else { - return QIcon(":/icons/theme/forward.png"); + return QIcon::fromTheme(QSL("go-previous"), QApplication::style()->standardIcon(icon)); } + return QIcon::fromTheme(QSL("go-next"), QApplication::style()->standardIcon(icon)); case QStyle::SP_ArrowBack: - //RTL Support if (QApplication::layoutDirection() == Qt::RightToLeft) { - return QIcon(":/icons/theme/forward.png"); + return QIcon::fromTheme(QSL("go-next"), QApplication::style()->standardIcon(icon)); } - else { - return QIcon(":/icons/theme/back.png"); - } -#endif + return QIcon::fromTheme(QSL("go-previous"), QApplication::style()->standardIcon(icon)); + default: return QApplication::style()->standardIcon(icon); } } -QIcon IconProvider::iconFromTheme(const QString &icon) +QIcon IconProvider::newTabIcon() { - // TODO: This should actually look in :icons/theme for fallback icon, not hardcode every icon + return QIcon::fromTheme(QSL("tab-new"), QIcon(QSL(":/icons/menu/tab-new.png"))); +} - if (icon == QLatin1String("go-home")) { - return QIcon::fromTheme("go-home", QIcon(":/icons/theme/home.png")); - } - else if (icon == QLatin1String("text-plain")) { - return QIcon::fromTheme("text-plain", QIcon(":icons/locationbar/unknownpage.png")); - } - else if (icon == QLatin1String("bookmarks-organize")) { - return QIcon::fromTheme("bookmarks-organize", QIcon(":icons/theme/user-bookmarks.png")); - } - else if (icon == QLatin1String("bookmark-new")) { - return QIcon::fromTheme("bookmark-new", QIcon(":icons/theme/user-bookmarks.png")); - } - else if (icon == QLatin1String("list-remove")) { - return QIcon::fromTheme("list-remove", QIcon(":icons/theme/list-remove.png")); - } - else if (icon == QLatin1String("go-next")) { - return QIcon::fromTheme("go-next", QIcon(":icons/theme/go-next.png")); - } - else if (icon == QLatin1String("go-previous")) { - return QIcon::fromTheme("go-previous", QIcon(":icons/theme/go-previous.png")); - } - else if (icon == QLatin1String("view-restore")) { - return QIcon::fromTheme("view-restore", QIcon(":icons/theme/view-restore.png")); - } - else { - return QIcon::fromTheme(icon); - } +QIcon IconProvider::newWindowIcon() +{ + return QIcon::fromTheme(QSL("window-new"), QIcon(QSL(":/icons/menu/window-new.png"))); +} + +QIcon IconProvider::privateBrowsingIcon() +{ + return QIcon(QSL(":/icons/menu/privatebrowsing.png")); +} + +QIcon IconProvider::settingsIcon() +{ + return QIcon(QSL(":/icons/menu/settings.png")); } QIcon IconProvider::emptyWebIcon() { - return QPixmap::fromImage(instance()->m_emptyWebImage); + return QPixmap::fromImage(instance()->emptyWebImage()); } QImage IconProvider::emptyWebImage() { if (instance()->m_emptyWebImage.isNull()) { - instance()->m_emptyWebImage = iconFromTheme("text-plain").pixmap(16, 16).toImage(); + instance()->m_emptyWebImage = QPixmap(":icons/other/empty-page.png").toImage(); } return instance()->m_emptyWebImage; @@ -262,9 +248,5 @@ void IconProvider::clearIconsDatabase() QIcon IconProvider::iconFromImage(const QImage &image) { - if (m_emptyWebImage.isNull()) { - m_emptyWebImage = iconFromTheme("text-plain").pixmap(16, 16).toImage(); - } - return QIcon(QPixmap::fromImage(image)); } diff --git a/src/lib/tools/iconprovider.h b/src/lib/tools/iconprovider.h index 73bccf3eb..b2e53a58d 100644 --- a/src/lib/tools/iconprovider.h +++ b/src/lib/tools/iconprovider.h @@ -45,9 +45,13 @@ public: QPixmap bookmarkIcon() const; void setBookmarkIcon(const QPixmap &pixmap); - // QStyle equivalents + // QStyle equivalent static QIcon standardIcon(QStyle::StandardPixmap icon); - static QIcon iconFromTheme(const QString &icon); + + static QIcon newTabIcon(); + static QIcon newWindowIcon(); + static QIcon privateBrowsingIcon(); + static QIcon settingsIcon(); // Icon for empty page static QIcon emptyWebIcon(); diff --git a/src/lib/tools/toolbutton.cpp b/src/lib/tools/toolbutton.cpp index 8dfa4f1da..62a32663f 100644 --- a/src/lib/tools/toolbutton.cpp +++ b/src/lib/tools/toolbutton.cpp @@ -16,7 +16,6 @@ * along with this program. If not, see . * ============================================================ */ #include "toolbutton.h" -#include "iconprovider.h" #include #include @@ -36,7 +35,7 @@ ToolButton::ToolButton(QWidget* parent) void ToolButton::setThemeIcon(const QString &image) { m_themeIcon = image; - setIcon(IconProvider::iconFromTheme(image)); + setIcon(QIcon::fromTheme(image)); m_usingMultiIcon = false; } diff --git a/src/lib/webview/tabbar.cpp b/src/lib/webview/tabbar.cpp index aa6f793ec..104d182e5 100644 --- a/src/lib/webview/tabbar.cpp +++ b/src/lib/webview/tabbar.cpp @@ -20,13 +20,13 @@ #include "tabpreview.h" #include "browserwindow.h" #include "webtab.h" -#include "iconprovider.h" #include "toolbutton.h" #include "settings.h" #include "tabbedwebview.h" #include "mainapplication.h" #include "pluginproxy.h" #include "proxystyle.h" +#include "iconprovider.h" #include #include @@ -143,7 +143,7 @@ void TabBar::contextMenuRequested(const QPoint &position) m_clickedTab = index; QMenu menu; - menu.addAction(QIcon::fromTheme("tab-new", QIcon(":/icons/menu/tab-new.png")), tr("&New tab"), m_window, SLOT(addTab())); + menu.addAction(IconProvider::newTabIcon(), tr("&New tab"), m_window, SLOT(addTab())); menu.addSeparator(); if (index != -1) { WebTab* webTab = qobject_cast(m_tabWidget->widget(m_clickedTab)); @@ -152,10 +152,10 @@ void TabBar::contextMenuRequested(const QPoint &position) } if (m_window->weView(m_clickedTab)->isLoading()) { - menu.addAction(IconProvider::standardIcon(QStyle::SP_BrowserStop), tr("&Stop Tab"), this, SLOT(stopTab())); + menu.addAction(QIcon::fromTheme(QSL("process-stop")), tr("&Stop Tab"), this, SLOT(stopTab())); } else { - menu.addAction(IconProvider::standardIcon(QStyle::SP_BrowserReload), tr("&Reload Tab"), this, SLOT(reloadTab())); + menu.addAction(QIcon::fromTheme(QSL("view-refresh")), tr("&Reload Tab"), this, SLOT(reloadTab())); } menu.addAction(QIcon::fromTheme("tab-duplicate"), tr("&Duplicate Tab"), this, SLOT(duplicateTab())); diff --git a/src/lib/webview/webview.cpp b/src/lib/webview/webview.cpp index 45f7b935c..c9b8454a4 100644 --- a/src/lib/webview/webview.cpp +++ b/src/lib/webview/webview.cpp @@ -849,8 +849,8 @@ void WebView::createContextMenu(QMenu* menu, const QWebHitTestResult &hitTest, c pageAction(QWebPage::ToggleItalic)->setText(tr("Italic")); pageAction(QWebPage::ToggleUnderline)->setText(tr("Underline")); - m_actionReload = new QAction(IconProvider::standardIcon(QStyle::SP_BrowserReload), tr("&Reload"), this); - m_actionStop = new QAction(IconProvider::standardIcon(QStyle::SP_BrowserStop), tr("S&top"), this); + m_actionReload = new QAction(QIcon::fromTheme(QSL("view-refresh")), tr("&Reload"), this); + m_actionStop = new QAction(QIcon::fromTheme(QSL("process-stop")), tr("S&top"), this); connect(m_actionReload, SIGNAL(triggered()), this, SLOT(reload())); connect(m_actionStop, SIGNAL(triggered()), this, SLOT(stop())); @@ -983,12 +983,12 @@ void WebView::createPageContextMenu(QMenu* menu, const QPoint &pos) Menu* frameMenu = new Menu(tr("This frame")); frameMenu->setCloseOnMiddleClick(true); frameMenu->addAction(tr("Show &only this frame"), this, SLOT(loadClickedFrame())); - Action* act = new Action(QIcon::fromTheme("tab-new", QIcon(":/icons/menu/tab-new.png")), tr("Show this frame in new &tab")); + Action* act = new Action(IconProvider::newTabIcon(), tr("Show this frame in new &tab")); connect(act, SIGNAL(triggered()), this, SLOT(loadClickedFrameInNewTab())); connect(act, SIGNAL(ctrlTriggered()), this, SLOT(loadClickedFrameInBgTab())); frameMenu->addAction(act); frameMenu->addSeparator(); - frameMenu->addAction(IconProvider::standardIcon(QStyle::SP_BrowserReload), tr("&Reload"), this, SLOT(reloadClickedFrame())); + frameMenu->addAction(QIcon::fromTheme(QSL("view-refresh")), tr("&Reload"), this, SLOT(reloadClickedFrame())); frameMenu->addAction(QIcon::fromTheme("document-print"), tr("Print frame"), this, SLOT(printClickedFrame())); frameMenu->addSeparator(); frameMenu->addAction(QIcon::fromTheme("zoom-in"), tr("Zoom &in"), this, SLOT(clickedFrameZoomIn())); @@ -1001,7 +1001,7 @@ void WebView::createPageContextMenu(QMenu* menu, const QPoint &pos) } menu->addSeparator(); - menu->addAction(IconProvider::iconFromTheme("bookmark-new"), tr("Book&mark page"), this, SLOT(bookmarkLink())); + menu->addAction(QIcon::fromTheme("bookmark-new"), tr("Book&mark page"), this, SLOT(bookmarkLink())); menu->addAction(QIcon::fromTheme("document-save"), tr("&Save page as..."), this, SLOT(savePageAs())); menu->addAction(QIcon::fromTheme("edit-copy"), tr("&Copy page link"), this, SLOT(copyLinkToClipboard()))->setData(url()); menu->addAction(QIcon::fromTheme("mail-message-new"), tr("Send page link..."), this, SLOT(sendPageByMail())); @@ -1027,7 +1027,7 @@ void WebView::createPageContextMenu(QMenu* menu, const QPoint &pos) else { menu->addSeparator(); menu->addAction(QIcon::fromTheme("list-add"), tr("&Add New Page"), this, SLOT(addSpeedDial())); - menu->addAction(QIcon::fromTheme("configure"), tr("&Configure Speed Dial"), this, SLOT(configureSpeedDial())); + menu->addAction(IconProvider::settingsIcon(), tr("&Configure Speed Dial"), this, SLOT(configureSpeedDial())); } } @@ -1039,18 +1039,18 @@ void WebView::createLinkContextMenu(QMenu* menu, const QWebHitTestResult &hitTes } menu->addSeparator(); - Action* act = new Action(QIcon::fromTheme("tab-new", QIcon(":/icons/menu/tab-new.png")), tr("Open link in new &tab")); + Action* act = new Action(IconProvider::newTabIcon(), tr("Open link in new &tab")); act->setData(hitTest.linkUrl()); connect(act, SIGNAL(triggered()), this, SLOT(userDefinedOpenUrlInNewTab())); connect(act, SIGNAL(ctrlTriggered()), this, SLOT(userDefinedOpenUrlInBgTab())); menu->addAction(act); - menu->addAction(QIcon::fromTheme("window-new"), tr("Open link in new &window"), this, SLOT(openUrlInNewWindow()))->setData(hitTest.linkUrl()); - menu->addAction(QIcon(":icons/locationbar/privatebrowsing.png"), tr("Open link in &private window"), mApp, SLOT(startPrivateBrowsing()))->setData(hitTest.linkUrl()); + menu->addAction(IconProvider::newWindowIcon(), tr("Open link in new &window"), this, SLOT(openUrlInNewWindow()))->setData(hitTest.linkUrl()); + menu->addAction(IconProvider::privateBrowsingIcon(), tr("Open link in &private window"), mApp, SLOT(startPrivateBrowsing()))->setData(hitTest.linkUrl()); menu->addSeparator(); QVariantList bData; bData << hitTest.linkUrl() << hitTest.linkTitle(); - menu->addAction(IconProvider::iconFromTheme("bookmark-new"), tr("B&ookmark link"), this, SLOT(bookmarkLink()))->setData(bData); + menu->addAction(QIcon::fromTheme("bookmark-new"), tr("B&ookmark link"), this, SLOT(bookmarkLink()))->setData(bData); menu->addAction(QIcon::fromTheme("document-save"), tr("&Save link as..."), this, SLOT(downloadUrlToDisk()))->setData(hitTest.linkUrl()); menu->addAction(QIcon::fromTheme("mail-message-new"), tr("Send link..."), this, SLOT(sendLinkByMail()))->setData(hitTest.linkUrl()); diff --git a/src/main/main.cpp b/src/main/main.cpp index d539171b2..331cdcb30 100644 --- a/src/main/main.cpp +++ b/src/main/main.cpp @@ -167,6 +167,11 @@ int main(int argc, char* argv[]) signal(SIGPIPE, qupzilla_signal_handler); #endif + if (!QIcon::hasThemeIcon(QSL("document-open"))) { + QIcon::setThemeSearchPaths(QStringList() << QL1S(":/oxygen-fallback")); + QIcon::setThemeName(QSL("oxygen-fallback")); + } + MainApplication app(argc, argv); if (app.isClosing()) {