From 9902e64f81315a2f83714dd7ff871d2eace97f4c Mon Sep 17 00:00:00 2001 From: nowrep Date: Sun, 11 Sep 2011 19:15:06 +0200 Subject: [PATCH] Added theme support. 5 themes are available now: Chrome, Windows, Old, Linux Native and Mac --- .gitignore | 1 + README | 2 +- .../default/profiles/default/browsedata.db | Bin 15360 -> 19456 bytes bin/locale/cs_CZ.qm | Bin 68675 -> 68084 bytes bin/locale/sk_SK.qm | Bin 70165 -> 69532 bytes bin/themes/chrome/images/blankbutton-a.png | Bin 0 -> 1190 bytes bin/themes/chrome/images/blankbutton-h.png | Bin 0 -> 1322 bytes bin/themes/chrome/images/flash.png | Bin 0 -> 3373 bytes bin/themes/chrome/images/flashstart.png | Bin 0 -> 3220 bytes bin/themes/chrome/images/gotoaddress.png | Bin 0 -> 612 bytes bin/themes/chrome/images/library-bg-left.png | Bin 0 -> 546 bytes .../chrome/images/library-bg-top-right.png | Bin 0 -> 208 bytes bin/themes/chrome/images/library-bg-top.png | Bin 0 -> 327 bytes .../chrome/images/library-search-bg.png | Bin 0 -> 569 bytes bin/themes/chrome/images/lineedit-bg.png | Bin 0 -> 457 bytes .../chrome/images/navigation-addtab.png | Bin 0 -> 3003 bytes bin/themes/chrome/images/navigation-back.png | Bin 0 -> 3325 bytes .../chrome/images/navigation-dropdown.png | Bin 0 -> 737 bytes .../chrome/images/navigation-forward.png | Bin 0 -> 3210 bytes bin/themes/chrome/images/navigation-home.png | Bin 0 -> 6246 bytes .../chrome/images/navigation-reload.png | Bin 0 -> 4122 bytes bin/themes/chrome/images/navigation-stop.png | Bin 0 -> 3855 bytes .../chrome/images/navigation-supermenu.png | Bin 0 -> 5259 bytes bin/themes/chrome/images/rss.png | Bin 0 -> 735 bytes bin/themes/chrome/images/search-icon.png | Bin 0 -> 3093 bytes .../chrome/images/searchbar-provider-bg.png | Bin 0 -> 1008 bytes bin/themes/chrome/images/siteicon-bg.png | Bin 0 -> 784 bytes .../chrome/images/siteicon-secure-bg.png | Bin 0 -> 588 bytes bin/themes/chrome/images/star-a.png | Bin 0 -> 359 bytes bin/themes/chrome/images/star.png | Bin 0 -> 348 bytes bin/themes/chrome/images/tabs-bg.png | Bin 0 -> 320 bytes bin/themes/chrome/images/tabs-list-button.png | Bin 0 -> 2226 bytes bin/themes/chrome/images/toolbar-bg.png | Bin 0 -> 254 bytes bin/themes/chrome/images/transp.png | Bin 0 -> 141 bytes bin/themes/chrome/linux.css | 6 + bin/themes/chrome/main.css | 347 ++++++++ bin/themes/chrome/theme.info | 4 + bin/themes/chrome/theme.png | Bin 0 -> 1472 bytes bin/themes/chrome/windows.css | 6 + bin/themes/default/images/arrow-down.gif | Bin 0 -> 54 bytes bin/themes/default/images/background.png | Bin 0 -> 16841 bytes bin/themes/default/images/flash.png | Bin 0 -> 3373 bytes bin/themes/default/images/flashstart.png | Bin 0 -> 3220 bytes bin/themes/default/images/gotoaddress.png | Bin 0 -> 612 bytes bin/themes/default/images/library-bg-left.png | Bin 0 -> 546 bytes .../default/images/library-bg-top-right.png | Bin 0 -> 208 bytes bin/themes/default/images/library-bg-top.png | Bin 0 -> 327 bytes bin/themes/default/images/lineedit-bg.png | Bin 0 -> 569 bytes .../default/images/navigation-addtab.png | Bin 0 -> 331 bytes bin/themes/default/images/navigation-back.png | Bin 0 -> 600 bytes .../default/images/navigation-forward.png | Bin 0 -> 600 bytes bin/themes/default/images/navigation-home.png | Bin 0 -> 920 bytes .../default/images/navigation-reload.png | Bin 0 -> 983 bytes bin/themes/default/images/navigation-stop.png | Bin 0 -> 884 bytes .../default/images/navigation-supmenu.png | Bin 0 -> 5236 bytes bin/themes/default/images/rss.png | Bin 0 -> 735 bytes bin/themes/default/images/search.png | Bin 0 -> 660 bytes .../default/images/siteicon-bg-secure.png | Bin 0 -> 997 bytes bin/themes/default/images/siteicon-bg.png | Bin 0 -> 655 bytes bin/themes/default/images/star.png | Bin 0 -> 3058 bytes bin/themes/default/images/starg.png | Bin 0 -> 3065 bytes .../default/images/tabs-list-button.png | Bin 0 -> 322 bytes bin/themes/default/images/transp.png | Bin 0 -> 141 bytes bin/themes/default/main.css | 344 ++++++++ bin/themes/default/theme.info | 4 + bin/themes/default/theme.png | Bin 0 -> 5389 bytes bin/themes/default2/images/flash.png | Bin 0 -> 3373 bytes bin/themes/default2/images/flashstart.png | Bin 0 -> 3220 bytes bin/themes/default2/images/gotoaddress.png | Bin 0 -> 612 bytes .../default2/images/library-bg-top-right.png | Bin 0 -> 208 bytes bin/themes/default2/images/library-bg-top.png | Bin 0 -> 327 bytes .../default2/images/library-search-bg.png | Bin 0 -> 569 bytes .../default2/images/navigation-dropdown.png | Bin 0 -> 737 bytes bin/themes/default2/images/rss.png | Bin 0 -> 735 bytes bin/themes/default2/images/search-icon.png | Bin 0 -> 3093 bytes bin/themes/default2/images/star-a.png | Bin 0 -> 359 bytes bin/themes/default2/images/star.png | Bin 0 -> 348 bytes .../default2/images/tabs-list-button.png | Bin 0 -> 322 bytes bin/themes/default2/images/transp.png | Bin 0 -> 141 bytes bin/themes/default2/main.css | 291 ++++++ bin/themes/default2/theme.info | 4 + bin/themes/default2/theme.png | Bin 0 -> 1352 bytes bin/themes/linux/images/flash.png | Bin 0 -> 3373 bytes bin/themes/linux/images/flashstart.png | Bin 0 -> 3220 bytes bin/themes/linux/images/gotoaddress.png | Bin 0 -> 612 bytes bin/themes/linux/images/library-bg-left.png | Bin 0 -> 546 bytes .../linux/images/library-bg-top-right.png | Bin 0 -> 208 bytes bin/themes/linux/images/library-bg-top.png | Bin 0 -> 327 bytes bin/themes/linux/images/library-search-bg.png | Bin 0 -> 569 bytes .../linux/images/navigation-dropdown.png | Bin 0 -> 737 bytes bin/themes/linux/images/rss.png | Bin 0 -> 735 bytes bin/themes/linux/images/search-icon.png | Bin 0 -> 3093 bytes bin/themes/linux/images/star-a.png | Bin 0 -> 359 bytes bin/themes/linux/images/star.png | Bin 0 -> 348 bytes bin/themes/linux/images/tabs-list-button.png | Bin 0 -> 322 bytes bin/themes/linux/images/transp.png | Bin 0 -> 141 bytes bin/themes/linux/main.css | 306 +++++++ bin/themes/linux/theme.info | 4 + bin/themes/linux/theme.png | Bin 0 -> 1579 bytes bin/themes/mac/images/feed-icon.png | Bin 0 -> 824 bytes bin/themes/mac/images/flash.png | Bin 0 -> 3373 bytes bin/themes/mac/images/flashstart.png | Bin 0 -> 3220 bytes bin/themes/mac/images/gotoaddress.png | Bin 0 -> 612 bytes bin/themes/mac/images/library-bg-left.png | Bin 0 -> 546 bytes .../mac/images/library-bg-top-right.png | Bin 0 -> 208 bytes bin/themes/mac/images/library-bg-top.png | Bin 0 -> 327 bytes bin/themes/mac/images/library-search-bg.png | Bin 0 -> 569 bytes bin/themes/mac/images/lineedit-bg.png | Bin 0 -> 270 bytes bin/themes/mac/images/navigation-addtab.png | Bin 0 -> 4002 bytes bin/themes/mac/images/navigation-back.png | Bin 0 -> 2601 bytes bin/themes/mac/images/navigation-dropdown.png | Bin 0 -> 2833 bytes bin/themes/mac/images/navigation-forward.png | Bin 0 -> 2743 bytes bin/themes/mac/images/navigation-home.png | Bin 0 -> 4041 bytes bin/themes/mac/images/navigation-reload.png | Bin 0 -> 4610 bytes bin/themes/mac/images/navigation-stop.png | Bin 0 -> 4490 bytes .../mac/images/navigation-supermenu.png | Bin 0 -> 4827 bytes bin/themes/mac/images/search-icon.png | Bin 0 -> 385 bytes .../mac/images/searchbar-provider-bg.png | Bin 0 -> 1414 bytes bin/themes/mac/images/siteicon-bg.png | Bin 0 -> 1316 bytes bin/themes/mac/images/siteicon-secure-bg.png | Bin 0 -> 958 bytes bin/themes/mac/images/splitter.png | Bin 0 -> 155 bytes bin/themes/mac/images/star-a.png | Bin 0 -> 3321 bytes bin/themes/mac/images/star.png | Bin 0 -> 3393 bytes bin/themes/mac/images/tabs-bg.png | Bin 0 -> 153 bytes bin/themes/mac/images/tabs-list-button.png | Bin 0 -> 457 bytes bin/themes/mac/images/toolbar-bg.png | Bin 0 -> 169 bytes bin/themes/mac/images/tools-a.png | Bin 0 -> 1926 bytes bin/themes/mac/images/tools-h.png | Bin 0 -> 4382 bytes bin/themes/mac/images/tools.png | Bin 0 -> 1655 bytes bin/themes/mac/images/transp.png | Bin 0 -> 141 bytes bin/themes/mac/linux.css | 6 + bin/themes/mac/main.css | 344 ++++++++ bin/themes/mac/theme.info | 4 + bin/themes/mac/theme.png | Bin 0 -> 1314 bytes bin/themes/mac/windows.css | 6 + bin/themes/windows/images/flash.png | Bin 0 -> 3373 bytes bin/themes/windows/images/flashstart.png | Bin 0 -> 3220 bytes bin/themes/windows/images/gotoaddress.png | Bin 0 -> 612 bytes bin/themes/windows/images/library-bg-left.png | Bin 0 -> 546 bytes .../windows/images/library-bg-top-right.png | Bin 0 -> 208 bytes bin/themes/windows/images/library-bg-top.png | Bin 0 -> 327 bytes .../windows/images/library-search-bg.png | Bin 0 -> 569 bytes bin/themes/windows/images/lineedit-bg.png | Bin 0 -> 128 bytes .../windows/images/navigation-addtab.png | Bin 0 -> 664 bytes bin/themes/windows/images/navigation-back.png | Bin 0 -> 9772 bytes .../windows/images/navigation-dropdown.png | Bin 0 -> 737 bytes .../windows/images/navigation-forward.png | Bin 0 -> 5065 bytes bin/themes/windows/images/navigation-home.png | Bin 0 -> 901 bytes .../windows/images/navigation-reload.png | Bin 0 -> 983 bytes bin/themes/windows/images/navigation-stop.png | Bin 0 -> 884 bytes .../windows/images/navigation-supermenu.png | Bin 0 -> 976 bytes bin/themes/windows/images/rss.png | Bin 0 -> 787 bytes bin/themes/windows/images/search-icon.png | Bin 0 -> 799 bytes .../windows/images/searchbar-provider-bg.png | Bin 0 -> 230 bytes bin/themes/windows/images/siteicon-bg.png | Bin 0 -> 185 bytes .../windows/images/siteicon-secure-bg.png | Bin 0 -> 346 bytes bin/themes/windows/images/star-a.png | Bin 0 -> 653 bytes bin/themes/windows/images/star.png | Bin 0 -> 821 bytes bin/themes/windows/images/tabs-bg.png | Bin 0 -> 162 bytes .../windows/images/tabs-list-button.png | Bin 0 -> 466 bytes bin/themes/windows/images/toolbar-bg.png | Bin 0 -> 157 bytes bin/themes/windows/images/transp.png | Bin 0 -> 141 bytes bin/themes/windows/linux.css | 6 + bin/themes/windows/main.css | 350 ++++++++ bin/themes/windows/theme.info | 4 + bin/themes/windows/theme.png | Bin 0 -> 2185 bytes bin/themes/windows/windows.css | 6 + src/3rdparty/fancytabwidget.h | 5 +- src/QupZilla.pro | 23 +- src/adblock/adblockmanager.cpp | 4 +- src/adblock/adblocksubscription.cpp | 6 +- src/app/mainapplication.cpp | 43 +- src/app/mainapplication.h | 6 +- src/app/qupzilla.cpp | 279 ++---- src/app/qupzilla.h | 38 +- src/appicon.rc | 4 +- src/autofill/autofillmodel.cpp | 2 +- src/autofill/autofillnotification.cpp | 2 +- src/bookmarks/bookmarkicon.cpp | 19 +- src/bookmarks/bookmarkicon.h | 12 +- src/bookmarks/bookmarksmanager.ui | 7 +- src/bookmarks/bookmarksmodel.cpp | 4 +- src/bookmarks/bookmarkstoolbar.cpp | 119 ++- src/bookmarks/bookmarkstoolbar.h | 12 +- src/cookies/cookiejar.cpp | 2 +- src/cookies/cookiemanager.ui | 2 +- src/data/icons.qrc | 26 +- src/data/icons/menu/dot.png | Bin 0 -> 516 bytes src/data/icons/other/background.png | Bin 0 -> 546 bytes src/data/icons/other/bighistory.png | Bin 0 -> 3231 bytes src/data/icons/other/semi-transparent.png | Bin 0 -> 91 bytes src/data/icons/preferences/appereance.png | Bin 0 -> 1633 bytes src/data/icons/preferences/style-default.png | Bin 0 -> 868 bytes .../desktopnotification.cpp | 1 - .../desktopnotification.ui | 16 - .../desktopnotificationsfactory.cpp | 2 +- src/downloads/downloaditem.ui | 13 +- src/downloads/downloadmanager.cpp | 4 +- src/downloads/downloadmanager.ui | 3 - src/history/historymanager.ui | 7 +- src/history/historymodel.cpp | 2 +- src/navigation/locationbar.cpp | 66 +- src/navigation/locationbar.h | 7 +- src/navigation/locationbarsettings.cpp | 2 +- src/navigation/navigationbar.cpp | 191 ++++ src/navigation/navigationbar.h | 61 ++ src/navigation/reloadstopbutton.cpp | 48 + src/navigation/reloadstopbutton.h | 30 + src/navigation/websearchbar.cpp | 15 +- src/navigation/websearchbar.h | 4 + src/network/networkmanager.cpp | 8 +- src/network/networkproxyfactory.cpp | 2 +- src/other/aboutdialog.ui | 6 - src/other/browsinglibrary.cpp | 7 +- src/other/browsinglibrary.ui | 12 - src/other/clearprivatedata.ui | 14 +- src/other/sourceviewer.cpp | 2 +- src/other/sourceviewersearch.cpp | 24 +- src/plugins/clicktoflash.cpp | 7 +- src/plugins/pluginproxy.cpp | 4 +- src/plugins/plugins.cpp | 8 +- src/preferences/pluginslist.cpp | 10 +- src/preferences/preferences.cpp | 71 +- src/preferences/preferences.h | 8 +- src/preferences/preferences.ui | 333 +++---- src/preferences/sslmanager.cpp | 4 +- src/preferences/thememanager.cpp | 108 +++ src/preferences/thememanager.h | 44 + src/preferences/thememanager.ui | 96 ++ src/rss/rssmanager.cpp | 2 +- src/rss/rssmanager.ui | 10 +- src/rss/rssnotification.cpp | 2 +- src/sidebar/bookmarkssidebar.ui | 2 +- src/sidebar/historysidebar.ui | 2 +- src/sidebar/sidebar.cpp | 41 +- src/sidebar/sidebar.h | 11 +- src/tools/animatedwidget.cpp | 24 +- src/tools/animatedwidget.h | 7 +- src/tools/buttonwithmenu.cpp | 2 +- src/tools/buttonwithmenu.h | 4 +- src/tools/clickablelabel.h | 4 + src/tools/docktitlebarwidget.ui | 9 +- src/tools/toolbutton.cpp | 78 ++ src/tools/toolbutton.h | 52 ++ src/webview/jsalert.ui | 20 +- src/webview/jsconfirm.ui | 20 +- src/webview/jsprompt.ui | 23 +- src/webview/searchtoolbar.cpp | 19 +- src/webview/tabbar.cpp | 4 +- src/webview/tabwidget.cpp | 61 +- src/webview/tabwidget.h | 5 +- src/webview/webview.cpp | 16 +- translations/cs_CZ.ts | 830 +++++++++--------- translations/sk_SK.ts | 830 +++++++++--------- 254 files changed, 4192 insertions(+), 1786 deletions(-) create mode 100644 bin/themes/chrome/images/blankbutton-a.png create mode 100644 bin/themes/chrome/images/blankbutton-h.png create mode 100644 bin/themes/chrome/images/flash.png create mode 100644 bin/themes/chrome/images/flashstart.png create mode 100644 bin/themes/chrome/images/gotoaddress.png create mode 100644 bin/themes/chrome/images/library-bg-left.png create mode 100644 bin/themes/chrome/images/library-bg-top-right.png create mode 100644 bin/themes/chrome/images/library-bg-top.png create mode 100644 bin/themes/chrome/images/library-search-bg.png create mode 100644 bin/themes/chrome/images/lineedit-bg.png create mode 100644 bin/themes/chrome/images/navigation-addtab.png create mode 100644 bin/themes/chrome/images/navigation-back.png create mode 100644 bin/themes/chrome/images/navigation-dropdown.png create mode 100644 bin/themes/chrome/images/navigation-forward.png create mode 100644 bin/themes/chrome/images/navigation-home.png create mode 100644 bin/themes/chrome/images/navigation-reload.png create mode 100644 bin/themes/chrome/images/navigation-stop.png create mode 100644 bin/themes/chrome/images/navigation-supermenu.png create mode 100644 bin/themes/chrome/images/rss.png create mode 100644 bin/themes/chrome/images/search-icon.png create mode 100644 bin/themes/chrome/images/searchbar-provider-bg.png create mode 100644 bin/themes/chrome/images/siteicon-bg.png create mode 100644 bin/themes/chrome/images/siteicon-secure-bg.png create mode 100644 bin/themes/chrome/images/star-a.png create mode 100644 bin/themes/chrome/images/star.png create mode 100644 bin/themes/chrome/images/tabs-bg.png create mode 100644 bin/themes/chrome/images/tabs-list-button.png create mode 100644 bin/themes/chrome/images/toolbar-bg.png create mode 100644 bin/themes/chrome/images/transp.png create mode 100644 bin/themes/chrome/linux.css create mode 100644 bin/themes/chrome/main.css create mode 100644 bin/themes/chrome/theme.info create mode 100644 bin/themes/chrome/theme.png create mode 100644 bin/themes/chrome/windows.css create mode 100644 bin/themes/default/images/arrow-down.gif create mode 100644 bin/themes/default/images/background.png create mode 100644 bin/themes/default/images/flash.png create mode 100644 bin/themes/default/images/flashstart.png create mode 100644 bin/themes/default/images/gotoaddress.png create mode 100644 bin/themes/default/images/library-bg-left.png create mode 100644 bin/themes/default/images/library-bg-top-right.png create mode 100644 bin/themes/default/images/library-bg-top.png create mode 100644 bin/themes/default/images/lineedit-bg.png create mode 100644 bin/themes/default/images/navigation-addtab.png create mode 100644 bin/themes/default/images/navigation-back.png create mode 100644 bin/themes/default/images/navigation-forward.png create mode 100644 bin/themes/default/images/navigation-home.png create mode 100644 bin/themes/default/images/navigation-reload.png create mode 100644 bin/themes/default/images/navigation-stop.png create mode 100644 bin/themes/default/images/navigation-supmenu.png create mode 100644 bin/themes/default/images/rss.png create mode 100644 bin/themes/default/images/search.png create mode 100644 bin/themes/default/images/siteicon-bg-secure.png create mode 100644 bin/themes/default/images/siteicon-bg.png create mode 100644 bin/themes/default/images/star.png create mode 100644 bin/themes/default/images/starg.png create mode 100644 bin/themes/default/images/tabs-list-button.png create mode 100644 bin/themes/default/images/transp.png create mode 100644 bin/themes/default/main.css create mode 100644 bin/themes/default/theme.info create mode 100644 bin/themes/default/theme.png create mode 100644 bin/themes/default2/images/flash.png create mode 100644 bin/themes/default2/images/flashstart.png create mode 100644 bin/themes/default2/images/gotoaddress.png create mode 100644 bin/themes/default2/images/library-bg-top-right.png create mode 100644 bin/themes/default2/images/library-bg-top.png create mode 100644 bin/themes/default2/images/library-search-bg.png create mode 100644 bin/themes/default2/images/navigation-dropdown.png create mode 100644 bin/themes/default2/images/rss.png create mode 100644 bin/themes/default2/images/search-icon.png create mode 100644 bin/themes/default2/images/star-a.png create mode 100644 bin/themes/default2/images/star.png create mode 100644 bin/themes/default2/images/tabs-list-button.png create mode 100644 bin/themes/default2/images/transp.png create mode 100644 bin/themes/default2/main.css create mode 100644 bin/themes/default2/theme.info create mode 100644 bin/themes/default2/theme.png create mode 100644 bin/themes/linux/images/flash.png create mode 100644 bin/themes/linux/images/flashstart.png create mode 100644 bin/themes/linux/images/gotoaddress.png create mode 100644 bin/themes/linux/images/library-bg-left.png create mode 100644 bin/themes/linux/images/library-bg-top-right.png create mode 100644 bin/themes/linux/images/library-bg-top.png create mode 100644 bin/themes/linux/images/library-search-bg.png create mode 100644 bin/themes/linux/images/navigation-dropdown.png create mode 100644 bin/themes/linux/images/rss.png create mode 100644 bin/themes/linux/images/search-icon.png create mode 100644 bin/themes/linux/images/star-a.png create mode 100644 bin/themes/linux/images/star.png create mode 100644 bin/themes/linux/images/tabs-list-button.png create mode 100644 bin/themes/linux/images/transp.png create mode 100644 bin/themes/linux/main.css create mode 100644 bin/themes/linux/theme.info create mode 100644 bin/themes/linux/theme.png create mode 100644 bin/themes/mac/images/feed-icon.png create mode 100644 bin/themes/mac/images/flash.png create mode 100644 bin/themes/mac/images/flashstart.png create mode 100644 bin/themes/mac/images/gotoaddress.png create mode 100644 bin/themes/mac/images/library-bg-left.png create mode 100644 bin/themes/mac/images/library-bg-top-right.png create mode 100644 bin/themes/mac/images/library-bg-top.png create mode 100644 bin/themes/mac/images/library-search-bg.png create mode 100644 bin/themes/mac/images/lineedit-bg.png create mode 100644 bin/themes/mac/images/navigation-addtab.png create mode 100644 bin/themes/mac/images/navigation-back.png create mode 100644 bin/themes/mac/images/navigation-dropdown.png create mode 100644 bin/themes/mac/images/navigation-forward.png create mode 100644 bin/themes/mac/images/navigation-home.png create mode 100644 bin/themes/mac/images/navigation-reload.png create mode 100644 bin/themes/mac/images/navigation-stop.png create mode 100644 bin/themes/mac/images/navigation-supermenu.png create mode 100644 bin/themes/mac/images/search-icon.png create mode 100644 bin/themes/mac/images/searchbar-provider-bg.png create mode 100644 bin/themes/mac/images/siteicon-bg.png create mode 100644 bin/themes/mac/images/siteicon-secure-bg.png create mode 100644 bin/themes/mac/images/splitter.png create mode 100644 bin/themes/mac/images/star-a.png create mode 100644 bin/themes/mac/images/star.png create mode 100644 bin/themes/mac/images/tabs-bg.png create mode 100644 bin/themes/mac/images/tabs-list-button.png create mode 100644 bin/themes/mac/images/toolbar-bg.png create mode 100644 bin/themes/mac/images/tools-a.png create mode 100644 bin/themes/mac/images/tools-h.png create mode 100644 bin/themes/mac/images/tools.png create mode 100644 bin/themes/mac/images/transp.png create mode 100644 bin/themes/mac/linux.css create mode 100644 bin/themes/mac/main.css create mode 100644 bin/themes/mac/theme.info create mode 100644 bin/themes/mac/theme.png create mode 100644 bin/themes/mac/windows.css create mode 100644 bin/themes/windows/images/flash.png create mode 100644 bin/themes/windows/images/flashstart.png create mode 100644 bin/themes/windows/images/gotoaddress.png create mode 100644 bin/themes/windows/images/library-bg-left.png create mode 100644 bin/themes/windows/images/library-bg-top-right.png create mode 100644 bin/themes/windows/images/library-bg-top.png create mode 100644 bin/themes/windows/images/library-search-bg.png create mode 100644 bin/themes/windows/images/lineedit-bg.png create mode 100644 bin/themes/windows/images/navigation-addtab.png create mode 100644 bin/themes/windows/images/navigation-back.png create mode 100644 bin/themes/windows/images/navigation-dropdown.png create mode 100644 bin/themes/windows/images/navigation-forward.png create mode 100644 bin/themes/windows/images/navigation-home.png create mode 100644 bin/themes/windows/images/navigation-reload.png create mode 100644 bin/themes/windows/images/navigation-stop.png create mode 100644 bin/themes/windows/images/navigation-supermenu.png create mode 100644 bin/themes/windows/images/rss.png create mode 100644 bin/themes/windows/images/search-icon.png create mode 100644 bin/themes/windows/images/searchbar-provider-bg.png create mode 100644 bin/themes/windows/images/siteicon-bg.png create mode 100644 bin/themes/windows/images/siteicon-secure-bg.png create mode 100644 bin/themes/windows/images/star-a.png create mode 100644 bin/themes/windows/images/star.png create mode 100644 bin/themes/windows/images/tabs-bg.png create mode 100644 bin/themes/windows/images/tabs-list-button.png create mode 100644 bin/themes/windows/images/toolbar-bg.png create mode 100644 bin/themes/windows/images/transp.png create mode 100644 bin/themes/windows/linux.css create mode 100644 bin/themes/windows/main.css create mode 100644 bin/themes/windows/theme.info create mode 100644 bin/themes/windows/theme.png create mode 100644 bin/themes/windows/windows.css create mode 100644 src/data/icons/menu/dot.png create mode 100644 src/data/icons/other/background.png create mode 100644 src/data/icons/other/bighistory.png create mode 100644 src/data/icons/other/semi-transparent.png create mode 100644 src/data/icons/preferences/appereance.png create mode 100644 src/data/icons/preferences/style-default.png create mode 100644 src/navigation/navigationbar.cpp create mode 100644 src/navigation/navigationbar.h create mode 100644 src/navigation/reloadstopbutton.cpp create mode 100644 src/navigation/reloadstopbutton.h create mode 100644 src/preferences/thememanager.cpp create mode 100644 src/preferences/thememanager.h create mode 100644 src/preferences/thememanager.ui create mode 100644 src/tools/toolbutton.cpp create mode 100644 src/tools/toolbutton.h diff --git a/.gitignore b/.gitignore index 190c27892..8698d7ecb 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ license_template Makefile* TestPlugin-build search_* +src-* diff --git a/README b/README index b8ab36e62..bba20d1dc 100644 --- a/README +++ b/README @@ -1,7 +1,7 @@ ################################# ## QUPZILLA - WEB BROWSER ## ################################# -Version: 1.0.0-b3 +Version: 1.0.0-b4 QupZilla is new and very fast open source browser based on WebKit core http://www.webkit.org Written in Qt Framework http://qt.nokia.com diff --git a/bin/data/default/profiles/default/browsedata.db b/bin/data/default/profiles/default/browsedata.db index a720bb2c27584c093a643b4730473dc9be75f2a1..cb6a44b4970326daf29086ad59463210c06e4369 100644 GIT binary patch delta 522 zcmZpuXqdq`L0a$^0|SFF5JLe|-b5W^#$Ou~mS~G{GE^`y@i5J1)?{vAJj|HQD9Lb= zp<-fVT)jUZo4BGhV_{}qN@_($W^qY=QDtaR4wNPA9OUX4;;Inp=NTC4s^ID8;u@iV zP^IAS2jgj!7Ud{720Lr|@v@1lN;7678yJ#Vl9LM6CImGSVpcs=6s!W-xDt>Suz>+Q zKm+BW1}5d_XXhpsWfue82xkkT7zq~!Dgl`Y=fj;C#?2^z{o%3#vd`^fHt6lB@KYa7!_AZDy4D&kg|9Vxy=4 delta 58 zcmZpe!PrnSL0a%T0|Ns;5JLe|)_G9G4N;$fQ2tjXNKcz9#uM#jyD Hb#3_ojEfG> diff --git a/bin/locale/cs_CZ.qm b/bin/locale/cs_CZ.qm index d1d49c7829f128168ca57ba0ba7f9fede334d261..cce5bc1919285fca84f51149d85011871f0d21b3 100644 GIT binary patch delta 6099 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%0D46?ey-?g44!$eZ z3&l@7i7sadrS9c;bv`B>OT|v}#|sr19pT|np)wZ>CfEs83uoduTevXd8|wd_aA}zp zgheGh2tW?~TrbqW4noe<2ya_q;XmAk_pT{;1rHS7M_HqavXzpk82mGL=17A-4G@%0W%% zb0tc*)M%oYUz8KR)?=h{RR(p!4j1fGhWv)yxcyE!V+t5<8!uwJ9U@v(i>U9^R+-Q< z8?RuKmCLieh)(Vk@s_tT)zJst@DC9iJe2EV!Ni9l%8ke1sK+X0mNSH9)Ei~a3vZ&r zLS^1%Vw%kk(dKo9#)N-It{PkXH}khM;wn; zdG9!c*xf8t`G+3F_9eeQdzEwTc3~idPFsU z^a0d;lq%8V6q0MaYEcXvJO4%rK(~XJTkf)HBE)vaEAKsnx1w_P>` zZ&U--T{{-xrV-UPLq z`-<4mPCb1Mj)&}2&zYN!rZr#v`+E%rm$B;PrUAtDKkCfMcQIL+s@pdf3Tt89c?eZNz$$4nTwZr+j_cbA-uOnpVG}AIn z(Y7-*GkPKfqxHwcFAqFLe0x%(UpN<(xoMX4^@qnVH7Wbgp#C3e*0+P9MTa$ctzqEo zHBDhP7WlANb1DSMbY!FE<|a5E{+H(MoeyZoZ8hIsBRM;)6>+PHh2thHL$->d~}Jw3GWO&=rl^pc}(b{|_6r5zqQ! z8r`IgyN0s)>5Yi({6uWOMns!IBIdQ%rv44#S#e#vCrt*1rfJKa2NIR`)Sk@V4<7g zie1`IZ4k5H=0-x73ytokN)rnWb)o%YYdv?tTuAf-n2FhPU4JSOYX>wq094R=HKz}U!(0^r^LXhWk_)7 zw20W4_-I2=s+B>JI!9|mel&+dNJp_0M{w(&g}STx1s8y=+u{Eh$Dq;|9}I^Hr)mk?(e8Z$j6*6?7lsj+aQmUA+v zF)$cSF<2!M&sfq7Nz?Zj3d7k~|E{3+*3Hz#S%&GtgX5>i{doR(jtL*uk9=@%96pvb z6?Xq;9V_8%yd)8fH+dLMUvYI7KL7Rf-?c4#rbN!P#Q*;}Xc<3K7iJk5ZQ11b4{Nd= zXC&74k?w{a2Q-Fr#kLZ`;Bug)q5o8s;k2=t z;bU>AAz*4-!;@l-VM56?!}6(iP3NsWo3aZGMgT)e_wU{W&)`{+5y5ehG0}$o$4w0P zN;??t+wsPR5|}xB(c17IqsCZMrj!{XE?XOx9nu)@R=i|?B$esKX2z;>VRB>c diff --git a/bin/locale/sk_SK.qm b/bin/locale/sk_SK.qm index 7ab89ff10bf188e80c3666c48339dedc80abe0be..e70173bd9ca402a9f85164c2fa706e753e9cbaac 100644 GIT binary patch delta 6081 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 VieGJ~z_4h`f49Nz`TnlszW}p5ZzKQ! delta 6314 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 EKU*ffIsgCw diff --git a/bin/themes/chrome/images/blankbutton-a.png b/bin/themes/chrome/images/blankbutton-a.png new file mode 100644 index 0000000000000000000000000000000000000000..3e68c544a67e2f0d1ea643c5d8a85e3f00a9e9c7 GIT binary patch literal 1190 zcmV;X1X=ruP)ld7b9>?cLA19X0un6hlu5(#U}?ceFaSPTW6bR{cIoo9)Z2%sJd zP`if*&Ho7Jz#9;;$7>e2yfks~!uhv9e1G}f+1Z(;@e|coIOhyN3%LQFojf91s*3KY zSgYOHY&0JHbZuqr+s{5PtrFfNZ9rt)ON=$}$Cux`bo%u4avVpD^N2-}NI{1MPmLfc z7E6m$6DJmDPEO2`9$Z;D{6>4gx}99D8EfD|9J9DkWP*T&2*9%+EHnkP(CJMBE2WsC zyChv_W=}1D^uaqjUw-xd?ZZR%k7W+g~W@eRNrZ|1kNXCC#hOdEGjBIyfYkN}4PM(m3tfdP3@G|FB2JpqoRo}N*PNfO=^{XPf|7F&}(Yb z^6u^!O=mtPHAf_PzNSnyi zkO9qv@~(F2%zW3NqzK(2-fQh|N!9J#-1yNnkTjb#8$190e6l{d$f<}UwLF~M#6g%k z3_$}KGEcetynxwuN~JvXYJAZ7?4|jIXKpdJxBkT3xlQKJYX1u`09^FdL|sF1Y~*4%~o4IRv66K-wrI zfvBkxHne1CcRuWw*B*Pu6M~T1P)nZJ-m#ze<9Q!X01=sQi;IhVZEX$q_xGXO?Q(WX zjn30_9xg2{X$%0tjDgz1!UEsCJvVZ@H`ZoiVl0Z9P4hw&3Ak6#EK``}8W|=-rv8d& zJMrP%>}FCLVLAbeN9M1zKe+nsg^gbiKkCQn3Z7y!=b3Zg|L~ia435DwxPqMK*H$M+ zFTeik^Y6X=?3IVljlV(O&azW%=Dg0-=yOj#(Vb4Q{rk1${oPwT-zk$TA@spR;Q2$KiU|3{E4`7K?KsctdJY z1IF->0$P`#GzVvh0kjoU8Ku3k&Oj<=b_}0!$VH>k;Jlb95qfO@Y6rv!Nke%somL!* zW@LIb$KV8XMzP>GEWwp9V;T2j$kn*00SC60f@Iu zA_nmQnWo~eC>ROvH#X_kS^vJ^BH)DOd?gX97hKsscyOG_2&P>`TT3>}J$ z-J(R65;${&V}WuN$pK&3g-~E=ci}y-dTF>p84oPp^ygLk4cjvjMG`IBQ5PbkeYgTi z1yLcZh4lt<@sD9Ox=m78nA%ZjjPU?ydmVZdg9%4+cR56J+P40z$edU^WV$C`X= zk>@!`^H4+p7LxGpxAJhc@9;{{cd+vk-;D$o(6fIatq$?$EfmAs7eA)OsKcc zmYyrEivKj?)n!siQE=(_r&Tz`kB*K|n#D97qDGz523fP#Umj50USY1e*LD|L)Q(`a zdm*sj37)~pv(y#<)(VQ7#%?`ly_wZ!F;ap8sJfE-I~%GJBUUuYJz? zHz&rDgPrZIjBu3&H?7l>@YK`K$X>5U-&Z41qY+8s1KjV|Dt#Jbnr3;LCRwM`Q9u5$ goD-(a)ZYRO0RL~Sl;|gTW&i*H07*qoM6N<$f)2=vvH$=8 literal 0 HcmV?d00001 diff --git a/bin/themes/chrome/images/flash.png b/bin/themes/chrome/images/flash.png new file mode 100644 index 0000000000000000000000000000000000000000..590c561f324da63cb61c6e4e5fd627fbfc8df57d GIT binary patch literal 3373 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 D*S&}( literal 0 HcmV?d00001 diff --git a/bin/themes/chrome/images/flashstart.png b/bin/themes/chrome/images/flashstart.png new file mode 100644 index 0000000000000000000000000000000000000000..c930ee7aecaf0d4134f5be49b7d24358cb0a2f65 GIT binary patch literal 3220 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 DD%$+o literal 0 HcmV?d00001 diff --git a/bin/themes/chrome/images/gotoaddress.png b/bin/themes/chrome/images/gotoaddress.png new file mode 100644 index 0000000000000000000000000000000000000000..fdefe966beb3bcd5d508880b1f643ab391f204de GIT binary patch literal 612 zcmV-q0-ODbP)kKw97^{dhbeo!VyQUic08pV?^Qcj5&dwS3RXaKy&SV+VI5^>9yl|1E2I4j0x-rPHr+bg&W&=M0Wl`=~UrJNW$ yHuvECF5SIG0X%+oWhqB~wJ`3(@Z5gG06ziWUAf#6pOiWP0000v>(tS5~Nx_}g8age(c!@6@aFM;eko-U3d z6}R4=HxxQ#z{BD&cOFA+#wBCt^Yd5yWUgQ4;Ug4fl@@w4{q(hGMZ4!Ov-G^=8Lr>0 z`oi@6y3&u9ZwnV@-_1Sw!YlXTKc`o(SKiw$Gx_fRQW?$UQ-;OrJN=$t|9tUlzw0QV fe+Yc7-ply?GP^m0+aEDtq%(NB`njxgN@xNA01&J} literal 0 HcmV?d00001 diff --git a/bin/themes/chrome/images/library-bg-top-right.png b/bin/themes/chrome/images/library-bg-top-right.png new file mode 100644 index 0000000000000000000000000000000000000000..821f12dc1344adb33184979ade3f77ade3352f5a GIT binary patch literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^>_9BZ!2~3W-Ym`sQjEnx?oJHr&dIz4a@dl*-CY>| zgW!U_%O?XxI14-?iy0WWg+Z8+Vb&Z8pdfpRr>`sfZFX56L+OVxN-99108bak5RLQ6 zAzO>m4>0tUW}i>!+GJDxU$Xnf|N8okUH=X%{o-G(Q6{`$b?SjcJu~5b^;P~`ZvD52 xaqH6G(DiTm6_%hwJnft+J09L#nml6>!y{(b)oLd*_W{jj@O1TaS?83{1OTjzMhXA` literal 0 HcmV?d00001 diff --git a/bin/themes/chrome/images/library-bg-top.png b/bin/themes/chrome/images/library-bg-top.png new file mode 100644 index 0000000000000000000000000000000000000000..ec16ad053fd279697bbc2a57d626f4bc66e07e71 GIT binary patch literal 327 zcmV-N0l5B&P)X0ssI2>{g`D00001b5ch_0Itp) z=>Px$0ZBwbR9M5^mdg#oFbqI#sjILA3osE|umKV)aAqG)2n15EiOsbjQ2j}qC^@Ez zQ^(IQ!OeCD!wuY@E{0`{|04?L)_!cU8Gn4hmH6l5VY=R5h0jSa$H1B}x~u?TqMYKh z5)=;?rP61`IhzPXAAyQmv87gI%F0_S4S~G6!4Cp+fRp61@!P_YmDhnP0zuzb)Sy-# zTYxO9Wa=yIy07NP&2;*4S$&tP9)WHLs-V>qNZsF8V6X)dm33erW-sl)@-HTcyRVuN zC^S2n`YO;CfdrzjuWH+(djc&lrs58)P2eamCKG`z?knArFk6HYs5g5q?Z7SwO!E_l Z8*c!~f9(FKbRhr$002ovPDHLkV1lo8iCq8y literal 0 HcmV?d00001 diff --git a/bin/themes/chrome/images/library-search-bg.png b/bin/themes/chrome/images/library-search-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..2f159b294ef23f0c8a24357425e48bbe395c384d GIT binary patch literal 569 zcmV-90>=G`P)Px#24YJ`L;wH)0002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXV* z3j_nDa_?XO00Fs4L_t(&-tCz`PQx%1#y|f_+z3^2+NCq6=pm3eM0ZZY3Ag|Y3uoxw zH8T@cmjVq$II$lCP1FSh5*4!heo~|;b|U5b{GR=6vE6QOt+g)z8Za>u01yBV;0(a4 z27vi|{uV-b_TGoD-c(A-@7llP)ZYCMj4@dVVY*x{r3Qe_W;3m->Iwjeh>{!1A^hr} zq?Ce)+L*L3#&nCt;toKe0iZ0)M`MfwaL?H+S}wCJs{ou!Ypo|D#hS#AQc4lgyWHPP zmL!R3Cd>0Y$j>Q6vZ)EM_fbj!LI}Z%q+_a(0L1=cBBu{d+1F$&N&Jk*V>g(}`8TQb zJDAFfq>+BbU@DVX#P&riOOaTl7DdrCO~W}jV!Ez_F@^?Hwbl}!$2UwW3ni{o)1WU+ zhmt16BexTSvMlq?IVAzqWmy)Se&fel`%Xkphb0Z08hNDl*_KUB1n)idC5`SMwr%SG zT(CURu6%tTsTu%gvst@Zt*-Zu;~0ApyWOt-Y2Ui8b*kczMk9Z$Z%-x@IOnWbuh%z+ z4SAjir4$`uB#nRC*BIkdHMMQqzuublLWrD*oDd@Ky6)iv=3}W`(THIG00000NkvXX Hu0mjf*&py@ literal 0 HcmV?d00001 diff --git a/bin/themes/chrome/images/lineedit-bg.png b/bin/themes/chrome/images/lineedit-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..23bc2386fa5acd77e6b113c645f47dcfbd93a6e0 GIT binary patch literal 457 zcmV;)0XF`LP)Px$gGod|R9M69n9EM%KoCXG?O+ne5g`H3hR2Hk|Bx(Ui8MkCqaZSn5E0TOj*Eq3 z>_K9U==g5@=&o`fm8%w4)7K0Ed2UQ+ul77&;{BT305d>z6l&TU`@wNNe;)4VPI8KMmUp#K*GeXwNXSj`7(2yH596O)}G91Xjdy?JhNhxeXsrg-->Du&U z)05xPlT9U?O8%Tmy1*fwgo~n9(2!Bo!o|IA(2#Mji%WWKjjry41RP!6ll0nh07q$G zqswtvfR|&A(!K!n`@t6`bZ#sb-j<6c>nz7|`xwD>C%kmB;gg$P-}|4#UQIbZJL}sR zNp+9Da^S0AN|*erGXcnnXwMNRF-g)XEOmo-(R;4nr&is!00000NkvXXu0mjfg)`OW literal 0 HcmV?d00001 diff --git a/bin/themes/chrome/images/navigation-addtab.png b/bin/themes/chrome/images/navigation-addtab.png new file mode 100644 index 0000000000000000000000000000000000000000..b7d6245806f528f6aaeee192695f00a8211caa3e GIT binary patch literal 3003 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 literal 0 HcmV?d00001 diff --git a/bin/themes/chrome/images/navigation-back.png b/bin/themes/chrome/images/navigation-back.png new file mode 100644 index 0000000000000000000000000000000000000000..c91611b4ac79fa46e7c0393138cfd8d697424a09 GIT binary patch literal 3325 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 Hu0mjf9FT}_ literal 0 HcmV?d00001 diff --git a/bin/themes/chrome/images/navigation-dropdown.png b/bin/themes/chrome/images/navigation-dropdown.png new file mode 100644 index 0000000000000000000000000000000000000000..0b9102fa8d134ebf27c4210049866cb211395b6c GIT binary patch literal 737 zcmV<70v`Q|P)Px%n@L1LR5;6RmAi5iK@dexkJezx)&m(8E@O&s!c`Oj@DC&;)COD6Hrd%? zK0haba=rf(wQ^7Ge*v9fTwMGml#8q>iT>tbW=(X9wS{1~iz;VRn_f~b!PTmAZvuGS z+5|Q#GeaRtwfKM;Wn7g$*{Vt@De=aA^#8KTD=CZoHA<9>wIVvL3@d`!nj(+CE2EL_ zNq@21RI+ikbrx?_l5kf67@VG*@a*XmjmKj;oep(fGn>tL{^F$#N8?pRSaWtpJN=x= z%#g(LY|fk4uQZuVm`@vuc6EDtAFBE^s#GdN%VVX^ql?(PjLqv0UIBU#a( z7M!M2PF;)nuO;Vaf7rP>#DVH)x`64Ted84`u5!Lu^yS*Mip^e^$*mF13&;2eAb5xX T-O`B+00000NkvXXu0mjfCIwS6 literal 0 HcmV?d00001 diff --git a/bin/themes/chrome/images/navigation-forward.png b/bin/themes/chrome/images/navigation-forward.png new file mode 100644 index 0000000000000000000000000000000000000000..6677d03b4a02a061126a2899b2f880856e4941b9 GIT binary patch literal 3210 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 YAFMmlI_{>Y{{R3007*qoM6N<$f`s`f=l}o! literal 0 HcmV?d00001 diff --git a/bin/themes/chrome/images/navigation-stop.png b/bin/themes/chrome/images/navigation-stop.png new file mode 100644 index 0000000000000000000000000000000000000000..ae301d39445d53118dfbc4f0be1b45f26511cf75 GIT binary patch literal 3855 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 RRL=ka002ovPDHLkV1nZrOvwNM literal 0 HcmV?d00001 diff --git a/bin/themes/chrome/images/navigation-supermenu.png b/bin/themes/chrome/images/navigation-supermenu.png new file mode 100644 index 0000000000000000000000000000000000000000..29dc5bafb21074212306b0782ec52d43dd07aa01 GIT binary patch literal 5259 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 Rm_Yyl002ovPDHLkV1naL?9>1N literal 0 HcmV?d00001 diff --git a/bin/themes/chrome/images/rss.png b/bin/themes/chrome/images/rss.png new file mode 100644 index 0000000000000000000000000000000000000000..d1705aa348ddda5b251a7d744658d519776c72d6 GIT binary patch literal 735 zcmV<50wDc~P)IU`$e#o_VA-9m(PZZFk*oXyxlWud<$JOkN$?Ky zy0`pq6%@i|0Q-Pa79W3@<@=N33J#I{VUYarhUD1fUBqfpjoc)#v57b_9j1yUCf4x% zB|Eu0hvZ- zJ5wZ$VU#*d%9skme-p%)F`@e+-+zszrjr~UA~_PSMC|$cCPti|He!xNu7efiI$B=B z)7;HSysZf!*Es#5CN(=j%$-WKHK7i%rEmo|)>^`` zQ2_)KkeCd|cueSt@b9|Bwk450@Ohe+m-67ACn0)8R(e2L3Ii983UiPTAkf3&w+vwY z6o>=)sx$KKqcV}>Np@p@8f1$cr&;X2PZcFMzI?z?51v`>ghk-B>T{7nKtO-(ka6d)E%wIZgT{zyP$8Aj}n= RwRZpj002ovPDHLkV1kcRS4IE; literal 0 HcmV?d00001 diff --git a/bin/themes/chrome/images/search-icon.png b/bin/themes/chrome/images/search-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b0b6570e2e688667dea4f7aa24b35a8bc001584a GIT binary patch literal 3093 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 literal 0 HcmV?d00001 diff --git a/bin/themes/chrome/images/searchbar-provider-bg.png b/bin/themes/chrome/images/searchbar-provider-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..028351ab9ad9aca85bbbd250afca528c8068a6ec GIT binary patch literal 1008 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 L)z4*}Q$iB}OQVnB literal 0 HcmV?d00001 diff --git a/bin/themes/chrome/images/star.png b/bin/themes/chrome/images/star.png new file mode 100644 index 0000000000000000000000000000000000000000..44687724997a89d4dbfccbd7fa5e3b9a0c427f61 GIT binary patch literal 348 zcmeAS@N?(olHy`uVBq!ia0vp^{2k7RCwBqQacs`F$f&?p8QjZVx#)gk*HsntpX6q!&Ao`u6A6@^|n zTeVF{@dvd#yU<}YT>DI)uOgN~x=tD>GiMuJF^z;ONHWM0j@c9+mL#M_8E|;9CgCvY z4Px-Y)M2xRA}Dqncr_CR~5&<_s-a3k3I2^*iP0?vq`o(JOc4_2ZOqcnqKzm4Ia4jQCt*nsy;BYhWCK1-cR z8PSP?ah=JKlkj&doq~-V}myC@7+goArrXS=n4cS9Z08xs9^v@W0IyWj$ZltYH@7J z59Ud&Rz-3BG*rOKsDlWi(}rQhpy{LO={>%9;pNHBY0x#}&8$_ch$R-hRgor#p@Rs` zqZ)FH*@3rS8WScy`^;woBTptwpH5Hqc6X32lmg2EK=0TsDA_^W^c%`&EaWp*$O*!4 z{MOBXArdnYHR2NoTHm?ov=KKGaHR{$U1%By!-H)gu2OJaiKD|qR4WxkVkR>AVyK>O zT4^+oYq)jmCZu#g%I&UH{{18H%Ei5ehMp*D07kgzgHSQ!K^+T-hN zV7XU^hR(w@$jloYJZ6O6mGE@1ib;dT9|Ago_ z{{AP-acPcA|KGSI>^6>Td$8>mWXA@Pf>QLMr&TJONAASQa9nCP>!|G9#OgyUNG6w& zFcTjcm;UnCzlGzH6b=q{Zen9?9fd+}WcE_v<}zu959&xq!tRI(yV@8owd#kk5=j&a zi(P%?VG#pvl@Cy>9r^urpEH>>)=EQI)YaYD-GP*KK!f>et!!VHOoy~?LQ-j_4?O*=D=lJR8 zzSYGc8bLfE90=irYKUGLn!c?$VVVsv7SogQ{} zc41|5({V`(0oiFH9*=ow1E5kn#HCBW@+rOY)7QEVzKpM&J2T*SqP}iV%G+g}SUWu( zm)fm5%y=BJm@znUcK^S9>HGdPpMMEg{_sb<^0U`RF+x$lF?QRAq8V_had?1FJiHdT z6i$-Otu1VBZS~)?>C^}=-MxDcsZ4%4F1e0?D{aK%u?gG3^nL8ppFA~jX(a&n_xJG7 z$IeX0rHOmJNXXBxn~tdOF<^5s{*=W~4StKaV5E-9tpx-O)2AUZZU=dwkaAIB2EA)kn2LZ4mz#IY`D~_AHquKz_|v- zfO5HvYw!5ee69cV3?6@Eedw_6jc}zTq$}V!9SC7#IlUN;ON@Ex;hY1E^-rFce}2)Q z<`*vDdbxpfFI*V8b5X9Ba#u}Njf4T%+}!NH7fU4o%8On) z=(HP1WeVZA)Na+WkjaB<8W?ATyVxm^3xWu^z zEfO6|IdxO~o#4wY@_vd4q+IXrRM==Yj*wW$%!W(4?r|C^7vxGPrLerbgeRVSA~5aC z%S&(_(Qkk&9XO%`VYeXc78aLQ!f~m2T!UdI;YtZd2q;&9agO|A7Wu{O)PC>S?e3=I zcJ*yEk84Pzva{h55kWcvg16wh9x}~N>C|^D>^7tnNT#y0;}Vg=aqR%@X8j}MQZltT z$E7(g{deNhT;?*Dxy)rQbD7Ir<}#PL%w?kd8?*1m9uB#*9{>OV07*qoM6N<$f@hOO A=Kufz literal 0 HcmV?d00001 diff --git a/bin/themes/chrome/images/toolbar-bg.png b/bin/themes/chrome/images/toolbar-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..7d707527589684fea86951ffd9cf09921f2d6fab GIT binary patch literal 254 zcmeAS@N?(olHy`uVBq!ia0vp^EI=H^!2~1)#1qy5DaPU;cPEB*=VV?2Ic!PZ?k)`f zL2$v|<&%LToCO|{#S9GG!XV7ZFl&wkP>{XE)7O>#HitZ~DbtAqRlPu=I!_nJ5R21C zgB|%A3^=lR|JSb(_h<80Gf36^{2-6_f~dxwe&O%81>%^Vy>mJu6DoCZ(tlEopOD;5NZNR?{m|Rx|(r literal 0 HcmV?d00001 diff --git a/bin/themes/chrome/images/transp.png b/bin/themes/chrome/images/transp.png new file mode 100644 index 0000000000000000000000000000000000000000..c55289094276d6f759ba424d90b3b3b431478b42 GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k92}K#X;^)4C~IxyaaOClDyqr82*9a zYl$mOKoQOYkH}&M2Eh#=%y>fmYY0$~y~NYkmHj3MI|rMJ0Y}>fpb)R8i(?4K_2dK~ Y0CHIw7~?)`SpiuLp00i_>zopr0APx#32;bRa{vGf6951U69E94oEQKA1!YM@K~z}7<(El}6jd0#s@GX@83$a# z;4o%z2gSh+)PoBU6-`VOj~-0mVq#28j4={}7r}$ZD1xXMjTzv8xB)_NKpbI$3W^v& z5s*O!rq`-^pNHz6E_xY=8RNm%d8tZQ)%*Xy?f<<8|M5_x{HN+X|EEKWlhCyaK#`hl z6X{4`B%&CJ$e6+Fw2MyXaQCG-y`~T*Q3h|EA78YjuV??kp~XYPg>MUc!-a46 z9~@e|Xh~lWjq~G`#w${@okdIfdXAmQ_U2tJIaf=rpd~woGgr`ZWH8&iXh~lWso4&I zF+w5Ik$8A+*WAXGGe-cC8a}E>4y8i#9Fj(W#*{N>-kh$vL^={-0tzD@ZEcCoEP>Yr zE}~R|mWZILiB*o4=GaV(coe`25wIM`>aJ(GQfJ_m|%pPUlG`qI7kPr*mRE5!(WRY(CHG_1k&qz8O`d0K146 zB0zn=mt1Tp*uLv$-dgnqM+Y;QmW^RqC=BG&0oqzqJpMorT^;Q_^U}LCB$HSscz(T% zID>$$qM^bh6!fm&#`2H1U|Lb4sTK??ifNd^HzFL*XcjNuM03LA=${#`Ilm316ey_* zLkTZTK#7#yq(Tf7@cmDRSoYy2>{tWwWD~beo5XEXFQX~xaPoAHO*?*N%g#f%uEkK+ z$4Rzg*)dd6|3oTtL95CfsIS#Z@$ze{iP#D3SOW_my@jdW?dalyG4-Ojr{(+wv9LnItTez#Ild0Y9cp7x^-CVA~Q!lLGj}v*E zcoT+zQVP%a011dna1G;)ngb!O7g63>FAo|RHRq}$s(5W<9z_tvc5fi`Yd(ogpbI+`4%(-(KhM_97K=5@a zx^gZd2=`729FIuH85~9io=%Oi8ukNHV>2NZa z=fh9FqkGbY%(%WYDDM!7PdDyh`9~YD>^QM_3d@ANM~(Q`5+Vs+laO9&3Gzt`JiFk2 z7CiqRW+cXQudL;+o;}=s`&G0yH!%3uDb}p-W8H@DP-Ya&7!TfkBL-zJRyDXb-TXy8y znwtw1EUL5$2qAb9QkRgcWfX9LY__l)KjVf8Xe5_8a&&0pgz>G{YN_45gK{g2jS6j( zO4U>1B%|z>jvP6;5y@o$%n?m9TXdqKJ#)q6_GZV4bV?loDT#{~5H0A^97S}(b8s-d z=IxbRR&3k)`F`93o;gCxJ>Y-cf9kkpHys?`-aKeUOvj2CZNk|6(wTh!p~Hjkzx~eU z6-$@Cxr6lQnc63#_^nZ_i&7{jff2RG?qrlJAo(=j;nQR` aIQ|CRWr1E{omfZ!00000r5dH3{1Q|{VTg4%$JMkyV)Je$Y2cs DOF#{9 literal 0 HcmV?d00001 diff --git a/bin/themes/default/images/background.png b/bin/themes/default/images/background.png new file mode 100644 index 0000000000000000000000000000000000000000..5678d984aab12a79e0ecf7d7cb88eacc501ce699 GIT binary patch literal 16841 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

    yNN9p_f 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 D*S&}( literal 0 HcmV?d00001 diff --git a/bin/themes/default/images/flashstart.png b/bin/themes/default/images/flashstart.png new file mode 100644 index 0000000000000000000000000000000000000000..c930ee7aecaf0d4134f5be49b7d24358cb0a2f65 GIT binary patch literal 3220 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 DD%$+o literal 0 HcmV?d00001 diff --git a/bin/themes/default/images/gotoaddress.png b/bin/themes/default/images/gotoaddress.png new file mode 100644 index 0000000000000000000000000000000000000000..fdefe966beb3bcd5d508880b1f643ab391f204de GIT binary patch literal 612 zcmV-q0-ODbP)kKw97^{dhbeo!VyQUic08pV?^Qcj5&dwS3RXaKy&SV+VI5^>9yl|1E2I4j0x-rPHr+bg&W&=M0Wl`=~UrJNW$ yHuvECF5SIG0X%+oWhqB~wJ`3(@Z5gG06ziWUAf#6pOiWP0000v>(tS5~Nx_}g8age(c!@6@aFM;eko-U3d z6}R4=HxxQ#z{BD&cOFA+#wBCt^Yd5yWUgQ4;Ug4fl@@w4{q(hGMZ4!Ov-G^=8Lr>0 z`oi@6y3&u9ZwnV@-_1Sw!YlXTKc`o(SKiw$Gx_fRQW?$UQ-;OrJN=$t|9tUlzw0QV fe+Yc7-ply?GP^m0+aEDtq%(NB`njxgN@xNA01&J} literal 0 HcmV?d00001 diff --git a/bin/themes/default/images/library-bg-top-right.png b/bin/themes/default/images/library-bg-top-right.png new file mode 100644 index 0000000000000000000000000000000000000000..821f12dc1344adb33184979ade3f77ade3352f5a GIT binary patch literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^>_9BZ!2~3W-Ym`sQjEnx?oJHr&dIz4a@dl*-CY>| zgW!U_%O?XxI14-?iy0WWg+Z8+Vb&Z8pdfpRr>`sfZFX56L+OVxN-99108bak5RLQ6 zAzO>m4>0tUW}i>!+GJDxU$Xnf|N8okUH=X%{o-G(Q6{`$b?SjcJu~5b^;P~`ZvD52 xaqH6G(DiTm6_%hwJnft+J09L#nml6>!y{(b)oLd*_W{jj@O1TaS?83{1OTjzMhXA` literal 0 HcmV?d00001 diff --git a/bin/themes/default/images/library-bg-top.png b/bin/themes/default/images/library-bg-top.png new file mode 100644 index 0000000000000000000000000000000000000000..ec16ad053fd279697bbc2a57d626f4bc66e07e71 GIT binary patch literal 327 zcmV-N0l5B&P)X0ssI2>{g`D00001b5ch_0Itp) z=>Px$0ZBwbR9M5^mdg#oFbqI#sjILA3osE|umKV)aAqG)2n15EiOsbjQ2j}qC^@Ez zQ^(IQ!OeCD!wuY@E{0`{|04?L)_!cU8Gn4hmH6l5VY=R5h0jSa$H1B}x~u?TqMYKh z5)=;?rP61`IhzPXAAyQmv87gI%F0_S4S~G6!4Cp+fRp61@!P_YmDhnP0zuzb)Sy-# zTYxO9Wa=yIy07NP&2;*4S$&tP9)WHLs-V>qNZsF8V6X)dm33erW-sl)@-HTcyRVuN zC^S2n`YO;CfdrzjuWH+(djc&lrs58)P2eamCKG`z?knArFk6HYs5g5q?Z7SwO!E_l Z8*c!~f9(FKbRhr$002ovPDHLkV1lo8iCq8y literal 0 HcmV?d00001 diff --git a/bin/themes/default/images/lineedit-bg.png b/bin/themes/default/images/lineedit-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..2f159b294ef23f0c8a24357425e48bbe395c384d GIT binary patch literal 569 zcmV-90>=G`P)Px#24YJ`L;wH)0002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXV* z3j_nDa_?XO00Fs4L_t(&-tCz`PQx%1#y|f_+z3^2+NCq6=pm3eM0ZZY3Ag|Y3uoxw zH8T@cmjVq$II$lCP1FSh5*4!heo~|;b|U5b{GR=6vE6QOt+g)z8Za>u01yBV;0(a4 z27vi|{uV-b_TGoD-c(A-@7llP)ZYCMj4@dVVY*x{r3Qe_W;3m->Iwjeh>{!1A^hr} zq?Ce)+L*L3#&nCt;toKe0iZ0)M`MfwaL?H+S}wCJs{ou!Ypo|D#hS#AQc4lgyWHPP zmL!R3Cd>0Y$j>Q6vZ)EM_fbj!LI}Z%q+_a(0L1=cBBu{d+1F$&N&Jk*V>g(}`8TQb zJDAFfq>+BbU@DVX#P&riOOaTl7DdrCO~W}jV!Ez_F@^?Hwbl}!$2UwW3ni{o)1WU+ zhmt16BexTSvMlq?IVAzqWmy)Se&fel`%Xkphb0Z08hNDl*_KUB1n)idC5`SMwr%SG zT(CURu6%tTsTu%gvst@Zt*-Zu;~0ApyWOt-Y2Ui8b*kczMk9Z$Z%-x@IOnWbuh%z+ z4SAjir4$`uB#nRC*BIkdHMMQqzuublLWrD*oDd@Ky6)iv=3}W`(THIG00000NkvXX Hu0mjf*&py@ literal 0 HcmV?d00001 diff --git a/bin/themes/default/images/navigation-addtab.png b/bin/themes/default/images/navigation-addtab.png new file mode 100644 index 0000000000000000000000000000000000000000..61d25953c2f84175b9787cfa53e2edc08601d8d7 GIT binary patch literal 331 zcmV-R0kr;!P)>QTFvN&9 z;P>y}3_pMW#1O-3K*1CjYyrmb^VfG&1AhHt0IEd~@#!qTe*VhL4{yaV`OK{iDE!QT zdJHuaS5{}TfJ{DoWf=n@fK3fZFUSQ9-+z8*AP0c-LJjyvz5zgIOh0w<0!AR}8mgi2 zFQ31K&5Y@c*pjkej>3O!BV`n^tLN@AY?|_bk+^gK3><9HNSlO2lcWsHIMZ*Oe1MUi dv8e?JFaU&-kNmLq2fY9Q002ovPDHLkV1lw^iHiUL literal 0 HcmV?d00001 diff --git a/bin/themes/default/images/navigation-back.png b/bin/themes/default/images/navigation-back.png new file mode 100644 index 0000000000000000000000000000000000000000..d61837ffb36c23fdaa63e4f2dcf87cd67aabbd1e GIT binary patch literal 600 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 KMNUMnLSTYxEruBY literal 0 HcmV?d00001 diff --git a/bin/themes/default/images/navigation-supmenu.png b/bin/themes/default/images/navigation-supmenu.png new file mode 100644 index 0000000000000000000000000000000000000000..7ab68d53b638d20cf46037f88d18013e2cd8d6f4 GIT binary patch literal 5236 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 RwRZpj002ovPDHLkV1kcRS4IE; literal 0 HcmV?d00001 diff --git a/bin/themes/default/images/search.png b/bin/themes/default/images/search.png new file mode 100644 index 0000000000000000000000000000000000000000..5365b6c6f63cce969a75fb04260d565411ade43e GIT binary patch literal 660 zcmV;F0&D$=P)co1SQ8+CSU@Jhz$TzG!;JaC&fW#I*-ev| zA;OrC;qm+549Mz`0YCsTb6aNl|NHk}28bE107D%Vt$uoZ3=KYF3_NU14BYHY40fvA z3?IJzWjOQT8v{rk621TsKrBFKfKr$R%*3T9K7cVYSePgaG*F!3@8ACnvktvOmO2Iy zK%hX}3B+G;1QHlW&3?$R?eZsvGIucs4RJP@I7rVX1^@s64>Dn$00004XF*Lt006JZ zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU#cS%G+RCwC# z+Ci?HFc1Jx&wLhDm)-wU^bVD}>3!Qf{8RJ_T~ul{Q+w<&V`CFTex(Gk0vG~Ol;^Pr z6JTa{m17mWeu4}2Do;=*t$hCR`rB{*_+_X+1_+B^A@~T)pn4lW5ZXA~7cgZN2Rvrtn1IuLE!(Fh{Le*%!396A< zfI=G-JD_Ml;W0tCw}1_>oM@3eEV7cuHOKv#NqNV*;%WQ~8&E8}TLG=2asdkM2t5ku z7%cnWqKMN7%LS6PhI-#C?C?_P!r4^~z0xct}hM95Vgn>dCGy|u%wdaLQ zI2MMg*(OePGwYORnaqro-8$Yfrg92tdrNDwYXm(^(naJtpu7)q9Gu>ig{}tt7Ep=# zG|^f_TMsk?_Ccuu%7fW2ti!ShX(G0O^#_sAv;%VHZrh~w=YVZ?pLULyYsh(C_#V(2 zm2XEZWmw3wS>%}_ErE^R^TOT&ZAYewTHX(O`#!aRg?IxDlu~re)08=8Wi~8zzmYVq z0m}(*(0=@QusYni1t_n8nmSX7yAgCfQhTt@*IOn@Y{EmEd%dqXy9QrJBAbx7D6lv>YKThCPWTmwqQEz59( z@_M4Q3Jde~d91W4Q$4mGA6C2DW`r70?t#)0RED|@U9P=7wWuHc^6gz<^VqtCl}E99 z5!4CP^G#0V@sqicv6i4z{p*3M@sX1^@s64>Dn$00004XF*Lt006JZ zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!AxT6*RCwC# znoUl_Fc5{~B$Xl%=|OrR?!^KrY0SLP7Y&m!3#2+tJ0p$kU@OpkdGq6va?VZI zV_6%IAfSfrz#sJ$xZk( z;Frs#nWkxW%;DoW&Mxced_KSaf_gk2JAwKk-U!$kBIX22xEkyeSiTpa8YV`7#C#Zr zc`oDIN~r>H6qug?3I|ZQRV<<0TwA4vV(UXC z8|`|{t$wBVNxHd3PPLmE&qJwoPr&SHlD(#{pvtDKH?qO?O6q{RE!68-?+Wq?DmQz5 zs0THyp4r2Eb%?)wOXDh47BUs8p|ZjCa%&tD-nR0!MUoD+7AW|6P$$_q*(6>1mL{xj zu~Z7dYILC{okw{idl;d6q)=)dr7{HT{7ID(s(9;Fzc1qN_N}ldO`+0l)N0!q{a+7P pKQ1pssO|AAO4)!Kwg>wbU;wcHr1CC5RGR<*002ovPDHLkV1i4%DntMP literal 0 HcmV?d00001 diff --git a/bin/themes/default/images/star.png b/bin/themes/default/images/star.png new file mode 100644 index 0000000000000000000000000000000000000000..c11a6144517c32688f4ec2c5b93410ac380d7072 GIT binary patch literal 3058 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 ARR910 literal 0 HcmV?d00001 diff --git a/bin/themes/default/images/starg.png b/bin/themes/default/images/starg.png new file mode 100644 index 0000000000000000000000000000000000000000..9f7a8db52ef02333a5ea6b8484027c6b39fec492 GIT binary patch literal 3065 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 Hu0mjfEKf4F%}28J29*~C-V}>VN3FMcVYMs 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 literal 0 HcmV?d00001 diff --git a/bin/themes/default2/images/flash.png b/bin/themes/default2/images/flash.png new file mode 100644 index 0000000000000000000000000000000000000000..590c561f324da63cb61c6e4e5fd627fbfc8df57d GIT binary patch literal 3373 zcmV+|4bt+7P)k;U?LJ2=7Ndu~Hg4RQ&O;5)HJ!&YCa*T)YGrDX(cy3$zw@TOMJVAsT3fEOw&{piA2;WzsuYL802(1 z$>nmX5hTBZ_-e!a{QTzCt5=&}83Sw9tnu=5d-%2r&kNviIIJiX3Ms;UdU`sgrKPDc zBO^n-9}EVmyStludV18Dl9EDhw_6eJLBf!wkuyBb=5<>ingN!?6brluQiYTSFaQB` zVPPQ+8#atajvPsunVJ10E0<`+=kw9!%a`fKjT_Y7-mbudVPOc`vEI80CRp>QAD98Q z$LIL}H#4P)!~q-<#aLNcNs}f`Qj!J;P-<$bU7B(5U|#0H2xd;7K24V{T~gpNk7&hu zzlZ51-gjHSGz07vp6B6h{J$&=_51yPCG9Cwrci!B+_v@G`&b31OtS zw^wNpk_==kyDN-J4eS<3vtgv`g+3+(mYxo-wmu3QPTIReRx$piucwcxaA)9BGh zA5{zG<>jeSB#z7GUE)mW9tv~nj6kE9``o#6bnMtMB@75gOv=(k^((Kua(Yk(IJjWL ze#qp3*pnyCc4`pX($6cYgMx6<}P;@3DW|VGsbWvOT z7v%Q^sC;NKWu~W+$?HK2SnuY|o3wrVb~UfA3ClZ8-Lz>_+{L=|g;+B1^Hq?L*gUAN zu1!iR?$Z-VUX4s2|N9DUYdl0BoIOvsJN@MAiO}O?N71IG3#l|evtNLl zIddlM-o4u%{Hm;2^u|3JSh{p+CJ&bxd?}<4;CJraq3Y^t8b5x#0-u|ktAHm054Xo- zA&)6`$@|$fUj6;sv}N}}>J0XhJGX#Rv-8MwxG0sS``Y69RQ<#waSsJez(bunb&B45 z?>)6HHnz1cg59WwhK4{t4KQ$|2Bl*6u*dT9avD2!EEN|Q_XDp>Tw|aFd)S^nz+8T~ z{5N#?_=l8LR7M4(D#__iW#-tmA|SH1I|D)Gb#%`KE0{caGF`oTm0DU_;+g>OA5e%xJxhqdg`gCl*tSkG9)Q@Em#?L58)4X(~C>j(vcI*R9G>Fvb^QwaHdcc zDMy%XzBk0Cp&4yU&v1o(>3?^hoXoRPb>ZVPg%3;NE;Rq8T zm`zDZi85h{`c^za5;-ewLTom(Bw$IDM4*BPfXA`BN`15H7Nh_1d21Wn{hw)wXDB(d z3mAA*na!O*H;o!vLMxy99zFT^BQzvClMF}STmUcTBN_n{*oWuOpI6u<-thBJ^YE5y z@#4kl{8FuCm3XMMv{ZqI^mVh*vq~FyvP*y6Yk#0n)Is@0UWz(m@D_A8&`T35%ju0@ z{D4LdFS#es;lesP12889Ot|lkjt)Kc)B?M~57#hdNUj50tEi|@oFmHWfb9udGA1tm z_bMHD{{zZp=|>H>0`KeYVON<=umAk{*hn@R`(_u?J)6!1@-Ep2R?40M>|kKJs7;u_ z!vKmG5)~u%RKXs!-rBjBV!TMZ~vl;CX6np z3QtkA%jb7+)WzP5W+7E@rxgedtNY5CYuOA@sQn33gMZ7G!coIwCC^dlP_daYBvoE786H!KK@p23|u?b9HxS2Yo+G969kJ zwSLw@uFM?9A6DRF*mQ`VAZE(s=*t_6&4>wkL|*^|87yT{LO*Y(Cx~`}23ncM#KXVe zpRl(xSnV8SKwI9~MU;`v@^m9QDh5pUKx|to3KPeNzA>Wi*}U9Z0L17_)?32guzwq# zRxr?_GoWu0yH*Ce&NP1Sdry*S_kYG;f8Kz-4LdxDP4(yV*uL{QrfZ&?4|VpxsVxX(oZ z`}EUK<6SnL5q)C0E?xbcez|%hQO*!DQrZ4F%Z&E)vO7+rAJ6*^<`u3@ey^A3i1Kf# z_T*33K%%bSM<0C@FQl}Z`xrFvE>lo607;?oB-N2jqBEejUsSfA&9=X8$&2jMQL)A% zOi^AqEs@mi;AI_&{veq2_3PL5J`tX60(J=+dr{O##KU;_@L_u9nP(Iek{5ydsk2_B zo3}dHOjy#HoOXD;efu!V#YUKYye~k%{q;|&vfK-6iSRq_WWW=djU7DJKX~vU>DVkM z(x_KtjZA(qBP2`B&CS%-)~1U4ep(=2$elyR@G<1f_w-E>h06?4jFYw{KUqKv=Y1EF zC(B$01uvv)TGm88jN%@cH1qK@?Ts_Ab?ep+{-ItNkj>K6)D-V1ODDRtkV`{254QDa zsGB1zlaJk7*IionvlnR7iiMn}skFv9P~5OfUcgITE^VEC`}Xz2WW8Gt%=SXO-s;aQ zRUrq5Hv;$4`hz+Pa4uVwk8zB1r8#Snia_$Lpz_Kf_Z@Wnr61 zo4c$9xRrQwSK2H9`0TUKDovnfK;OpBfW2l;*5K6{&`k&Hz~67)yjlGwYe;jKrGH>!JxMsAtWZr5avnI!U`vn6URp2WqkF;H8y$^ypD#Hkb=q)+Ddm>kNMI z_PSj2=FN*AaOg)%SO{7`^A)WQFrgm}>7{5Q2J{FkbHY_NHa60Q3m5L0PYyVC?AUSt z2OJs`>WGPN)AXJ`w1K~?s;X$lj2WunmNTyVWdOhtVGkTQKqpV0RPR9Qdh?hsb;QKr zzx)xC#>5mJ_Fzwl=g^}henS&@+_-TxapFYPN7Wl)dL@N-kyYX(=95o8p=;N!ss9&= zizBe!gU!!o@DF~-r!nERn5eR!vgi!q9?f8QDvTgp$g4oe=P~L{EB&lNtAEc};2-{& zRbxUObo1nEcq~m8loF-giTXW>j-{B|;OBAB&EUVfgKqtrJ9n=7)PNURhAwfkN=lCf z`k7gxZU>LZZPcd*J9qBL&}osA&>-NetTk3AUpH}kPa z5@z~+Zo`1o=Qij$S-{n2Hdg%||J;T_KlJA|{}*5YlEXygMO0e!00000NkvXXu0mjf D*S&}( literal 0 HcmV?d00001 diff --git a/bin/themes/default2/images/flashstart.png b/bin/themes/default2/images/flashstart.png new file mode 100644 index 0000000000000000000000000000000000000000..c930ee7aecaf0d4134f5be49b7d24358cb0a2f65 GIT binary patch literal 3220 zcmWkx2|QHY8@@xf$ugrbA%w)(8HFgu*uE^2oor*v`Zab!$vSotm1Qz~)*4c>j9nSw zvrIzrXGkbwVnUXD|LgqTbIH>A63gjD0Q+2c6UR^hU{gJ*kd_VEldsN&89Ibn-|-2H#D#bRk&%%~ zet!pqdgAcjN_RqT7jNna0{}PN6r*qB`=HY)DDdp0@V(I=|8D*}y4l=hGkdY~9U_LD zf@vbRNi;WJFk&Sf>tT*?=n(U-9C`kEun#vl`4b-^?m1T;FS?qv$ozG2h!2(5bXSp| z3n790Z7W1rl$x8{9334k**kV0YrB0rGLNtGlGf9a%~34|vx^ZupL5O#(>mE0cNlS6 z?>b!flsj+yKOt=Kp}>bPLx^JF=l2vI5oinLO1mR4+Z+@iQ@#uovN&){AgAhDWIW9} zS0JJ+_;}Uk`%BcU$A24Ti?F{8U$-kJumjux0S+f{mV}m2R8v{as2o-8X z;O8d46-&rV@8LoioD5MpRaOwns~Sg7WgPz0;p<`yGx|TH-OVRp(B!gpZ8QmnCgmQv zPN0BRz@4Caxg(nC^B*6p3JUc|y8I77Ni%^uBMY#|f(43_^R!{DO@gekjmIH4Q{RH7!p)k3Gtu+Ti0wz*x`sl9Z5BcT=R4Y}6=FqJMTx7X z56%zh*V^>`n0ZZ`pU=L^=s43HWbbRojVlPeoS}Yu)ZO17Dx~b1ghQy9TeEx!cllo= zQMEaCxKPpfZ{eOQ^J3z~a-5`EGSy|;@Y=J~b;`GI-+Ea2bmDzc&h5mDuV25)YHPWggQW6IdQj%yC`x=)FxMB#qe+03g5aViZ+gGvy~B+wv0ME@Pl}4r z3WABCSGW!8ITqT2W}E*UQXm}%YtMBtVNVEVi)!lX>UdF((?Uw`<|64?4hkt$s?j?S z)!JY{KO#@UCS_ZvfyD$o$&#jK#1DjwjEsAcOyF#xl5I1F5zx?Sw`^exTn_w{D_vfJ z`M7d;4P4#F$EQbY;7fnTi3z}*g4%;YzYxHsf4E~2huca=UzPI(!+LF}Pb}lF=h%m795SrMRktos> z4@FnHEfPU5W-qz>_^_{zJsWuco)b;NCSSxClpgOMtT)_9pR`4lFf{;**6N4V)5$D_ zN-pUuD?ZZsrr@pymv@>PUgc;f0RD5z^*0I?dJh@h;?6DYq8amo0Yjxz4Q_YN&~n{H z27+@(d>Vael1(iw6=X6`8is`ejvo(qar%;PdF{bEFLzK%ktkp@5RAr;|DwI8_3i6Q4XL9+C8?)d~!8XN&D*6;Mt%S5?Ijg7iwCG zx-o*?#|QEU2M6Oc+Ra7ujx5MKz z0E`l~Rc?s66FSN>#>C2=9slql;c&B^k4z@N47#NxgHl!?C1}R}etFhawm016XnR;0 zAueuwp@F|$8vI`}t^lIc6a?5<3AI~HdtzRe5x2U46t^HL?w))4- z(dcff)_s$byO8pV3f7`3l7qq!PeLHv>s)Y;%@uy@uR2RhOHtn|AFF6-MT0xhnn3X^ z;t|Z15$j|jvz=V3*0YM0J&?eH8T!-VQACb`;2y08xhCz8X4Y&HNkaAE``g|fTT~GZ z^39COBn@E^5!`I^shjL-#!}_~2%oQ@`6fS8r+U5b76i7$acq+;ERXQ2W6YoXtIs^~ zc$jgH7}-f4G06s-ZI-XomHf*egEBrPNZ-TFMzERJSu4WVA=u|Afq0lR4sK>?={a5R z617?y31a*?fA7K!2wq9y3=nXNdYJ76*I{}`uG@CQIpXS z5|)$Z+vKlCbw?QW6Q@60M(JTKN(rNInp?kkXq#yK+WhEFgtC8Q8q!QLBO*K;x3e}0 z@_wOYdd^Mv*D`(VJLZuc#Ow7;x|pRd51VnWR^KAtFiGI19owhz@pvJ(SUBIc-|izC ziE3VIPbK1;EHJP7aG8T^@^}Y-pNDH$CW7AWbmvh9?CETc9>}zp5gSg@{AtJs0bGp3 zYawmUDjsfc;_Ld&WD>uB_XFQZcs~eL3ZO4wD`epM6R7XJ{t1_3b_2P2dCOZ`TIw|t zV?suQmxlzr)Xs4^IOuuWi;zFu4tE*&K2a_I&0?c(GF0x3<3%Th^4^P|6?1fV5xX0+ z_V&Na#{H)mzqgju#I0*0(3i?B(`5N1kVkv}K2>*U@`ZzvCe2^#FEkY*MT+j7q0|p^ z&j0U!nZ3RGI@|B1!rzD~93=lN32m*)AHQ@VUO{hlI}R>guft%j>mqk}w)cH)i)N#&rJz zT$fZxcow&Nju^Xb+FCEqEO*x}tNNH{f}xOBqrsoy&>o>E28JU_!gNS++0Xj*FW{v0 zvTnnLVywsZd0FtA7M$J)_O9cD0OwXbBpFQ_f)ZD48=43_dH{}6+A{ zsF+us+QlCz?R58Wcf&xt)JW-ZK3lp;-lQDr+}DuF$%Mc8&AQJI^nUz!Hi9wla>2k+ z%T1M zA})$}X%9By0=P&?N$nK3Lpf($g*qi~VwG<-bDxL-N;uiuQ9u#>CjGQeseZS8vd~=a z)>d%G-h2$06Hv^fbyHQRuBxeRA8v%J67L=O?Z+F$HQ9jSc4j8+;*G*GQ0)r6ZFPj9 z37jlgsTU6Fr52unf!y?1rupREWewtuN~`Jr;te2M3UD4)l}X~gMu$_YqH}X|QNL)$ zv`?R8nPuy2V18Bw!i;7tzBsJhomAyVz(@+{$^yKef#%2p%9gPilpqEirq!71CZS_6 zNo}F4Ux+cAy+`{@)qtrNNINUX)u96UlMKXysFNms{|KI`TDzq;f*0%A29eC<+dm5% zR3mKOJyN`OiJuEhU_g0)df=mW4y5GQ5G^nc)J=7)DJ29A_0bPJ?bt8`!juX%g;4Xx zZta%xM*SqCcE>$QHR1sw1>yO&)@CgyW}KWYAaC~xgX%$uNR%V6r4uzxazKqFLu!2v1WWlpyOUcqAH+av^swuV1dHsAxH&jNFI(fphuhnvyHP8w6l#Xo0CmyC?h~ DD%$+o literal 0 HcmV?d00001 diff --git a/bin/themes/default2/images/gotoaddress.png b/bin/themes/default2/images/gotoaddress.png new file mode 100644 index 0000000000000000000000000000000000000000..fdefe966beb3bcd5d508880b1f643ab391f204de GIT binary patch literal 612 zcmV-q0-ODbP)kKw97^{dhbeo!VyQUic08pV?^Qcj5&dwS3RXaKy&SV+VI5^>9yl|1E2I4j0x-rPHr+bg&W&=M0Wl`=~UrJNW$ yHuvECF5SIG0X%+oWhqB~wJ`3(@Z5gG06ziWUAf#6pOiWP0000_9BZ!2~3W-Ym`sQjEnx?oJHr&dIz4a@dl*-CY>| zgW!U_%O?XxI14-?iy0WWg+Z8+Vb&Z8pdfpRr>`sfZFX56L+OVxN-99108bak5RLQ6 zAzO>m4>0tUW}i>!+GJDxU$Xnf|N8okUH=X%{o-G(Q6{`$b?SjcJu~5b^;P~`ZvD52 xaqH6G(DiTm6_%hwJnft+J09L#nml6>!y{(b)oLd*_W{jj@O1TaS?83{1OTjzMhXA` literal 0 HcmV?d00001 diff --git a/bin/themes/default2/images/library-bg-top.png b/bin/themes/default2/images/library-bg-top.png new file mode 100644 index 0000000000000000000000000000000000000000..ec16ad053fd279697bbc2a57d626f4bc66e07e71 GIT binary patch literal 327 zcmV-N0l5B&P)X0ssI2>{g`D00001b5ch_0Itp) z=>Px$0ZBwbR9M5^mdg#oFbqI#sjILA3osE|umKV)aAqG)2n15EiOsbjQ2j}qC^@Ez zQ^(IQ!OeCD!wuY@E{0`{|04?L)_!cU8Gn4hmH6l5VY=R5h0jSa$H1B}x~u?TqMYKh z5)=;?rP61`IhzPXAAyQmv87gI%F0_S4S~G6!4Cp+fRp61@!P_YmDhnP0zuzb)Sy-# zTYxO9Wa=yIy07NP&2;*4S$&tP9)WHLs-V>qNZsF8V6X)dm33erW-sl)@-HTcyRVuN zC^S2n`YO;CfdrzjuWH+(djc&lrs58)P2eamCKG`z?knArFk6HYs5g5q?Z7SwO!E_l Z8*c!~f9(FKbRhr$002ovPDHLkV1lo8iCq8y literal 0 HcmV?d00001 diff --git a/bin/themes/default2/images/library-search-bg.png b/bin/themes/default2/images/library-search-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..2f159b294ef23f0c8a24357425e48bbe395c384d GIT binary patch literal 569 zcmV-90>=G`P)Px#24YJ`L;wH)0002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXV* z3j_nDa_?XO00Fs4L_t(&-tCz`PQx%1#y|f_+z3^2+NCq6=pm3eM0ZZY3Ag|Y3uoxw zH8T@cmjVq$II$lCP1FSh5*4!heo~|;b|U5b{GR=6vE6QOt+g)z8Za>u01yBV;0(a4 z27vi|{uV-b_TGoD-c(A-@7llP)ZYCMj4@dVVY*x{r3Qe_W;3m->Iwjeh>{!1A^hr} zq?Ce)+L*L3#&nCt;toKe0iZ0)M`MfwaL?H+S}wCJs{ou!Ypo|D#hS#AQc4lgyWHPP zmL!R3Cd>0Y$j>Q6vZ)EM_fbj!LI}Z%q+_a(0L1=cBBu{d+1F$&N&Jk*V>g(}`8TQb zJDAFfq>+BbU@DVX#P&riOOaTl7DdrCO~W}jV!Ez_F@^?Hwbl}!$2UwW3ni{o)1WU+ zhmt16BexTSvMlq?IVAzqWmy)Se&fel`%Xkphb0Z08hNDl*_KUB1n)idC5`SMwr%SG zT(CURu6%tTsTu%gvst@Zt*-Zu;~0ApyWOt-Y2Ui8b*kczMk9Z$Z%-x@IOnWbuh%z+ z4SAjir4$`uB#nRC*BIkdHMMQqzuublLWrD*oDd@Ky6)iv=3}W`(THIG00000NkvXX Hu0mjf*&py@ literal 0 HcmV?d00001 diff --git a/bin/themes/default2/images/navigation-dropdown.png b/bin/themes/default2/images/navigation-dropdown.png new file mode 100644 index 0000000000000000000000000000000000000000..0b9102fa8d134ebf27c4210049866cb211395b6c GIT binary patch literal 737 zcmV<70v`Q|P)Px%n@L1LR5;6RmAi5iK@dexkJezx)&m(8E@O&s!c`Oj@DC&;)COD6Hrd%? zK0haba=rf(wQ^7Ge*v9fTwMGml#8q>iT>tbW=(X9wS{1~iz;VRn_f~b!PTmAZvuGS z+5|Q#GeaRtwfKM;Wn7g$*{Vt@De=aA^#8KTD=CZoHA<9>wIVvL3@d`!nj(+CE2EL_ zNq@21RI+ikbrx?_l5kf67@VG*@a*XmjmKj;oep(fGn>tL{^F$#N8?pRSaWtpJN=x= z%#g(LY|fk4uQZuVm`@vuc6EDtAFBE^s#GdN%VVX^ql?(PjLqv0UIBU#a( z7M!M2PF;)nuO;Vaf7rP>#DVH)x`64Ted84`u5!Lu^yS*Mip^e^$*mF13&;2eAb5xX T-O`B+00000NkvXXu0mjfCIwS6 literal 0 HcmV?d00001 diff --git a/bin/themes/default2/images/rss.png b/bin/themes/default2/images/rss.png new file mode 100644 index 0000000000000000000000000000000000000000..d1705aa348ddda5b251a7d744658d519776c72d6 GIT binary patch literal 735 zcmV<50wDc~P)IU`$e#o_VA-9m(PZZFk*oXyxlWud<$JOkN$?Ky zy0`pq6%@i|0Q-Pa79W3@<@=N33J#I{VUYarhUD1fUBqfpjoc)#v57b_9j1yUCf4x% zB|Eu0hvZ- zJ5wZ$VU#*d%9skme-p%)F`@e+-+zszrjr~UA~_PSMC|$cCPti|He!xNu7efiI$B=B z)7;HSysZf!*Es#5CN(=j%$-WKHK7i%rEmo|)>^`` zQ2_)KkeCd|cueSt@b9|Bwk450@Ohe+m-67ACn0)8R(e2L3Ii983UiPTAkf3&w+vwY z6o>=)sx$KKqcV}>Np@p@8f1$cr&;X2PZcFMzI?z?51v`>ghk-B>T{7nKtO-(ka6d)E%wIZgT{zyP$8Aj}n= RwRZpj002ovPDHLkV1kcRS4IE; literal 0 HcmV?d00001 diff --git a/bin/themes/default2/images/search-icon.png b/bin/themes/default2/images/search-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b0b6570e2e688667dea4f7aa24b35a8bc001584a GIT binary patch literal 3093 zcmV+w4C?cVP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0003%NkleB7vBKhd#tte-l?_j62=&mQg)TR z8lsu!SyM`+lxVFHLO?_)rR+BIc8vg+%SCg}Pf5->Lu9_JjW>Tg_C jmFxAYx7$rsm45>OjAqf_S7f8m00000NkvXXu0mjf>VdrH literal 0 HcmV?d00001 diff --git a/bin/themes/default2/images/star-a.png b/bin/themes/default2/images/star-a.png new file mode 100644 index 0000000000000000000000000000000000000000..aab4ff144cd191b89d464b9a8a3168a98095c70a GIT binary patch literal 359 zcmeAS@N?(olHy`uVBq!ia0vp^{22TH{@WL2%wEztcOqxc{A@>VgMF)+8Qrcj zFnu}oW`Ucc^Vf5Kw%m7_R+{v8>G2g@QK4(IPgiy`eBZY>?B4TT${X+fF5a3TE>Ol| zd)a1XEnG`xGIsi1hrjvwqYt;WWGrZN2lx`x5i L)z4*}Q$iB}OQVnB literal 0 HcmV?d00001 diff --git a/bin/themes/default2/images/star.png b/bin/themes/default2/images/star.png new file mode 100644 index 0000000000000000000000000000000000000000..44687724997a89d4dbfccbd7fa5e3b9a0c427f61 GIT binary patch literal 348 zcmeAS@N?(olHy`uVBq!ia0vp^{2f4F%}28J29*~C-V}>VN3FMcVYMs zf(!O8p9~b?EbxddW?ue=et(*8du)fF=2{<)ha4gY{u=Pie&4Ow zV*NnSVs7V&ym`;1L-*>P-ZW#`OUVVfx79;y1Fl*=uSsQCwaRMywS5fYmd|w?44;Wr z#7=u!By-$+)-uKe)$tuC99=%S^WFQ+v|!z9dH1!&dGF`kW}a66R5m}fmYY0$~y~NYkmHj3MI|rMJ0Y}>fpb)R8i(?4K_2dK~ Y0CHIw7~?)`SpiuLp00i_>zopr0APx#32;bRa{vGf6951U69E94oEQKA1no&gK~zY`wN_b(990xO_tooKx@&sYEW;#f zn8eA*L=ADGabk>Q`G|_(_93`@`XMAgf(U|$2%h9{ENx;!O9#wR8)j99od+vRQE>3#5mO~TKwIvX#{}7S* zD(R>HW)M-l;@Y~k2-VO7Kbk5Bo)?ADED5whmSyCeOvX%Nqig6DFPNP4+w$hT4kzpA z*%6e=VWAXUn(*>@v8@adX-U=|PE7jqyPQ_n6o47C+k$0j+tL}+xG+{$t&}mft}+Mh zc{4_zG5*wWLydp>y8^W4Oy7@6<)GEniXag7yr?CcnGu};B7i^yLUmH=VfC-{$T=C$ ziy*Ay1cWTMtwowwRMYTuh?MpKKnO^EZd*EJ5fL4Wk|PGd(ijs0Bw1z{L_eJ!J^jm{ z#VOCt+5L+b^!4^+ObtQV^LFh!^634m(|iCpViD1}QZOkAg(4g|dFI{ipPwHu8QN4@ z6O`;9>F#WK>Y<_j#XZlz`eEL6wSh32o(^ac#4}A&ODPd{?)!Gzr-uz~+btbR+lDgY zY8)%^Yukp~bH@3LrR8(Gi3lX=D8;Z^h=hnyr=cnX0YCgax^>5}>EyF++ubXdtQ}m` z=318vmEohm9X>G{1bU(zS#GB`9TFf$sB$nML{}`RxZYoXYgfk1nNEJo<7);7dRQPp zSGzm6GdFVT_pu5a+9CpxAy;g6F_u88y$Fe5=-9}a@rja^?btZfH#pD}GFSvarQ$#P z@_T>%?OEA2B_N_O3ISn(h}4xLpjxYl<1h6DkPyBXvk+QbCycmIs+7H;y{;=IKqw$i`f$>_VuS`22>_MsfTgyTIFusjU$QU? zf-neoe=(9&a_UNgcRtwr+$&o@-uY$qtH#Mv-vJsU!~g_?xAwKV*5!(~ zt&ap!<=B7d=(bM|YBTF(TeJZ$1kcp_bPBkBkg^bz~&I8B5J~IPKY1=fj&pfg2=A{d~aE3O_B0}j9HS)6vhy-}#zPlE7cfI-k!9Ok( zNjoB@f&g@V&zvn!t{+;_>jx5s)fCQf=*KdEq;ntwB8Z3*0&x3^{(+@8e0TEfsb9}e zmHk}Sx~aGO&gH$X>r?{q!#JJI=rN|Q$&b0gOe7qU2oWpTS$plOW$RZji(P{N5lhjF zguzvTHXRbN8j?cO29?W!Hg)q!LSPYMB7#7|TD?~TA~T@_s8j-NP$E;MlAq2Uxuk3!M2os3c{S+bk6E{+wnq1>ExHD6Uz^i{pZWT7%qD9@eK z5?ewf@+yVanvJ))Wb0000< KMNUMnLSTa6yo@ja literal 0 HcmV?d00001 diff --git a/bin/themes/linux/images/flash.png b/bin/themes/linux/images/flash.png new file mode 100644 index 0000000000000000000000000000000000000000..590c561f324da63cb61c6e4e5fd627fbfc8df57d GIT binary patch literal 3373 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 D*S&}( literal 0 HcmV?d00001 diff --git a/bin/themes/linux/images/flashstart.png b/bin/themes/linux/images/flashstart.png new file mode 100644 index 0000000000000000000000000000000000000000..c930ee7aecaf0d4134f5be49b7d24358cb0a2f65 GIT binary patch literal 3220 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 DD%$+o literal 0 HcmV?d00001 diff --git a/bin/themes/linux/images/gotoaddress.png b/bin/themes/linux/images/gotoaddress.png new file mode 100644 index 0000000000000000000000000000000000000000..fdefe966beb3bcd5d508880b1f643ab391f204de GIT binary patch literal 612 zcmV-q0-ODbP)kKw97^{dhbeo!VyQUic08pV?^Qcj5&dwS3RXaKy&SV+VI5^>9yl|1E2I4j0x-rPHr+bg&W&=M0Wl`=~UrJNW$ yHuvECF5SIG0X%+oWhqB~wJ`3(@Z5gG06ziWUAf#6pOiWP0000v>(tS5~Nx_}g8age(c!@6@aFM;eko-U3d z6}R4=HxxQ#z{BD&cOFA+#wBCt^Yd5yWUgQ4;Ug4fl@@w4{q(hGMZ4!Ov-G^=8Lr>0 z`oi@6y3&u9ZwnV@-_1Sw!YlXTKc`o(SKiw$Gx_fRQW?$UQ-;OrJN=$t|9tUlzw0QV fe+Yc7-ply?GP^m0+aEDtq%(NB`njxgN@xNA01&J} literal 0 HcmV?d00001 diff --git a/bin/themes/linux/images/library-bg-top-right.png b/bin/themes/linux/images/library-bg-top-right.png new file mode 100644 index 0000000000000000000000000000000000000000..821f12dc1344adb33184979ade3f77ade3352f5a GIT binary patch literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^>_9BZ!2~3W-Ym`sQjEnx?oJHr&dIz4a@dl*-CY>| zgW!U_%O?XxI14-?iy0WWg+Z8+Vb&Z8pdfpRr>`sfZFX56L+OVxN-99108bak5RLQ6 zAzO>m4>0tUW}i>!+GJDxU$Xnf|N8okUH=X%{o-G(Q6{`$b?SjcJu~5b^;P~`ZvD52 xaqH6G(DiTm6_%hwJnft+J09L#nml6>!y{(b)oLd*_W{jj@O1TaS?83{1OTjzMhXA` literal 0 HcmV?d00001 diff --git a/bin/themes/linux/images/library-bg-top.png b/bin/themes/linux/images/library-bg-top.png new file mode 100644 index 0000000000000000000000000000000000000000..ec16ad053fd279697bbc2a57d626f4bc66e07e71 GIT binary patch literal 327 zcmV-N0l5B&P)X0ssI2>{g`D00001b5ch_0Itp) z=>Px$0ZBwbR9M5^mdg#oFbqI#sjILA3osE|umKV)aAqG)2n15EiOsbjQ2j}qC^@Ez zQ^(IQ!OeCD!wuY@E{0`{|04?L)_!cU8Gn4hmH6l5VY=R5h0jSa$H1B}x~u?TqMYKh z5)=;?rP61`IhzPXAAyQmv87gI%F0_S4S~G6!4Cp+fRp61@!P_YmDhnP0zuzb)Sy-# zTYxO9Wa=yIy07NP&2;*4S$&tP9)WHLs-V>qNZsF8V6X)dm33erW-sl)@-HTcyRVuN zC^S2n`YO;CfdrzjuWH+(djc&lrs58)P2eamCKG`z?knArFk6HYs5g5q?Z7SwO!E_l Z8*c!~f9(FKbRhr$002ovPDHLkV1lo8iCq8y literal 0 HcmV?d00001 diff --git a/bin/themes/linux/images/library-search-bg.png b/bin/themes/linux/images/library-search-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..2f159b294ef23f0c8a24357425e48bbe395c384d GIT binary patch literal 569 zcmV-90>=G`P)Px#24YJ`L;wH)0002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXV* z3j_nDa_?XO00Fs4L_t(&-tCz`PQx%1#y|f_+z3^2+NCq6=pm3eM0ZZY3Ag|Y3uoxw zH8T@cmjVq$II$lCP1FSh5*4!heo~|;b|U5b{GR=6vE6QOt+g)z8Za>u01yBV;0(a4 z27vi|{uV-b_TGoD-c(A-@7llP)ZYCMj4@dVVY*x{r3Qe_W;3m->Iwjeh>{!1A^hr} zq?Ce)+L*L3#&nCt;toKe0iZ0)M`MfwaL?H+S}wCJs{ou!Ypo|D#hS#AQc4lgyWHPP zmL!R3Cd>0Y$j>Q6vZ)EM_fbj!LI}Z%q+_a(0L1=cBBu{d+1F$&N&Jk*V>g(}`8TQb zJDAFfq>+BbU@DVX#P&riOOaTl7DdrCO~W}jV!Ez_F@^?Hwbl}!$2UwW3ni{o)1WU+ zhmt16BexTSvMlq?IVAzqWmy)Se&fel`%Xkphb0Z08hNDl*_KUB1n)idC5`SMwr%SG zT(CURu6%tTsTu%gvst@Zt*-Zu;~0ApyWOt-Y2Ui8b*kczMk9Z$Z%-x@IOnWbuh%z+ z4SAjir4$`uB#nRC*BIkdHMMQqzuublLWrD*oDd@Ky6)iv=3}W`(THIG00000NkvXX Hu0mjf*&py@ literal 0 HcmV?d00001 diff --git a/bin/themes/linux/images/navigation-dropdown.png b/bin/themes/linux/images/navigation-dropdown.png new file mode 100644 index 0000000000000000000000000000000000000000..0b9102fa8d134ebf27c4210049866cb211395b6c GIT binary patch literal 737 zcmV<70v`Q|P)Px%n@L1LR5;6RmAi5iK@dexkJezx)&m(8E@O&s!c`Oj@DC&;)COD6Hrd%? zK0haba=rf(wQ^7Ge*v9fTwMGml#8q>iT>tbW=(X9wS{1~iz;VRn_f~b!PTmAZvuGS z+5|Q#GeaRtwfKM;Wn7g$*{Vt@De=aA^#8KTD=CZoHA<9>wIVvL3@d`!nj(+CE2EL_ zNq@21RI+ikbrx?_l5kf67@VG*@a*XmjmKj;oep(fGn>tL{^F$#N8?pRSaWtpJN=x= z%#g(LY|fk4uQZuVm`@vuc6EDtAFBE^s#GdN%VVX^ql?(PjLqv0UIBU#a( z7M!M2PF;)nuO;Vaf7rP>#DVH)x`64Ted84`u5!Lu^yS*Mip^e^$*mF13&;2eAb5xX T-O`B+00000NkvXXu0mjfCIwS6 literal 0 HcmV?d00001 diff --git a/bin/themes/linux/images/rss.png b/bin/themes/linux/images/rss.png new file mode 100644 index 0000000000000000000000000000000000000000..d1705aa348ddda5b251a7d744658d519776c72d6 GIT binary patch literal 735 zcmV<50wDc~P)IU`$e#o_VA-9m(PZZFk*oXyxlWud<$JOkN$?Ky zy0`pq6%@i|0Q-Pa79W3@<@=N33J#I{VUYarhUD1fUBqfpjoc)#v57b_9j1yUCf4x% zB|Eu0hvZ- zJ5wZ$VU#*d%9skme-p%)F`@e+-+zszrjr~UA~_PSMC|$cCPti|He!xNu7efiI$B=B z)7;HSysZf!*Es#5CN(=j%$-WKHK7i%rEmo|)>^`` zQ2_)KkeCd|cueSt@b9|Bwk450@Ohe+m-67ACn0)8R(e2L3Ii983UiPTAkf3&w+vwY z6o>=)sx$KKqcV}>Np@p@8f1$cr&;X2PZcFMzI?z?51v`>ghk-B>T{7nKtO-(ka6d)E%wIZgT{zyP$8Aj}n= RwRZpj002ovPDHLkV1kcRS4IE; literal 0 HcmV?d00001 diff --git a/bin/themes/linux/images/search-icon.png b/bin/themes/linux/images/search-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b0b6570e2e688667dea4f7aa24b35a8bc001584a GIT binary patch literal 3093 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 literal 0 HcmV?d00001 diff --git a/bin/themes/linux/images/star-a.png b/bin/themes/linux/images/star-a.png new file mode 100644 index 0000000000000000000000000000000000000000..aab4ff144cd191b89d464b9a8a3168a98095c70a GIT binary patch literal 359 zcmeAS@N?(olHy`uVBq!ia0vp^{22TH{@WL2%wEztcOqxc{A@>VgMF)+8Qrcj zFnu}oW`Ucc^Vf5Kw%m7_R+{v8>G2g@QK4(IPgiy`eBZY>?B4TT${X+fF5a3TE>Ol| zd)a1XEnG`xGIsi1hrjvwqYt;WWGrZN2lx`x5i L)z4*}Q$iB}OQVnB literal 0 HcmV?d00001 diff --git a/bin/themes/linux/images/star.png b/bin/themes/linux/images/star.png new file mode 100644 index 0000000000000000000000000000000000000000..44687724997a89d4dbfccbd7fa5e3b9a0c427f61 GIT binary patch literal 348 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 D*S&}( literal 0 HcmV?d00001 diff --git a/bin/themes/mac/images/flashstart.png b/bin/themes/mac/images/flashstart.png new file mode 100644 index 0000000000000000000000000000000000000000..c930ee7aecaf0d4134f5be49b7d24358cb0a2f65 GIT binary patch literal 3220 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 DD%$+o literal 0 HcmV?d00001 diff --git a/bin/themes/mac/images/gotoaddress.png b/bin/themes/mac/images/gotoaddress.png new file mode 100644 index 0000000000000000000000000000000000000000..fdefe966beb3bcd5d508880b1f643ab391f204de GIT binary patch literal 612 zcmV-q0-ODbP)kKw97^{dhbeo!VyQUic08pV?^Qcj5&dwS3RXaKy&SV+VI5^>9yl|1E2I4j0x-rPHr+bg&W&=M0Wl`=~UrJNW$ yHuvECF5SIG0X%+oWhqB~wJ`3(@Z5gG06ziWUAf#6pOiWP0000v>(tS5~Nx_}g8age(c!@6@aFM;eko-U3d z6}R4=HxxQ#z{BD&cOFA+#wBCt^Yd5yWUgQ4;Ug4fl@@w4{q(hGMZ4!Ov-G^=8Lr>0 z`oi@6y3&u9ZwnV@-_1Sw!YlXTKc`o(SKiw$Gx_fRQW?$UQ-;OrJN=$t|9tUlzw0QV fe+Yc7-ply?GP^m0+aEDtq%(NB`njxgN@xNA01&J} literal 0 HcmV?d00001 diff --git a/bin/themes/mac/images/library-bg-top-right.png b/bin/themes/mac/images/library-bg-top-right.png new file mode 100644 index 0000000000000000000000000000000000000000..821f12dc1344adb33184979ade3f77ade3352f5a GIT binary patch literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^>_9BZ!2~3W-Ym`sQjEnx?oJHr&dIz4a@dl*-CY>| zgW!U_%O?XxI14-?iy0WWg+Z8+Vb&Z8pdfpRr>`sfZFX56L+OVxN-99108bak5RLQ6 zAzO>m4>0tUW}i>!+GJDxU$Xnf|N8okUH=X%{o-G(Q6{`$b?SjcJu~5b^;P~`ZvD52 xaqH6G(DiTm6_%hwJnft+J09L#nml6>!y{(b)oLd*_W{jj@O1TaS?83{1OTjzMhXA` literal 0 HcmV?d00001 diff --git a/bin/themes/mac/images/library-bg-top.png b/bin/themes/mac/images/library-bg-top.png new file mode 100644 index 0000000000000000000000000000000000000000..ec16ad053fd279697bbc2a57d626f4bc66e07e71 GIT binary patch literal 327 zcmV-N0l5B&P)X0ssI2>{g`D00001b5ch_0Itp) z=>Px$0ZBwbR9M5^mdg#oFbqI#sjILA3osE|umKV)aAqG)2n15EiOsbjQ2j}qC^@Ez zQ^(IQ!OeCD!wuY@E{0`{|04?L)_!cU8Gn4hmH6l5VY=R5h0jSa$H1B}x~u?TqMYKh z5)=;?rP61`IhzPXAAyQmv87gI%F0_S4S~G6!4Cp+fRp61@!P_YmDhnP0zuzb)Sy-# zTYxO9Wa=yIy07NP&2;*4S$&tP9)WHLs-V>qNZsF8V6X)dm33erW-sl)@-HTcyRVuN zC^S2n`YO;CfdrzjuWH+(djc&lrs58)P2eamCKG`z?knArFk6HYs5g5q?Z7SwO!E_l Z8*c!~f9(FKbRhr$002ovPDHLkV1lo8iCq8y literal 0 HcmV?d00001 diff --git a/bin/themes/mac/images/library-search-bg.png b/bin/themes/mac/images/library-search-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..2f159b294ef23f0c8a24357425e48bbe395c384d GIT binary patch literal 569 zcmV-90>=G`P)Px#24YJ`L;wH)0002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXV* z3j_nDa_?XO00Fs4L_t(&-tCz`PQx%1#y|f_+z3^2+NCq6=pm3eM0ZZY3Ag|Y3uoxw zH8T@cmjVq$II$lCP1FSh5*4!heo~|;b|U5b{GR=6vE6QOt+g)z8Za>u01yBV;0(a4 z27vi|{uV-b_TGoD-c(A-@7llP)ZYCMj4@dVVY*x{r3Qe_W;3m->Iwjeh>{!1A^hr} zq?Ce)+L*L3#&nCt;toKe0iZ0)M`MfwaL?H+S}wCJs{ou!Ypo|D#hS#AQc4lgyWHPP zmL!R3Cd>0Y$j>Q6vZ)EM_fbj!LI}Z%q+_a(0L1=cBBu{d+1F$&N&Jk*V>g(}`8TQb zJDAFfq>+BbU@DVX#P&riOOaTl7DdrCO~W}jV!Ez_F@^?Hwbl}!$2UwW3ni{o)1WU+ zhmt16BexTSvMlq?IVAzqWmy)Se&fel`%Xkphb0Z08hNDl*_KUB1n)idC5`SMwr%SG zT(CURu6%tTsTu%gvst@Zt*-Zu;~0ApyWOt-Y2Ui8b*kczMk9Z$Z%-x@IOnWbuh%z+ z4SAjir4$`uB#nRC*BIkdHMMQqzuublLWrD*oDd@Ky6)iv=3}W`(THIG00000NkvXX Hu0mjf*&py@ literal 0 HcmV?d00001 diff --git a/bin/themes/mac/images/lineedit-bg.png b/bin/themes/mac/images/lineedit-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..7236277efcace7439acbbc1048f973af12b591d5 GIT binary patch literal 270 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 literal 0 HcmV?d00001 diff --git a/bin/themes/mac/images/navigation-forward.png b/bin/themes/mac/images/navigation-forward.png new file mode 100644 index 0000000000000000000000000000000000000000..dd3d5a2e97e5502ad5ed701df2fb39bcd2f4813e GIT binary patch literal 2743 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 literal 0 HcmV?d00001 diff --git a/bin/themes/mac/images/search-icon.png b/bin/themes/mac/images/search-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d32ef3d14bf8859d0aafe0240877bda70b346694 GIT binary patch literal 385 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVg?3oVGw3ym^DWND9DoT z=mQ~kIe;3?Xq?Vj8fsgCA z?eFD2vpTIaCb8ZPeAXiW?YZQ^4Hpw{nTF+^(@@&inEp9^UG7us{mNB-q8oU98kXiJ ztz+@qRGd@Wpd9SIzI@OA$tHINo(TxE;FS)zGco182`~s4JYD@<);T3K0RRV5mNNhV literal 0 HcmV?d00001 diff --git a/bin/themes/mac/images/searchbar-provider-bg.png b/bin/themes/mac/images/searchbar-provider-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..93ff0611ac545c45bfc2ca01a8e2ca9a97e71db0 GIT binary patch literal 1414 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 A$p8QV literal 0 HcmV?d00001 diff --git a/bin/themes/mac/images/star-a.png b/bin/themes/mac/images/star-a.png new file mode 100644 index 0000000000000000000000000000000000000000..a7bc1c5655c3e61642c26e211a4196bd4354a97a GIT binary patch literal 3321 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 Dg+5Xt literal 0 HcmV?d00001 diff --git a/bin/themes/mac/images/star.png b/bin/themes/mac/images/star.png new file mode 100644 index 0000000000000000000000000000000000000000..65ef97f735a1b9dc35676554582baa7c5a4eed24 GIT binary patch literal 3393 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 Xnt1)yv-RHP00000NkvXXu0mjfdeeW; literal 0 HcmV?d00001 diff --git a/bin/themes/mac/images/tabs-bg.png b/bin/themes/mac/images/tabs-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..3a35bdfff5daaa439c084cb1fb9af37f8ae41ca9 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^Oh7En0U~emo>Tx*jKx9jP7LeL$-D$|I14-?iy0WW zg+Z8+Vb&Z8prD1uL>(u5DldBHt52pH0no+EDT;jw% w>rJaBtTl~sa67{G{F&o-`{-=N`_GTD_v~k_mYA^k9?&EPPgg&ebxsLQ0Dl@VIRF3v literal 0 HcmV?d00001 diff --git a/bin/themes/mac/images/tabs-list-button.png b/bin/themes/mac/images/tabs-list-button.png new file mode 100644 index 0000000000000000000000000000000000000000..8fa525ded419c49af37ea01a29f3d2283b7206c0 GIT binary patch literal 457 zcmeAS@N?(olHy`uVBq!ia0vp^Qb3%;!3HEt3>OIjDaPU;cPEB*=VV?2+0C9Vjv*QM z-cH+?8H*+4uJl^ulZdY|V^nlTZG2TzrvZ`DM=MpC$Lk@jw2!qj2qt>$ju0-`iTv<=gW;eE;kh+t=NG zn`AXNF89@L+g0&_jCD1I3;x#q|GZ%N@pco_s=7+wa>*4(LXxx$r_S*5QC%h!+_@45 m_s{kzGZH1*KQjEnx?oJHr&dIz4awJP!BTAg} zb8}PkN*J7rQWHy3QxwWGOEMJPJ$(bh8~Mb6itIdH977~7C!aZeI=O*SOi)merG4sD z(SwP}$<75cX3l&lqsFFk;LwQ^9)j(=mIdbUZ#-vN{!XUp@v~P<&lwnA_OVv`3O3CL Pn#ADg>gTe~DWM4f6+$(` literal 0 HcmV?d00001 diff --git a/bin/themes/mac/images/tools-a.png b/bin/themes/mac/images/tools-a.png new file mode 100644 index 0000000000000000000000000000000000000000..dcd136c18851c9db17f236e5552783eb4639e43d GIT binary patch literal 1926 zcmV;12YL93P)Px+KuJVFR7l6QS6yfmYZ`vunapJJ*Cb7BY|}Kge@d67#iSSeb0==CCB>En>4IfZ zSrE~6IS6|vdf_hgz_N;XrR>FFWnnK43$?o7-Qph5dWzLnLoBInwN28b)25l3bSB?k ztTUUOwyrLFUU(UpdB5*_=K0?5eV>o8hYb!6)&n?6M8^PxiKrIF70Zr3TDwQD1G75zP3WWj;!+^u#SgcekKYH-s z!7>2Y0HD9WU*tIM>r$x{aXOu7XlOtv6ha^nfY_CW(AL(5Kp?Ou*h-}W#+b#ZEX!D1Tf^$=Dl(Z2K4AH}zrX({4<9}( z+dkyp7pkhpT`m{G;V_z-nh*+wP*+!HZUs1w!~6H|asB#rY;A2}Zf*|e&!30gZnqZq zcs#gu>lPkAehin(g=^QYVgLU9A7!;tsX*6txZQ4eJRUe44v3h54iV_z^@e2UI zcw_|B(2`^r}z~<(r z74!W0bG&@{5)Ow0j4`ydv>+S~TcEz{<^d%l2!a4n6d{Ttc%Fx@>nIkBAfkACd;4v^ zySw{Wnx+j0gF!?h5i~Y7!t3=~TV4J4U0q#JRTT>h3lIbWg+jq%o8veX3I*8hc5obr zqeqV-kw`$(v^{}V12#dM^BIN#RaLRMxhYAK^v)&-!Z6SC@cDf3`FxNh2}FcSrGiSO zQnOvMEMshJ44F&@uV24LC=|l!)2Gqf+l%SxY23Yg7x{c12M->^*w`4d+3aUm0wRJW zNfw@bJ`X_oeQZ*MOK1_rDHRwxv(xVVT^ zDuqg=vSurn%U++)2T>Hkah#Rh-vzq9zK-VR=9+hIw;LN98vuZfjScG{h@uFm(`k*< zb=?{>Iywr6!(sij`7hX9S zf*{oR+}vDE%R4Ro> zj~+o3MYOiI;@r7&0Dxk#h^3{a9eEfC1aSZUeH=f29BXT9H5x$IbtsC0OeTXjZ{EN# zj1@X{>eLfimg8-0Z5B{b6nAtW(#>yL-<*Up=&d$y~bKdmoH8f3ws;VfJN+=eKkYyP}q>PM=d}WKpV&BGMv5Bdvsh>NYP7o0c z!+*1px|Np8 zWlN;UvW!?PHW7=(zO@liIh{^_nM@}8a=Bd8EK$|c&g?v<(s8@pNTpKNcE5f57A-9; z&@>IHR0=+y4+{$msMfN3=}@z=R7<{Mv4~tQ2am_IaQ5ukFNvs39|qcg% zGsb-N_4RN%offMm*xkf)S63IjUN2->uBnZmDw<7@)okYTc@WY1l`B^+A3l8ePei0s z)j-$O)YO^r@$uiRudlb()z!h}a@DZ9+cm^o^mEjIbt$T5b8Bl08yg$&`F!cimoNVz z7K_~>qOBbYpE2gn<#NYw+_>?Jr%#{$jEEd&3Vf_&{jb*$vlN+I&KOhT@%Y~_UcC6{ zU@&-}h>CmOnHXa>06$zeZ_sY;A4%WLb{jdoZupyXbPc)(;&z^m24` z^dHe^^f7=LBGNy4xvK(f2haf^0>A|zfbYlF0BiwR1dt-4UCYG30C)}l6aTOl3jhEB M07*qoM6N<$f;e)J82|tP literal 0 HcmV?d00001 diff --git a/bin/themes/mac/images/tools-h.png b/bin/themes/mac/images/tools-h.png new file mode 100644 index 0000000000000000000000000000000000000000..58e47b04f6ca5e4c6ce06343e663fdf06f38616c GIT binary patch literal 4382 zcmV+(5#jEMP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}000I#Nkl<(hiHV(z;~-`dM5q}vFdBRquZWQcF_DK(axa<83&V?Xj8HN7B)P_3ZW9xyGk{`E zbOas{2tv^ku7m;0Y0ugBWoYL&mwijsWa?E7kP&euPev|8==ob$&3?%%z8cW$$J8@yFlS7#7H{>&J= z=5o1o9*+k*ckaZF9Xqg97#kZyAP_)bU*Ehe%YWgV|E;sL^HWNq)z#H{LdZjd!QgCa zYT8nAo8jZfkMQ|?h(sdKIOo6X?ChM`K=jO+Ge%13zbh*%O&*U2jIp2OyrrcDj~+cj zR#p}sK79DI$;z^fKp=qo_wP?CisJVB{ZmPzRaI4L##pGnzTV+|Ht?}y!Phgz-vV#3d!Jwsbt+jCi#e|7KPJ!wTC4KA0< z;cz&>IZtVC-@e7MW5;m(_;K90aRZ8?AdyHwrBXqo(LhlY_v|23`MSg;Yl5-A~N`*)yB7XSrVVVkp zP*GZ13R#vvYn*djx^xLnrxSu8z-%_7wY3$YPzbH9tuUL-5Cj27jvPTvO%3Al_)qei z&Pq#5AqYZ+Djts)84QMG0Zt{NTeogue0&_yXcR+3Ll6W3*REZI&1S>m;vxB9$ab zI#CoM%W_JhilX4oojXYt3xWUuuvjdJ#bN+}csvf1$pk?VAP53177GC2-Me>?WjRUU z)TvX5L?U?c;ziQ`fddC{^5n@i9c~4pC_<7X9c7Hkk|d=Ke1u^7Hf2+}sQRkR%C-L}J5{Uc7h_ z?d|QTsi}b=2uLIno31@SKM##Y^8+g@D?7b=_wJnR?Cg~4Tb-+ZzaODc2pWwBgb)OS zL3DI<;Q90C$jr=KQ7RS|7GSsAlbc)blTwPp!a`(ZWPnnda_!;aVN6U+46AZ;bNdDc z1{^kbRdMJ%)if}ySp33#l_$1 z_4+U+gh+LDb>Ga+&Q1h_!L;gE6a^U>88Dm8AcTN(j+~qvFveiDT9c(~@7}%8YPBGQ zd~u-<27{QLot>zwtNVr!B9Z?ky6XM=_kU<=YWjNr{{1^V9#6`=T94)BWoR@SEH5u7 zH}Z3!C<+3B0EUK!KKgvV#_a6ue-J_vWR;?|Gcz-Pym|BHSDf=bCr+F|PEOAM_2N7| zJ&m589uPvto12^es@Lmp5keL>-0(T)zlgn}ULZ|C~O3`k$GZng0UtiV(6!fh65!WEH*!px>f^&H!lq+@K!^ Y099B`-Px*F-b&0R7l6YS8ZrhSsH%MJ-KOO+GHG)R*5lcYZKGfk47{sA?#9SV~Ms}EISno zm4+@w5mZX{hjqa2j|EW~QObggKa}nM8QfH)RVXt=DMs6db|@>UQAAUc-nyE`Tx0In z{&7P)ZBtQZUU)c{^Pcm(&-u9LyoX>J^Z9(`0RBn{`8@zVA!HQ*5JE7&1OQo<^WRJP z=bNG^zbttGbBdz;1mMh_J9lDB^;^VNUtj+^Nw(m(Fmvxm6dZkWwxY~H*X48trL zT$bf!eT7VxWjuTK4Domz4<0-~I2=|aNxG*f%He^5f&VTmw7$N68zE%aY&PpoojQfe z%1Zo}7L7)6@#00q|nrLlp)ipLY79@K0>J=i92=?#a z4*=M-X%i@=kR%DupFalx+`fGqJ9qBH`t|ESTW~NK#Ely_GLj^%y?giWJJrXH|AWir z()oNoh@!Y`=U6O;Lx&C_l}h2>y?eNH=@N>HiU0sAl?tLL;^fJb2nK^N7!0^|>lQX{ z-1u2SeLf$irlxem!^1xS@T$CCuZ3mVZJO|TByU}_=nT!tnzp~kY%|bwr<^u*RNmW z>C>lBtJO#(5@1;t48wq77$g!2Xfzry41)s)4#4mCLlngod6$D$t3^B>Co?lM78T2~ zbu~3L5Cmbx5ekBUKp=qW>1j+%Okmx*bvS+cG+Zth9zJ}C3l}b6c6JuqwrxWo5I{DY z{o_V z)oM{uQGvF$Hl)+(CFAlu4@xP>!Gi~-&dyH8WHJ?;(UOvq{3X!S(}QR<3Q3Z1^ypF4 z*4AQdYz)`0Uk9ZWm6es~?(WVX;OTUF5g)@a=DG(ii(ObJv|MLMgz0iyd;+-N#J=Nk|Y(384884X3d%>OjA?S_t9t+9LGTr zgo3c!?XXxZpp?Spa-qGw9hA~M+S}XVa=Ab$g~eil-ELozvk*9rLo^yiQ&ZFTL{XID z?(XjYq*AH%4Gj$imtCb&fn{05<8hRim*dTwH@I@;O5T6`_;IXWy&ADt3}&+#f*`DT z+ZD3@{(cw?hF3j3JzE(<$UDE^|6MYf6vN>#L{VH8*=!a(&!eoY3>?Qn6h+uX^E|TIY(c(42#3Q+CX=Gy@BfYv@{WAWvNdC4V}Cz)?p$kCRTbI2 zdp9VhpEPQd$po!di}&x}gX6d_zKJAB!lOrzFgZD?oIQK?Ms02Fp9vvZGVh5{IyySq zd;a|S21QX+b#-+pEiL^`6X%(k84L{#fe<2gb#?VSoz6}|$jqV)Us05@+1c5@T)uqy z+tJa{wHAv7<>lolDJj89=j`Vi$8kuf(}=}lc=_@roK9!r#EBFCG8&D4BZMTEeKRSF zq5*L5#fujQ`uh4@Po6v}&15ocDwU$YhERjSAn9~E!EU$Dw6wH5v|6qI25^fIk}deS znfmYY0$~y~NYkmHj3MI|rMJ0Y}>fpb)R8i(?4K_2dK~ Y0CHIw7~?)`SpiuLp00i_>zopr0AO3IP)Px#32;bRa{vGf6951U69E94oEQKA1jk84K~z}7y_ZdBR96(ofA_un<|7lGnYc+D zV~Z60h-qp}Xea@7(+LHU;v$+a3PA$dlu{;iwr*1CstE2}S*n9w#7d#ljRZ>@teQZL zI3b3r9Y0_`GLDm(%*=bY3!Txi$z+<49ymPieV23o_uO;-_Z|U|PN$ijo#o7#Gqkj{ z(B9sTuIp^3n5N0?+qV&=iF7*6ojZ3pd-g0!DUKXD!nSSOHpO{79_QM%YX~7;11Nz= zCX<{$f1X>nZn1OcPIm3uMSXq!hQY++abCQ5!NS4<4lw@#l@Z|y_s(x1!rBv1Lg$ox} z2GHN%|MF~vXaIVJ5IulT2=M`+uM>c&l$rseN~xcLkWwn4l&S>K-`@}56heHi>-tw+ zU0rU!-;dYp#qD;l>9iV{R4PR>nIs$zGc`4pGEMVqrPQ}&i+z242q7AU5I;6GHFXAq zK|CJMrc}Y=;v(bY<2-rt9{|gU*l+4Y|F)}hjEEcQDmSz~nr`_G% zn5J2i#$qu}ojOG<7Q-+MG)*gqQ`0mI!>CxZmOZUdD7@d))KpWrB9RCK0|Vsqd8Cx( z8h=v(q?F|Ic?Jdsh(sdQk077VyB!Y4nn))nCkX@s7>0qAvMMPFA&^pH7zTkrfXT_p zRqaY$*UfxBFH1XGO}e|gIehpq0LPCXuZjI8CMEzV7K@msx#Bu$x7(AcRI1VKc2_l6 zEEZW_UM`p4T7XT{B$LUk2~=~rTz@YtEYw^9mSt6(p=DWwLLow-(2D=oQn_Qtj;R|r zZglM5zkl77T6#mg9hud_UJ-%8!NKqD-@l(tBoY(~g_`v3OkQignre-Wjni#yZ9iSU ze3@dgSd*@lAJyiosQ`HX{P~AtV`HJVwzhXlnO;pA8X79biA196eAP?oRmsR_&z^l2 z3-DmA>((*|UDy9}6fDcaG|jT}R4PRxktmbY YKO30!BeCJpRR91007*qoM6N<$f)=8A*8l(j literal 0 HcmV?d00001 diff --git a/bin/themes/mac/windows.css b/bin/themes/mac/windows.css new file mode 100644 index 000000000..238e7160f --- /dev/null +++ b/bin/themes/mac/windows.css @@ -0,0 +1,6 @@ +/*TabWidget*/ +#tabbar::tab +{ + max-width: 250px; + height: 26px; +} diff --git a/bin/themes/windows/images/flash.png b/bin/themes/windows/images/flash.png new file mode 100644 index 0000000000000000000000000000000000000000..590c561f324da63cb61c6e4e5fd627fbfc8df57d GIT binary patch literal 3373 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 D*S&}( literal 0 HcmV?d00001 diff --git a/bin/themes/windows/images/flashstart.png b/bin/themes/windows/images/flashstart.png new file mode 100644 index 0000000000000000000000000000000000000000..c930ee7aecaf0d4134f5be49b7d24358cb0a2f65 GIT binary patch literal 3220 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 DD%$+o literal 0 HcmV?d00001 diff --git a/bin/themes/windows/images/gotoaddress.png b/bin/themes/windows/images/gotoaddress.png new file mode 100644 index 0000000000000000000000000000000000000000..fdefe966beb3bcd5d508880b1f643ab391f204de GIT binary patch literal 612 zcmV-q0-ODbP)kKw97^{dhbeo!VyQUic08pV?^Qcj5&dwS3RXaKy&SV+VI5^>9yl|1E2I4j0x-rPHr+bg&W&=M0Wl`=~UrJNW$ yHuvECF5SIG0X%+oWhqB~wJ`3(@Z5gG06ziWUAf#6pOiWP0000v>(tS5~Nx_}g8age(c!@6@aFM;eko-U3d z6}R4=HxxQ#z{BD&cOFA+#wBCt^Yd5yWUgQ4;Ug4fl@@w4{q(hGMZ4!Ov-G^=8Lr>0 z`oi@6y3&u9ZwnV@-_1Sw!YlXTKc`o(SKiw$Gx_fRQW?$UQ-;OrJN=$t|9tUlzw0QV fe+Yc7-ply?GP^m0+aEDtq%(NB`njxgN@xNA01&J} literal 0 HcmV?d00001 diff --git a/bin/themes/windows/images/library-bg-top-right.png b/bin/themes/windows/images/library-bg-top-right.png new file mode 100644 index 0000000000000000000000000000000000000000..821f12dc1344adb33184979ade3f77ade3352f5a GIT binary patch literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^>_9BZ!2~3W-Ym`sQjEnx?oJHr&dIz4a@dl*-CY>| zgW!U_%O?XxI14-?iy0WWg+Z8+Vb&Z8pdfpRr>`sfZFX56L+OVxN-99108bak5RLQ6 zAzO>m4>0tUW}i>!+GJDxU$Xnf|N8okUH=X%{o-G(Q6{`$b?SjcJu~5b^;P~`ZvD52 xaqH6G(DiTm6_%hwJnft+J09L#nml6>!y{(b)oLd*_W{jj@O1TaS?83{1OTjzMhXA` literal 0 HcmV?d00001 diff --git a/bin/themes/windows/images/library-bg-top.png b/bin/themes/windows/images/library-bg-top.png new file mode 100644 index 0000000000000000000000000000000000000000..ec16ad053fd279697bbc2a57d626f4bc66e07e71 GIT binary patch literal 327 zcmV-N0l5B&P)X0ssI2>{g`D00001b5ch_0Itp) z=>Px$0ZBwbR9M5^mdg#oFbqI#sjILA3osE|umKV)aAqG)2n15EiOsbjQ2j}qC^@Ez zQ^(IQ!OeCD!wuY@E{0`{|04?L)_!cU8Gn4hmH6l5VY=R5h0jSa$H1B}x~u?TqMYKh z5)=;?rP61`IhzPXAAyQmv87gI%F0_S4S~G6!4Cp+fRp61@!P_YmDhnP0zuzb)Sy-# zTYxO9Wa=yIy07NP&2;*4S$&tP9)WHLs-V>qNZsF8V6X)dm33erW-sl)@-HTcyRVuN zC^S2n`YO;CfdrzjuWH+(djc&lrs58)P2eamCKG`z?knArFk6HYs5g5q?Z7SwO!E_l Z8*c!~f9(FKbRhr$002ovPDHLkV1lo8iCq8y literal 0 HcmV?d00001 diff --git a/bin/themes/windows/images/library-search-bg.png b/bin/themes/windows/images/library-search-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..2f159b294ef23f0c8a24357425e48bbe395c384d GIT binary patch literal 569 zcmV-90>=G`P)Px#24YJ`L;wH)0002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXV* z3j_nDa_?XO00Fs4L_t(&-tCz`PQx%1#y|f_+z3^2+NCq6=pm3eM0ZZY3Ag|Y3uoxw zH8T@cmjVq$II$lCP1FSh5*4!heo~|;b|U5b{GR=6vE6QOt+g)z8Za>u01yBV;0(a4 z27vi|{uV-b_TGoD-c(A-@7llP)ZYCMj4@dVVY*x{r3Qe_W;3m->Iwjeh>{!1A^hr} zq?Ce)+L*L3#&nCt;toKe0iZ0)M`MfwaL?H+S}wCJs{ou!Ypo|D#hS#AQc4lgyWHPP zmL!R3Cd>0Y$j>Q6vZ)EM_fbj!LI}Z%q+_a(0L1=cBBu{d+1F$&N&Jk*V>g(}`8TQb zJDAFfq>+BbU@DVX#P&riOOaTl7DdrCO~W}jV!Ez_F@^?Hwbl}!$2UwW3ni{o)1WU+ zhmt16BexTSvMlq?IVAzqWmy)Se&fel`%Xkphb0Z08hNDl*_KUB1n)idC5`SMwr%SG zT(CURu6%tTsTu%gvst@Zt*-Zu;~0ApyWOt-Y2Ui8b*kczMk9Z$Z%-x@IOnWbuh%z+ z4SAjir4$`uB#nRC*BIkdHMMQqzuublLWrD*oDd@Ky6)iv=3}W`(THIG00000NkvXX Hu0mjf*&py@ literal 0 HcmV?d00001 diff --git a/bin/themes/windows/images/lineedit-bg.png b/bin/themes/windows/images/lineedit-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..d8b0dba29c04b1db72f3a400ff53a2b902f1e238 GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^Hb5-K!2~3QS7wv~DaPU;cPEB*=VV?2IaZ!7jv*e$ z-(Gj*WiVhk)DujrA#s|EO2aQ12SIpy65a} Z{iol__L)QZuoci022WQ%mvv4FO#rZqD0~0_ literal 0 HcmV?d00001 diff --git a/bin/themes/windows/images/navigation-addtab.png b/bin/themes/windows/images/navigation-addtab.png new file mode 100644 index 0000000000000000000000000000000000000000..3d1003b093d83970667dfa5e66e0303712b852ce GIT binary patch literal 664 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 T-O`B+00000NkvXXu0mjfCIwS6 literal 0 HcmV?d00001 diff --git a/bin/themes/windows/images/navigation-forward.png b/bin/themes/windows/images/navigation-forward.png new file mode 100644 index 0000000000000000000000000000000000000000..56c39b1a3dfed33cbb6b9661de5ee10d5f7d5cb3 GIT binary patch literal 5065 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 KMNUMnLSTYxEruBY literal 0 HcmV?d00001 diff --git a/bin/themes/windows/images/navigation-supermenu.png b/bin/themes/windows/images/navigation-supermenu.png new file mode 100644 index 0000000000000000000000000000000000000000..59b2b2e82b894809549ab31ff0d7d532dbab1795 GIT binary patch literal 976 zcmV;>126oEP)Px#32;bRa{vGf6951U69E94oEQKA19eG6K~y-)eUw{>l~okSe{1jkoilUhT;_J> zn`@LKW8)}d7M>J(5e1)&2nkZ~AyT?vU_B&Q55D+Ns4x!&TG3l$pb->w87g9!7qKgj zU>1z&j5;&U?aZ8WzHhG{`l^#e`(;1v-~O-l|F0#~9aXh}0~&xV&I4Z80NL_NC5)oDzZUs*r{4Lb z^ws#4aOUoc6EO@8bYCACe(vmz>A5(a3aV`_*$NPudq8O*U#&)6QS1kfz45`$bDv)7 znOhbYG_`4vZP&$Gy7$P5^RIM=ExAgyRs@=WRJ|gb^d>Jx!f(efZ~9{FO5SA(Y8 zP3xAyF0*}euPtrtP6N+|?S+%ITHG82Hg-vWqz=?9BAuUo^W%Nk6k;1u0#&cPe4rEz zK2VIk>h#KL?W*@awAR!DZ1u0wOwz!N_u4AZapU%Upe9hoYV1969FxnWq*9HR%jJr> zeD!+!zL$pgTVvXQW|vqV02!dgtF|K&Ui|4d6J**nR**Ob;Q8YhYKNcRD&rR?TF-v? zbr`FYAg~93VV5Xr0$O74LuXA-uBoBhdyiKT?-Qrt=U?u`&m0>``=|nvB@EjD9s;aO zAg!_YeR1U1*pyjw=+(Cy6@x1H*w;rEY=as}fe3qdZ*fULBL@_!)u=c2exMe`>tA^7 z%-WB?{64Vhf_k;8Nm>6sh9`EccL(=wb-*aF=oXgBol)fbfx-7iMmJpe{8C`kdBtVa ztAPJUQE5}3=_%&S<2#1TBOCjyHSz;+4p?ycY^DY1xxaL9+j3RK1UdcFa)Wx$le;#! z(?|CN<<%;J0NetdiM=25UdDi%z=8vE`(8Zx=+deelP;(P8C5Lmm7Uwx+S5n(1i)k} za32|wd1GX@ZfNI|yX*j&xOOv(YXH}%Dh>sP`itiM6HldpN#HGK%~bMm8CXfCz5>($ zZ-CY94?j4mSVcj-r@c8NqwgL{19yNofeGN(1Ud!G0*eVK7Liy~^)aCT^;75fkA3%h zv9!5gjvw9~BrD^{)UCPc&W@JpL`fC!BBJ;DD5^S`?4EXD7qAYv2AsJuJv-YSw$3C! ymqp~ivhX*k1IQ&?Fi2v&ngne*SzP}M0r&$K1awj?#C$0L0000e`6a;sD*hNrqYd0d|t`tRF zbRh^9M1mVDXkCPgH3nL&R%50uF=-Q;HZ#oJnYsVRadBtYvpJl_d3@jbKAC-qT?j`@ zBTShTL@1)4@2i36Any!*=9;b37UAf&cR!r68;225hygU98X$T!dQguBUvz3jeU8uk z@s)F5i7kyVWlWcW{U?a7i#BiL?%g1+UPYUWpdQqL&(WBpA%~EI_oS8PF>6vF_E3`| z*dY>pNuZN$kGYkYw*vPB-SGm5Cc{K4L!`Z zmoZT>zKi?sck*A);BWpwT=*W_{+ML)P0X|J;1_3*_7#i;3?wJ_ajG)02USC8t;66b zvT-X?d!BITI@0(PU73R|&mh%tLNbKb&y(0lXhCvvFQ?LBL+7`%WEaoUoBstf@)*hJ z1g7>J{^li2YaX&S;`kxh^a!y&gK@WsZ7>MUEZ{e+aZYELguy%b_m2k$O;c76-YJ| z8uCr>EzsW1Y3rJ;)2;fjq~+!@NkJ970h9I_ip8m7DSofTA}Q^hZq(;L_#d*~a&bsX RW~=}J002ovPDHLkV1k8jaLoV! literal 0 HcmV?d00001 diff --git a/bin/themes/windows/images/search-icon.png b/bin/themes/windows/images/search-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..bfeef3f82f2e891066022012f536882c4a4c67f8 GIT binary patch literal 799 zcmeAS@N?(olHy`uVBq!ia0vp^fCTHwcV8Sh|KQa1r`I05 z-f`~1j`NRpUV6Io$}^zhN3K6Rdh_McTdywOe|_=6n@f-0U3&b!Xu{UMB?p&mKkr_- z!n0w6Pv1VD$%peMZO@;vw`lRnqGe|~RvhnKd!~Ea)$W})-0C;vPT$+U=8S#O(#*cC z%}b7IWiQdK+8oufC1&!0()mZqSDurNo2^v7IjDY3=)?oL)AtoDKgXa~ViDUPRI!x7 zzL~*)8bj24hLly-nX_z5R@zr@uy5WG+PprzcX#BJgORgOFc_3FnAR{@H<-muFiV2v%WH!#Sg=?1pA=FDM`$zYJrW>76;FsRiEY|{$v&<^j> ziJRt>GuJ6^zH`xHm&(-)8l{?%6C6vHF-YYwn07F@&6E%5R7#qsoV(gIdx1sGCadt?W?z+gW`+Nny~wNA#fNyfKbHn2xF zY@%G$bosbB^2rP2)0QY?F4vEpte-H=AZ3-D29X-K=@n zrN8RUpcGaTAJJDLL$oJS`3%wyA`(U0;%W zuwde(wR#ShQnNW@QqGAPY)$2hSyHjtctXj&7#{J?TT@;fc`#*%CWl(W1*1e|jwOeu zUdf*!7HzUyLqIQJ`@Z{ZM|W<0{Yxi+rRdtXS&M(2*nM|KqYDGW%k`>7J&JahKtA_$ L^>bP0l+XkK@dT(q literal 0 HcmV?d00001 diff --git a/bin/themes/windows/images/searchbar-provider-bg.png b/bin/themes/windows/images/searchbar-provider-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..e9ac2e3e1594545d6d5c59f144e9eac7c6a8ebaa GIT binary patch literal 230 zcmVPx#ph-kQR7l6wkvk59Aq;~J%GB$zvU4UjBnHmMz(WkALt3e7yOmV>J&=gOpX`{F z5;R2sy!T4(wN{dC@2!}C!3@@LXE4ds@dp?d%6i;@S*IdqlA#Bz2QjEnx?oJHr&dIz4a*91&978Nl zzrDDTmsOF6IY9l?3?BF6H6k1?jq4w{73}-6)LVF!`s|3cqOUj^mWnLAQQiOB>Uqax zA(a(EoX7532`k8Oe*UMqa<%`l*r+e{ua>LctzN%10le&w0?ffhK j91AUuaWJek&Ar4vJIAE|)id2(p!E!%u6{1-oD!M<<$6X> literal 0 HcmV?d00001 diff --git a/bin/themes/windows/images/siteicon-secure-bg.png b/bin/themes/windows/images/siteicon-secure-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..98ea3c57f579971133052657ac23cd91cd7d93ea GIT binary patch literal 346 zcmV-g0j2(lP)Px#32;bRa{vGf6951U69E94oEQKA0RKruK~y-)t(C!!gD?z4-_WS{{!2fHkK@L# z^-xvfv=XW^djLuo99G>8hiL3L!`QJEbzMj8F9B`aR%9H8Ax-G+dnw2mf!VG^PIKm* zrel^%K|*+;*sPJ$IIUcjlw#)eWtILMI}f&4NDtBnK2mBs0k*|wO1`~Uy|07*qoM6N<$f5q&0Xr$d zgtQ3bf{2Cp6WkJfc>xd4dd$ugCBDbVsLzuk>D(icOmp~-O=nsFEF%ShCsq}JS@<*w zxj|n*pWyoY)D@=Z_CTLzAszMzt9tqw7-N7(8UZY8 z7t7WMR7*Bfk6>!lH)C{du}N(bmDU6l-*1!5Tg?F!J8AE<895hFcq5g1*!aKY5AtqQ zv0$l9X?nL&XRf6Fh!^OVHF_C)t+xc>5p|jI+Q-TWz1y-c>;C;*e^y!ZLuM>X@H)kC nL%rDKXBmrpCI%u0ZawxJqdweB)s!Q600000NkvXXu0mjfttl5- literal 0 HcmV?d00001 diff --git a/bin/themes/windows/images/star.png b/bin/themes/windows/images/star.png new file mode 100644 index 0000000000000000000000000000000000000000..51c9fbc8308e19a0c225c267bc283739581017be GIT binary patch literal 821 zcmV-51Iqk~P)z@+d5dES^8f$L)i_`Tzg|t4TybRCwBAeD&%T!>(Ps7+6_Z8N$NC7?8ojg$u8K z|NfmfBO^l{$o&ozU$<@@!~6H|86qMg7ytr@1t!SM%*?QK=~4zcIXQ;EfB%AT98gS4 zP*9NJ$dMyyjEsyEnV6Uuo;`cUz{0}90OW)90R#{ehyZawk|2pkj~+3osHiaf{Q1*W zKtO;&SXh|h_3PJeva+%aPo6wM(F_6r0mOvtWSBuf!1ws^V>=%o9|ji}7ls!vUYG&J zL_l&NH86D`8X$m}paT3r1>8W)36x;ovSo`K(D`yOgE=`lMK*5S=m}KE4B|r73V^%~ z5I~HF4jq~gbXo||&)?s^eftL}`19k(k7Cu;)m+G~>+0(Ip{S_%9B2Ut$eSL1F*_!~`@AWFo_#KYthu3=Ecn*th`5 zD~5)KD?n;N>Og#e0Ac`|1jomZAD_Hr$&&w{K7GO(Xe(E){0~f(bCLA`1Q3b=)22;( z080^mX^Nt<;$1l zAVXo%2THO)#km?98V4_4yyzGg7uO5Z1Q1{VnXiz_WeU?{00000NkvXXu0mjf*lt++ literal 0 HcmV?d00001 diff --git a/bin/themes/windows/images/tabs-bg.png b/bin/themes/windows/images/tabs-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..9b5f0754160abc1f3bcde0115eafa0edf45f3fa1 GIT binary patch literal 162 zcmeAS@N?(olHy`uVBq!ia0vp^96&71!2~4F=|{cPx$j7da6R9M69m9dUeK@^6+b7o*o1Pz6^@)7I}G1t<_Ti94zm{|G%zQQ)!TQ9|C zTN5xo1{D;D7>LEpv49K08jHDRtMgBJCtuDvb7wvo-+nV%M$D`=B(_C}K+G*EiV$bB z8DFOpHk(a(JJZR8x_-%%swx5mg}B{r==FN6zOTxvh(ZL&Ig@fOn~CWjVvx!hbdVz? z=fYDmYuYhVA;e$@F%!(B^ml6@R^HB`lKmt8Ha+mmlU*DJ0rKQR~# z2qBPCV!2%M=IsZ1{l|xW4dH&)RnGV^Gds9m2 zuC2Sv42&+rdcRG&jo6> zdx6fssr&&6q3i<69uicDLCYXbC8CNJLgZM95=+}r{hu=tA!^|*ZjN|-{kfgIs;AG| z3eYv`8g-4jMqQ(>QP-$z)HUiFb&a}4U8Am1kH_Qjcs%!%-#-<9GMmF+-T(jq07*qo IM6N<$f*=IEGl9 zetXG~?|=aZvxD`c|Nd*O$~cx}Kjv|f-6gVZj)8NETTkQh8G91naVcJ~o#YXprz2=v zHRn1DuMulKn=&hdnzYDDd)*%kmIs}lcD0B(?(Pg_^ToRIvoCCsnhLan!PC{xWt~$( F696=AGjjj{ literal 0 HcmV?d00001 diff --git a/bin/themes/windows/images/transp.png b/bin/themes/windows/images/transp.png new file mode 100644 index 0000000000000000000000000000000000000000..c55289094276d6f759ba424d90b3b3b431478b42 GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k92}K#X;^)4C~IxyaaOClDyqr82*9a zYl$mOKoQOYkH}&M2Eh#=%y>fmYY0$~y~NYkmHj3MI|rMJ0Y}>fpb)R8i(?4K_2dK~ Y0CHIw7~?)`SpiuLp00i_>zopr0ACWtooo)Zv+OeHowY6&Nqt=z}wm!Pzii+S0f~cr~pu8;VC<_7t zqP*n&)J=ehJVfLbkf%Hol7QhA2?T^h!z%=YBscfllPfr)0e5HHZf3qo?mc(T=llEp z&iS4D4uE%lO8unp|A~RneXIUXBp@pKzZ)RXUlVn9hkvdmzkUBz18!dI)vjJ_FTdbC zc6e+VFY&vFy!6~=aPovm&S;QFCROsT+wUK3ytbVxabBwpw%l^|M;mZI$NtEjKof6P zb=2{s=o=WruxbkG=Q^mTC`{{UOzD8}DLpE0C!;cG7uo|hA<5kaoI)}DBFb8ho?##S z!3I3eu@@1zLv|j2WI&;UMyrRO1|v!j=!mowFim7IAbli6%;7DVNZ)~I+s)`~6+xk< zA(2m`ptc_uf{PmtyRcV$F9QVrLE!cLBB^YMz-Z6}O3%WHv>GLJ!?&R8x5s3+E#&Q? zxaGPRT}k^;<*^>6sbNq~0#7G^!Erz~N<$!>KsbvxV&lyE^MVEp@R-Chk$Pepg!Mu* zaD%iu9jKuMpnn&c`72P;?YQT=2K5np@#OkOq?|T`T&cn{0#~SkfpHqLF_NJX8qK|v z2uW!evp&W8-Mj{TujFKojZe*m6Y^~IYE>_^Jyr}@-?IZPoXsc?G6ix?arfkU2r7$T zL{HK`prX(-s=?zS4Z4(CbSU+xYE$8~@BK2P21w0K_(Iu>l+VC58V%ILN>Xo%sr|%+ z5~Ghyp%R;*uVM@0?N&pXZH0QzRmctT#L%Q3{6R79h|^IcYer=+9~FkaHmiZe7{Dbqd$0sx|Ypx?uS@T15-e+S(A!inzhI}bHuRvD23v9Q)p*7VO zs;G5{wc7|;kBp?ALZaw8f*U-MB8mow7>TY8Lnc2TwY>un$|;nI$Km2zSoVei*6q4y zI*NW-?-70(I{XfyBftjjao$h}8lfSpenLHnl4xgCM_2@Pu?Yu3NDh;XmH26c6 zvVdFmG4N!=5RmBk12pRUX~gDtWB*B($s7Y2*-c|wLZ02{e9PZLXz?2e>{g=o;HM}u zT@Ix}ffSeB=)HRy+PJ?kd%j)R%q+YoDlHoOB*<^CMqsHQ966To$T@`!K|QKvG%9*% zly%c6c}ydr_zBEUvQEu05S3Uim>^w+X);72Z!6U7_ywxBy$9}=#VED;0y%z8Xo|N3 zvUY&$v<`*w!RRO3Ofn2SdI~1O#wRbLeAq|NfGLzqX_U^uizGBsDxSj9DgD|U1Fl|a zVSS2mro$O(J;=}bd0g_&TX9Ql^ zOTPgx=%R76Y6#ZuS#fg=xSVBwl3mzJO=|Q^tqm=9k~mTJ$6Uh%%3_QP+7^ohBjb|?VjYj0;$@Z*j?8UHJOW5rJ6} z4Mtk8(Z(OQRFnUv#!UJpG|IW1S|;s=$X^}XdxG`h)lA7tIHyIAD6SHRyz)y-kFplc zYkA*W7tU9rU~;0BNc2q24QYRMY|n9)ZA5-Q1J4jqh)Fx1?Tc0=R__=PxrT}tgZ z(u7(>6e(cuTiQb49~+y?@OhVL5z){6cCB!~eqhyx(#z!D@`beLNa&->$(0Dp5g;GyO81UJ-;`GHG%gdd=SQhiu%8&QG4Q|lV&rH7jr@3#zA-CkmC%(;u z-Fdchzf;^JlRe+2uiRi|HS^qO-^akq5)dt(FYP}getActiveProfil()+"settings.ini", QSettings::IniFormat); + QSettings settings(mApp->getActiveProfilPath()+"settings.ini", QSettings::IniFormat); settings.beginGroup("AdBlock"); m_enabled = settings.value("enabled", m_enabled).toBool(); settings.endGroup(); @@ -116,7 +116,7 @@ void AdBlockManager::save() return; m_subscription->saveRules(); - QSettings settings(mApp->getActiveProfil()+"settings.ini", QSettings::IniFormat); + QSettings settings(mApp->getActiveProfilPath()+"settings.ini", QSettings::IniFormat); settings.beginGroup(QLatin1String("AdBlock")); settings.setValue(QLatin1String("enabled"), m_enabled); settings.endGroup(); diff --git a/src/adblock/adblocksubscription.cpp b/src/adblock/adblocksubscription.cpp index 86262efe2..6d0159e94 100644 --- a/src/adblock/adblocksubscription.cpp +++ b/src/adblock/adblocksubscription.cpp @@ -56,7 +56,7 @@ AdBlockSubscription::AdBlockSubscription(QObject* parent) void AdBlockSubscription::loadRules() { - QString fileName = mApp->getActiveProfil()+"adblocklist.txt"; + QString fileName = mApp->getActiveProfilPath()+"adblocklist.txt"; QFile file(fileName); if (file.exists()) { @@ -109,7 +109,7 @@ void AdBlockSubscription::rulesDownloaded() if (response.isEmpty()) return; - QString fileName = mApp->getActiveProfil()+"adblocklist.txt"; + QString fileName = mApp->getActiveProfilPath()+"adblocklist.txt"; QFile file(fileName); if (!file.open(QFile::WriteOnly)) { qWarning() << "AdBlockSubscription::" << __FUNCTION__ << "Unable to open adblock file for writing:" << fileName; @@ -139,7 +139,7 @@ void AdBlockSubscription::rulesDownloaded() void AdBlockSubscription::saveRules() { - QString fileName = mApp->getActiveProfil()+"adblocklist.txt"; + QString fileName = mApp->getActiveProfilPath()+"adblocklist.txt"; QFile file(fileName); if (!file.open(QFile::ReadWrite | QIODevice::Truncate)) { diff --git a/src/app/mainapplication.cpp b/src/app/mainapplication.cpp index ccd84ad11..eab33a6c9 100644 --- a/src/app/mainapplication.cpp +++ b/src/app/mainapplication.cpp @@ -65,6 +65,10 @@ MainApplication::MainApplication(const QList &cm #else DATADIR = qApp->applicationDirPath()+"/"; #endif + PLUGINSDIR = DATADIR + "plugins/"; + TRANSLATIONSDIR = DATADIR + "locale/"; + THEMESDIR = DATADIR + "themes/"; + setWindowIcon(QIcon(":/icons/qupzilla.png")); bool noAddons = false; QUrl startUrl(""); @@ -168,6 +172,36 @@ MainApplication::MainApplication(const QList &cm void MainApplication::loadSettings() { QSettings settings(m_activeProfil+"settings.ini", QSettings::IniFormat); + settings.beginGroup("Themes"); + QString activeTheme = settings.value("activeTheme", "default").toString(); + settings.endGroup(); + m_activeThemePath = THEMESDIR + activeTheme + "/"; + QFile cssFile(m_activeThemePath + "main.css"); + cssFile.open(QFile::ReadOnly); + QString css = cssFile.readAll(); + cssFile.close(); +#ifdef Q_WS_X11 + if (QFile(m_activeThemePath + "linux.css").exists()) { + cssFile.setFileName(m_activeThemePath + "linux.css"); + cssFile.open(QFile::ReadOnly); + css.append(cssFile.readAll()); + cssFile.close(); + } +#endif +#ifdef Q_WS_WIN + if (QFile(m_activeThemePath + "windows.css").exists()) { + cssFile.setFileName(m_activeThemePath + "windows.css"); + cssFile.open(QFile::ReadOnly); + css.append(cssFile.readAll()); + cssFile.close(); + } +#endif + + QString relativePath = QDir::current().relativeFilePath(m_activeThemePath); + css.replace(QRegExp("url\\s*\\(\\s*([^\\*:\\);]+)\\s*\\)", Qt::CaseSensitive, QRegExp::RegExp2), + QString("url(%1\\1)").arg(relativePath + "/")); + setStyleSheet(css); + webSettings(); //Web browsing settings settings.beginGroup("Web-Browser-Settings"); @@ -322,15 +356,15 @@ void MainApplication::translateApp() QString file = settings.value("language",locale.name()+".qm").toString(); QString shortLoc = file.left(2); - if (file == "" || !QFile::exists(DATADIR+"locale/"+file) ) + if (file == "" || !QFile::exists(TRANSLATIONSDIR + file) ) return; QTranslator* app = new QTranslator(); app->load(DATADIR+"locale/"+file); QTranslator* sys = new QTranslator(); - if (QFile::exists(DATADIR+"locale/qt_"+shortLoc+".qm")) - sys->load(DATADIR+"locale/qt_"+shortLoc+".qm"); + if (QFile::exists(TRANSLATIONSDIR + "qt_" + shortLoc + ".qm")) + sys->load(TRANSLATIONSDIR + "qt_" + shortLoc + ".qm"); m_activeLanguage = file; @@ -366,7 +400,7 @@ void MainApplication::quitApplication() m_networkmanager->saveCertExceptions(); m_plugins->c2f_saveSettings(); AdBlockManager::instance()->save(); - QFile::remove(getActiveProfil() + "WebpageIcons.db"); + QFile::remove(getActiveProfilPath() + "WebpageIcons.db"); // qDebug() << "Quitting application..."; quit(); @@ -550,7 +584,6 @@ bool MainApplication::restoreStateSlot(QupZilla* window) window->restoreState(qMainWindowState); if (windowCount > 1) { - qDebug() << windowCount; for (int i = 1; i < windowCount; i++) { stream >> tabState; stream >> qMainWindowState; diff --git a/src/app/mainapplication.h b/src/app/mainapplication.h index 0c9f519cf..b420a19ab 100644 --- a/src/app/mainapplication.h +++ b/src/app/mainapplication.h @@ -52,6 +52,9 @@ class MainApplication : public QtSingleApplication public: QString DATADIR; + QString PLUGINSDIR; + QString TRANSLATIONSDIR; + QString THEMESDIR; explicit MainApplication(const QList &cmdActions, int &argc, char **argv); enum MessageType{ SetAdBlockIconEnabled, CheckPrivateBrowsing, ReloadSettings, HistoryStateChanged, BookmarksChanged }; @@ -65,7 +68,7 @@ public: bool isStateChanged(); inline static MainApplication* getInstance() { return static_cast(QCoreApplication::instance()); } - inline QString getActiveProfil() { return m_activeProfil; } + inline QString getActiveProfilPath() { return m_activeProfil; } inline QString getActiveLanguage() { return m_activeLanguage; } inline bool isClosing() { return m_isClosing; } inline bool isExited() { return m_isExited; } @@ -131,6 +134,7 @@ private: QString m_activeProfil; QString m_activeLanguage; + QString m_activeThemePath; bool m_isClosing; bool m_isStateChanged; diff --git a/src/app/qupzilla.cpp b/src/app/qupzilla.cpp index 10256378c..6b22e641a 100644 --- a/src/app/qupzilla.cpp +++ b/src/app/qupzilla.cpp @@ -54,8 +54,9 @@ #include "statusbarmessage.h" #include "locationbarsettings.h" #include "browsinglibrary.h" +#include "navigationbar.h" -const QString QupZilla::VERSION = "1.0.0-b3"; +const QString QupZilla::VERSION = "1.0.0-b4"; //const QString QupZilla::BUILDTIME = QLocale(QLocale::English).toDateTime(__DATE__" "__TIME__, "MMM d yyyy hh:mm:ss").toString("MM/dd/yyyy hh:ss"); const QString QupZilla::BUILDTIME = __DATE__" "__TIME__; const QString QupZilla::AUTHOR = "nowrep"; @@ -74,13 +75,14 @@ QupZilla::QupZilla(bool tryRestore, QUrl startUrl) : ,m_sideBar(0) ,m_statusBarMessage(new StatusBarMessage(this)) { + setObjectName("mainwindow"); setAttribute(Qt::WA_DeleteOnClose); this->resize(640,480); this->setWindowState(Qt::WindowMaximized); this->setWindowTitle("QupZilla"); setUpdatesEnabled(false); - m_activeProfil = mApp->getActiveProfil(); + m_activeProfil = mApp->getActiveProfilPath(); m_activeLanguage = mApp->getActiveLanguage(); QDesktopServices::setUrlHandler("http", this, "loadAddress"); @@ -150,74 +152,24 @@ void QupZilla::postLaunch() void QupZilla::setupUi() { QWidget* widget = new QWidget(this); + setCentralWidget(widget); + m_mainLayout = new QVBoxLayout(widget); m_mainLayout->setContentsMargins(0,0,0,0); m_mainLayout->setSpacing(0); - setCentralWidget(widget); + m_mainSplitter = new QSplitter(this); + m_mainSplitter->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding); m_tabWidget = new TabWidget(this); - m_mainLayout->addWidget(m_tabWidget); - - m_navigation = new QToolBar(this); - m_navigation->setWindowTitle(tr("Navigation")); - m_navigation->setObjectName("Navigation bar"); - addToolBar(m_navigation); - m_navigation->setMovable(false); - m_navigation->setStyleSheet("QToolBar{background-image:url(:icons/transp.png); border:none;}"); - - m_buttonBack = new QAction(QIcon(":/icons/navigation/zpet.png"),tr("Back"),this); - m_buttonBack->setEnabled(false); - m_buttonNext = new QAction(QIcon(":/icons/navigation/vpred.png"),tr("Forward"),this); - m_buttonNext->setEnabled(false); - m_buttonStop = new QAction(QIcon(":/icons/navigation/stop.png"),tr("Stop"),this); - m_buttonReload = new QAction(QIcon(":/icons/navigation/reload.png"),tr("Reload"),this); - m_buttonReload->setShortcut(QKeySequence("F5")); - m_buttonHome = new QAction(QIcon(":/icons/navigation/home.png"),tr("Home"),this); - - m_menuBack = new QMenu(); - m_buttonBack->setMenu(m_menuBack); - connect(m_menuBack, SIGNAL(aboutToShow()),this, SLOT(aboutToShowHistoryBackMenu())); - - m_menuForward = new QMenu(); - m_buttonNext->setMenu(m_menuForward); - connect(m_menuForward, SIGNAL(aboutToShow()),this, SLOT(aboutToShowHistoryNextMenu())); - - m_supMenu = new QToolButton(this); - m_supMenu->setPopupMode(QToolButton::InstantPopup); - m_supMenu->setIcon(QIcon(":/icons/qupzilla.png")); - m_supMenu->setToolTip(tr("Main Menu")); m_superMenu = new QMenu(this); - m_supMenu->setMenu(m_superMenu); - - m_navigation->addAction(m_buttonBack); - m_navigation->addAction(m_buttonNext); - m_navigation->addAction(m_buttonReload); - m_navigation->addAction(m_buttonStop); - m_navigation->addAction(m_buttonHome); - - m_searchLine = new WebSearchBar(this); - - m_navigationSplitter = new QSplitter(m_navigation); - m_navigationSplitter->addWidget(m_tabWidget->locationBars()); - m_navigationSplitter->addWidget(m_searchLine); - - m_navigationSplitter->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Maximum); - m_navigationSplitter->setCollapsible(0, false); - - m_navigation->addWidget(m_navigationSplitter); - int splitterWidth = m_navigationSplitter->width(); - QList sizes; - sizes << (int)((double)splitterWidth * .75) << (int)((double)splitterWidth * .25); - m_navigationSplitter->setSizes(sizes); - - m_actionExitFullscreen = new QAction(tr("Exit Fullscreen"),this); - m_actionExitFullscreen->setVisible(false); - QWidget* _spacer = new QWidget(); - _spacer->setMinimumWidth(4); - m_navigation->addWidget(_spacer); //Elegant spacer -,- - m_navigation->addAction(m_actionExitFullscreen); - m_navigation->addWidget(m_supMenu); - m_navigation->setContextMenuPolicy(Qt::CustomContextMenu); + m_navigationBar = new NavigationBar(this); + m_bookmarksToolbar = new BookmarksToolbar(this); + m_mainSplitter->addWidget(m_tabWidget); + m_mainLayout->addWidget(m_navigationBar); + m_mainLayout->addWidget(m_bookmarksToolbar); + m_mainLayout->addWidget(m_mainSplitter); + m_mainSplitter->setCollapsible(0, false); + statusBar()->setObjectName("mainwindow-statusbar"); m_progressBar = new ProgressBar(statusBar()); m_privateBrowsing = new QLabel(this); m_privateBrowsing->setPixmap(QPixmap(":/icons/locationbar/privatebrowsing.png")); @@ -225,21 +177,18 @@ void QupZilla::setupUi() m_privateBrowsing->setToolTip(tr("Private Browsing Enabled")); m_adblockIcon = new AdBlockIcon(this); m_ipLabel = new QLabel(this); - m_ipLabel->setStyleSheet("padding-right: 5px;"); + m_ipLabel->setObjectName("statusbar-ip-label"); m_ipLabel->setToolTip(tr("IP Address of current page")); statusBar()->insertPermanentWidget(0, m_progressBar); statusBar()->insertPermanentWidget(1, m_ipLabel); statusBar()->insertPermanentWidget(2, m_privateBrowsing); statusBar()->insertPermanentWidget(3, m_adblockIcon); - - m_bookmarksToolbar = new BookmarksToolbar(this); - addToolBar(m_bookmarksToolbar); - insertToolBarBreak(m_bookmarksToolbar); } void QupZilla::setupMenu() { + menuBar()->setObjectName("mainwindow-menubar"); m_menuTools = new QMenu(tr("Tools")); m_menuHelp = new QMenu(tr("Help")); m_menuBookmarks = new QMenu(tr("Bookmarks")); @@ -312,7 +261,7 @@ void QupZilla::setupMenu() #endif , tr("&Reload"), this); connect(m_actionReload, SIGNAL(triggered()), this, SLOT(reload())); - m_actionReload->setShortcut(QKeySequence("Ctrl+R")); + m_actionReload->setShortcut(QKeySequence("F5")); QAction* actionEncoding = new QAction(tr("Character &Encoding"), this); m_menuEncoding = new QMenu(this); actionEncoding->setMenu(m_menuEncoding); @@ -370,13 +319,6 @@ void QupZilla::setupMenu() aboutToShowToolsMenu(); aboutToShowHelpMenu(); - connect(m_buttonBack, SIGNAL(triggered()), this, SLOT(goBack())); - connect(m_buttonNext, SIGNAL(triggered()), this, SLOT(goNext())); - connect(m_buttonStop, SIGNAL(triggered()), this, SLOT(stop())); - connect(m_buttonReload, SIGNAL(triggered()), this, SLOT(reload())); - connect(m_buttonHome, SIGNAL(triggered()), this, SLOT(goHome())); - connect(m_actionExitFullscreen, SIGNAL(triggered(bool)), this, SLOT(fullScreen(bool))); - m_actionRestoreTab = new QAction(QIcon::fromTheme("user-trash"),tr("Restore &Closed Tab"), this); m_actionRestoreTab->setShortcut(QKeySequence("Ctrl+Shift+T")); connect(m_actionRestoreTab, SIGNAL(triggered()), m_tabWidget, SLOT(restoreClosedTab())); @@ -404,18 +346,6 @@ void QupZilla::setupMenu() m_superMenu->addMenu(m_menuHelp); } -void QupZilla::setBackground(QColor textColor) -{ - QString color = textColor.name(); - setStyleSheet("QMainWindow { background-image: url("+m_activeProfil+"background.png); background-position: top right; } QToolBar{background-image:url(:icons/transp.png); border:none;}" - "QMenuBar{color:"+color+";background-image:url(:icons/transp.png); border:none;} QStatusBar{background-image:url(:icons/transp.png); border:none; color:"+color+";}" - "QMenuBar:item{spacing: 5px; padding: 2px 6px;background: transparent;}" - "QMenuBar::item:pressed { background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0 lightgray, stop:1 darkgray); border: 1px solid darkgrey; border-top-left-radius: 4px;border-top-right-radius: 4px; border-bottom: none;}" - ); - m_navigation->setStyleSheet("QSplitter::handle{background-color:transparent;}"); - -} - void QupZilla::loadSettings() { QSettings settings(m_activeProfil+"settings.ini", QSettings::IniFormat); @@ -432,15 +362,13 @@ void QupZilla::loadSettings() //Browser Window settings settings.beginGroup("Browser-View-Settings"); m_menuTextColor = settings.value("menuTextColor", QColor(Qt::black)).value(); - setBackground(m_menuTextColor); - m_bookmarksToolbar->setColor(m_menuTextColor); - m_ipLabel->setStyleSheet("QLabel {color: "+m_menuTextColor.name()+";}"); bool showStatusBar = settings.value("showStatusBar",true).toBool(); bool showHomeIcon = settings.value("showHomeButton",true).toBool(); bool showBackForwardIcons = settings.value("showBackForwardButtons",true).toBool(); bool showBookmarksToolbar = settings.value("showBookmarksToolbar",true).toBool(); bool showNavigationToolbar = settings.value("showNavigationToolbar",true).toBool(); bool showMenuBar = settings.value("showMenubar",true).toBool(); + bool showAddTab = settings.value("showAddTabButton", true).toBool(); bool makeTransparent = settings.value("useTransparentBackground",false).toBool(); QString activeSideBar = settings.value("SideBar", "None").toString(); settings.endGroup(); @@ -450,13 +378,14 @@ void QupZilla::loadSettings() statusBar()->setVisible(showStatusBar); m_bookmarksToolbar->setVisible(showBookmarksToolbar); - m_navigation->setVisible(showNavigationToolbar); + m_navigationBar->setVisible(showNavigationToolbar); menuBar()->setVisible(showMenuBar); - m_navigation->actions().at(m_navigation->actions().count() - 1)->setVisible(!showMenuBar); - m_buttonHome->setVisible(showHomeIcon); - m_buttonBack->setVisible(showBackForwardIcons); - m_buttonNext->setVisible(showBackForwardIcons); + m_navigationBar->buttonSuperMenu()->setVisible(!showMenuBar); + m_navigationBar->buttonHome()->setVisible(showHomeIcon); + m_navigationBar->buttonBack()->setVisible(showBackForwardIcons); + m_navigationBar->buttonNext()->setVisible(showBackForwardIcons); + m_navigationBar->buttonAddTab()->setVisible(showAddTab); if (activeSideBar != "None") { if (activeSideBar == "Bookmarks") @@ -523,76 +452,6 @@ void QupZilla::receiveMessage(MainApplication::MessageType mes, bool state) } } -void QupZilla::refreshHistory() -{ - if (mApp->isClosing()) - return; - - QWebHistory* history = weView()->page()->history(); - m_buttonBack->setEnabled(history->canGoBack()); - m_buttonNext->setEnabled(history->canGoForward()); -} - -void QupZilla::goAtHistoryIndex() -{ - if (QAction* action = qobject_cast(sender())) { - weView()->page()->history()->goToItem(weView()->page()->history()->itemAt(action->data().toInt())); - } - refreshHistory(); -} - -void QupZilla::aboutToShowHistoryBackMenu() -{ - if (!m_menuBack || !weView()) - return; - m_menuBack->clear(); - QWebHistory* history = weView()->history(); - int curindex = history->currentItemIndex(); - int count = 0; - - for (int i = curindex-1; i >= 0; i--) { - QWebHistoryItem item = history->itemAt(i); - if (item.isValid()) { - QString title = item.title(); - if (title.length() > 40) { - title.truncate(40); - title += ".."; - } - QAction* action = m_menuBack->addAction(_iconForUrl(item.url()),title, this, SLOT(goAtHistoryIndex())); - action->setData(i); - count++; - } - if (count == 20) - break; - } -} - -void QupZilla::aboutToShowHistoryNextMenu() -{ - if (!m_menuForward || !weView()) - return; - m_menuForward->clear(); - QWebHistory* history = weView()->history(); - int curindex = history->currentItemIndex(); - int count = 0; - - for (int i = curindex+1; i < history->count(); i++) { - QWebHistoryItem item = history->itemAt(i); - if (item.isValid()) { - QString title = item.title(); - if (title.length() > 40) { - title.truncate(40); - title += ".."; - } - QAction* action = m_menuForward->addAction(_iconForUrl(item.url()),title, this, SLOT(goAtHistoryIndex())); - action->setData(i); - count++; - } - if (count == 20) - break; - } -} - void QupZilla::aboutToShowBookmarksMenu() { if (!m_bookmarksMenuChanged) @@ -779,7 +638,7 @@ void QupZilla::aboutToShowViewMenu() else m_actionStop->setEnabled(false); - m_actionShowToolbar->setChecked(m_navigation->isVisible()); + m_actionShowToolbar->setChecked(m_navigationBar->isVisible()); m_actionShowMenubar->setChecked(menuBar()->isVisible()); m_actionShowStatusbar->setChecked(statusBar()->isVisible()); m_actionShowBookmarksToolbar->setChecked(m_bookmarksToolbar->isVisible()); @@ -953,28 +812,33 @@ void QupZilla::showBookmarksToolbar() void QupZilla::showBookmarksSideBar() { - if (!m_sideBar) { - m_sideBar = new SideBar(this); - addDockWidget(Qt::LeftDockWidgetArea, m_sideBar); + addSideBar(); + + if (m_sideBar->activeWidget() != SideBar::Bookmarks) m_sideBar->showBookmarks(); - } else if (m_actionShowBookmarksSideBar->isChecked()){ - m_sideBar->showBookmarks(); - } else { + else m_sideBar->close(); - } } void QupZilla::showHistorySideBar() { - if (!m_sideBar) { - m_sideBar = new SideBar(this); - addDockWidget(Qt::LeftDockWidgetArea, m_sideBar); + addSideBar(); + + if (m_sideBar->activeWidget() != SideBar::History) m_sideBar->showHistory(); - } else if (m_actionShowHistorySideBar->isChecked()) { - m_sideBar->showHistory(); - } else { + else m_sideBar->close(); - } +} + +void QupZilla::addSideBar() +{ + if (m_sideBar) + return; + + m_sideBar = new SideBar(this); + + m_mainSplitter->insertWidget(0, m_sideBar); + m_mainSplitter->setCollapsible(0, false); } void QupZilla::showNavigationToolbar() @@ -982,8 +846,8 @@ void QupZilla::showNavigationToolbar() if (!menuBar()->isVisible() && !m_actionShowToolbar->isChecked()) showMenubar(); - bool status = m_navigation->isVisible(); - m_navigation->setVisible(!status); + bool status = m_navigationBar->isVisible(); + m_navigationBar->setVisible(!status); QSettings settings(activeProfil()+"settings.ini", QSettings::IniFormat); settings.setValue("Browser-View-Settings/showNavigationToolbar", !status); @@ -991,11 +855,11 @@ void QupZilla::showNavigationToolbar() void QupZilla::showMenubar() { - if (!m_navigation->isVisible() && !m_actionShowMenubar->isChecked()) + if (!m_navigationBar->isVisible() && !m_actionShowMenubar->isChecked()) showNavigationToolbar(); menuBar()->setVisible(!menuBar()->isVisible()); - m_navigation->actions().at(m_navigation->actions().count() - 1)->setVisible(!menuBar()->isVisible()); + m_navigationBar->buttonSuperMenu()->setVisible(!menuBar()->isVisible()); QSettings settings(activeProfil()+"settings.ini", QSettings::IniFormat); settings.setValue("Browser-View-Settings/showMenubar", menuBar()->isVisible()); @@ -1038,23 +902,36 @@ void QupZilla::showInspector() } } +void QupZilla::refreshHistory() +{ + m_navigationBar->refreshHistory(); +} + void QupZilla::aboutQupZilla() { AboutDialog about(this); about.exec(); } +void QupZilla::webSearch() +{ + m_navigationBar->searchLine()->setFocus(); +} + void QupZilla::searchOnPage() { - if (m_mainLayout->count() == 2) { - SearchToolBar* search = qobject_cast( m_mainLayout->itemAt(1)->widget() ); + if (m_mainLayout->count() == 4) { + SearchToolBar* search = qobject_cast( m_mainLayout->itemAt(3)->widget() ); + if (!search) + return; + search->searchLine()->setFocus(); return; } SearchToolBar* search = new SearchToolBar(this); - m_mainLayout->insertWidget(1, search); + m_mainLayout->insertWidget(3, search); search->searchLine()->setFocus(); } @@ -1069,11 +946,11 @@ void QupZilla::showNavigationWithFullscreen() { bool state; if (m_navigationVisible) - state = !m_navigation->isVisible(); + state = !m_navigationBar->isVisible(); else state = !m_tabWidget->getTabBar()->isVisible(); if (m_navigationVisible) - m_navigation->setVisible(state); + m_navigationBar->setVisible(state); m_tabWidget->getTabBar()->setVisible(state); if (m_bookmarksToolBarVisible) m_bookmarksToolbar->setVisible(state); @@ -1084,22 +961,22 @@ void QupZilla::fullScreen(bool make) if (make) { m_menuBarVisible = menuBar()->isVisible(); m_statusBarVisible = statusBar()->isVisible(); - m_navigationVisible = m_navigation->isVisible(); + m_navigationVisible = m_navigationBar->isVisible(); m_bookmarksToolBarVisible = m_bookmarksToolbar->isVisible(); setWindowState(windowState() | Qt::WindowFullScreen); menuBar()->hide(); statusBar()->hide(); bookmarksToolbar()->hide(); - m_navigation->hide(); + m_navigationBar->hide(); } else { setWindowState(windowState() & ~Qt::WindowFullScreen); menuBar()->setVisible(m_menuBarVisible); statusBar()->setVisible(m_statusBarVisible); m_bookmarksToolbar->setVisible(m_bookmarksToolBarVisible); - m_navigation->setVisible(m_navigationVisible); + m_navigationBar->setVisible(m_navigationVisible); } m_actionShowFullScreen->setChecked(make); - m_actionExitFullscreen->setVisible(make); + m_navigationBar->buttonExitFullscreen()->setVisible(make); m_tabWidget->getTabBar()->setVisible(!make); emit setWebViewMouseTracking(make); } @@ -1190,20 +1067,10 @@ bool QupZilla::quitApp() QupZilla::~QupZilla() { delete m_tabWidget; + delete m_navigationBar; delete m_privateBrowsing; delete m_adblockIcon; - delete m_menuBack; - delete m_menuForward; - delete m_searchLine; delete m_bookmarksToolbar; - delete m_buttonBack; - delete m_buttonNext; - delete m_buttonHome; - delete m_buttonStop; - delete m_buttonReload; - delete m_actionExitFullscreen; - delete m_navigationSplitter; - delete m_navigation; delete m_progressBar; if (m_webInspectorDock) { diff --git a/src/app/qupzilla.h b/src/app/qupzilla.h index b7f39dcae..6082546a8 100644 --- a/src/app/qupzilla.h +++ b/src/app/qupzilla.h @@ -19,7 +19,7 @@ #define QUPZILLA_H //Comment for release building -//#define DEVELOPING +#define DEVELOPING #ifdef QT_NO_DEBUG #ifdef DEVELOPING @@ -55,16 +55,13 @@ #include "webtab.h" #include "webview.h" #include "tabwidget.h" -#include "locationbar.h" #include "mainapplication.h" -#include "websearchbar.h" +#include "locationbar.h" class TabWidget; class WebView; class LineEdit; -class LocationBar; class SearchToolBar; -class WebSearchBar; class BookmarksToolbar; class AutoFillModel; class MainApplication; @@ -73,6 +70,8 @@ class AdBlockIcon; class SideBar; class ProgressBar; class StatusBarMessage; +class NavigationBar; +class ClickableLabel; class QupZilla : public QMainWindow { Q_OBJECT @@ -93,7 +92,6 @@ public: void installTranslator(); void loadSettings(); void showInspector(); - void setBackground(QColor textColor); void showNavigationWithFullscreen(); inline WebView* weView() const { WebTab* webTab = qobject_cast(m_tabWidget->widget(m_tabWidget->currentIndex())); if (!webTab) return 0; return webTab->view(); } @@ -102,11 +100,9 @@ public: inline TabWidget* tabWidget() { return m_tabWidget; } inline BookmarksToolbar* bookmarksToolbar() { return m_bookmarksToolbar; } inline StatusBarMessage* statusBarMessage() { return m_statusBarMessage; } + inline NavigationBar* navigationBar() { return m_navigationBar; } - inline QAction* buttonStop(){ return m_buttonStop; } - inline QAction* buttonReload(){ return m_buttonReload; } inline ProgressBar* progressBar(){ return m_progressBar; } - inline QToolBar* navigationToolbar(){ return m_navigation; } inline QString activeProfil(){ return m_activeProfil; } inline QString activeLanguage(){ return m_activeLanguage; } inline QDockWidget* inspectorDock(){ return m_webInspectorDock; } @@ -114,6 +110,7 @@ public: inline QColor menuTextColor() { return m_menuTextColor; } inline QMenu* menuHelp() { return m_menuHelp; } inline QAction* actionRestoreTab() { return m_actionRestoreTab; } + inline QMenu* superMenu() { return m_superMenu; } signals: void loadHistory(); @@ -123,7 +120,6 @@ signals: public slots: void showBookmarksToolbar(); - void refreshHistory(); void loadActionUrl(); void bookmarkPage(); void loadAddress(const QUrl &url); @@ -133,7 +129,6 @@ public slots: private slots: void postLaunch(); - void goAtHistoryIndex(); void goNext() { weView()->forward(); } void goBack() { weView()->back(); } void goHome() { loadAddress(m_homepage); } @@ -145,8 +140,6 @@ private slots: void addTab() { m_tabWidget->addView(QUrl(), tr("New tab"), TabWidget::NewTab, true); } void printPage(); - void aboutToShowHistoryBackMenu(); - void aboutToShowHistoryNextMenu(); void aboutToShowHistoryMenu(); void aboutToShowClosedTabsMenu(); void aboutToShowBookmarksMenu(); @@ -169,6 +162,7 @@ private slots: void showClearPrivateData(); void showPreferences(); + void refreshHistory(); void bookmarkAllTabs(); void newWindow() { mApp->makeNewWindow(false); } @@ -176,7 +170,7 @@ private slots: void openFile(); void savePage(); void sendLink() { QDesktopServices::openUrl(QUrl("mailto:?body="+weView()->url().toString())); } - void webSearch() { m_searchLine->setFocus(); } + void webSearch(); void copy() { QApplication::clipboard()->setText(weView()->selectedText()); } void selectAll() { weView()->selectAll(); } @@ -197,6 +191,8 @@ private: void setupUi(); void setupMenu(); + void addSideBar(); + bool m_tryRestore; bool m_historyMenuChanged; bool m_bookmarksMenuChanged; @@ -205,7 +201,7 @@ private: QUrl m_homepage; QVBoxLayout* m_mainLayout; - QToolButton* m_supMenu; + QSplitter* m_mainSplitter; QMenu* m_superMenu; QMenu* m_menuFile; QMenu* m_menuEdit; @@ -215,8 +211,6 @@ private: QMenu* m_menuBookmarks; QMenu* m_menuHistory; QMenu* m_menuClosedTabs; - QMenu* m_menuBack; - QMenu* m_menuForward; QMenu* m_menuEncoding; QAction* m_actionShowToolbar; QAction* m_actionShowBookmarksToolbar; @@ -236,22 +230,14 @@ private: QPointer m_webInspector; QPointer m_webInspectorDock; - WebSearchBar* m_searchLine; BookmarksToolbar* m_bookmarksToolbar; TabWidget* m_tabWidget; QPointer m_sideBar; StatusBarMessage* m_statusBarMessage; + NavigationBar* m_navigationBar; - QSplitter* m_navigationSplitter; - QAction* m_buttonBack; - QAction* m_buttonNext; - QAction* m_buttonHome; - QAction* m_buttonStop; - QAction* m_buttonReload; - QAction* m_actionExitFullscreen; ProgressBar* m_progressBar; QLabel* m_ipLabel; - QToolBar* m_navigation; QString m_activeProfil; QString m_activeLanguage; diff --git a/src/appicon.rc b/src/appicon.rc index 60dabe303..8f9b0f6e0 100644 --- a/src/appicon.rc +++ b/src/appicon.rc @@ -18,12 +18,12 @@ BEGIN BEGIN VALUE "CompanyName", "QupZilla Association" VALUE "FileDescription", "QupZilla Web Browser" - VALUE "FileVersion", "1.0.0.b3" + VALUE "FileVersion", "1.0.0.b4" VALUE "LegalCopyright", "Copyright (C) 2010-2011 nowrep" VALUE "InternalName", "qupzilla" VALUE "OriginalFilename", "qupzilla.exe" VALUE "ProductName", "QupZilla" - VALUE "ProductVersion", "1.0.0.b3" + VALUE "ProductVersion", "1.0.0.b4" END END BLOCK "VarFileInfo" diff --git a/src/autofill/autofillmodel.cpp b/src/autofill/autofillmodel.cpp index d28697d52..ec407ee0a 100644 --- a/src/autofill/autofillmodel.cpp +++ b/src/autofill/autofillmodel.cpp @@ -31,7 +31,7 @@ AutoFillModel::AutoFillModel(QupZilla* mainClass, QObject* parent) : void AutoFillModel::loadSettings() { - QSettings settings(mApp->getActiveProfil()+"settings.ini", QSettings::IniFormat); + QSettings settings(mApp->getActiveProfilPath()+"settings.ini", QSettings::IniFormat); settings.beginGroup("Web-Browser-Settings"); m_isStoring = settings.value("AutoFillForms",true).toBool(); settings.endGroup(); diff --git a/src/autofill/autofillnotification.cpp b/src/autofill/autofillnotification.cpp index 087d3c230..eefae6513 100644 --- a/src/autofill/autofillnotification.cpp +++ b/src/autofill/autofillnotification.cpp @@ -22,7 +22,7 @@ #include "animatedwidget.h" AutoFillNotification::AutoFillNotification(QUrl url, QByteArray data, QString pass, QWidget* parent) - :AnimatedWidget(AnimatedWidget::Down, parent) + :AnimatedWidget(AnimatedWidget::Down, 300, parent) ,ui(new Ui::AutoFillWidget) ,m_url(url) ,m_data(data) diff --git a/src/bookmarks/bookmarkicon.cpp b/src/bookmarks/bookmarkicon.cpp index 7c339e55c..93342abf8 100644 --- a/src/bookmarks/bookmarkicon.cpp +++ b/src/bookmarks/bookmarkicon.cpp @@ -9,9 +9,8 @@ BookmarkIcon::BookmarkIcon(QupZilla* mainClass, QWidget* parent) , p_QupZilla(mainClass) , m_bookmarksModel(0) { - setPixmap(QPixmap(":/icons/locationbar/starg.png")); + setObjectName("locationbar-bookmarkicon"); setCursor(Qt::PointingHandCursor); - setStyleSheet("margin-bottom: 2px;"); setToolTip(tr("Bookmark this Page")); setFocusPolicy(Qt::ClickFocus); @@ -56,3 +55,19 @@ void BookmarkIcon::bookmarkAdded(const BookmarksModel::Bookmark &bookmark) if (bookmark.url == m_lastUrl) setBookmarkSaved(); } + +void BookmarkIcon::setBookmarkSaved() +{ + setProperty("bookmarked", true); + style()->unpolish(this); + style()->polish(this); + setToolTip(tr("Edit this bookmark")); +} + +void BookmarkIcon::setBookmarkDisabled() +{ + setProperty("bookmarked", false); + style()->unpolish(this); + style()->polish(this); + setToolTip(tr("Bookmark this Page")); +} diff --git a/src/bookmarks/bookmarkicon.h b/src/bookmarks/bookmarkicon.h index 16abbd867..e302d336d 100644 --- a/src/bookmarks/bookmarkicon.h +++ b/src/bookmarks/bookmarkicon.h @@ -24,17 +24,9 @@ private slots: void bookmarkDeleted(const BookmarksModel::Bookmark &bookmark); private: - inline void setBookmarkSaved() - { - setPixmap(QPixmap(":/icons/locationbar/star.png")); - setToolTip(tr("Edit this bookmark")); - } + void setBookmarkSaved(); + void setBookmarkDisabled(); - inline void setBookmarkDisabled() - { - setPixmap(QPixmap(":/icons/locationbar/starg.png")); - setToolTip(tr("Bookmark this Page")); - } QupZilla* p_QupZilla; BookmarksModel* m_bookmarksModel; diff --git a/src/bookmarks/bookmarksmanager.ui b/src/bookmarks/bookmarksmanager.ui index 025f25138..a176a2899 100644 --- a/src/bookmarks/bookmarksmanager.ui +++ b/src/bookmarks/bookmarksmanager.ui @@ -76,13 +76,12 @@ PointingHandCursor - - color: blue; -text-decoration: underline; - Optimize Database + + true + diff --git a/src/bookmarks/bookmarksmodel.cpp b/src/bookmarks/bookmarksmodel.cpp index b94f4834d..65bd87721 100644 --- a/src/bookmarks/bookmarksmodel.cpp +++ b/src/bookmarks/bookmarksmodel.cpp @@ -33,7 +33,7 @@ BookmarksModel::BookmarksModel(QObject *parent) void BookmarksModel::loadSettings() { - QSettings settings(mApp->getActiveProfil()+"settings.ini", QSettings::IniFormat); + QSettings settings(mApp->getActiveProfilPath()+"settings.ini", QSettings::IniFormat); settings.beginGroup("Web-Browser-Settings"); m_showMostVisited = settings.value("showMostVisited",true).toBool(); settings.endGroup(); @@ -41,7 +41,7 @@ void BookmarksModel::loadSettings() void BookmarksModel::setShowingMostVisited(bool state) { - QSettings settings(mApp->getActiveProfil()+"settings.ini", QSettings::IniFormat); + QSettings settings(mApp->getActiveProfilPath()+"settings.ini", QSettings::IniFormat); settings.beginGroup("Web-Browser-Settings"); settings.setValue("showMostVisited",state); settings.endGroup(); diff --git a/src/bookmarks/bookmarkstoolbar.cpp b/src/bookmarks/bookmarkstoolbar.cpp index 7eb78404a..2293c28a8 100644 --- a/src/bookmarks/bookmarkstoolbar.cpp +++ b/src/bookmarks/bookmarkstoolbar.cpp @@ -20,51 +20,40 @@ #include "bookmarksmodel.h" #include "iconprovider.h" #include "historymodel.h" +#include "toolbutton.h" BookmarksToolbar::BookmarksToolbar(QupZilla* mainClass, QWidget* parent) : - QToolBar(parent) + QWidget(parent) ,p_QupZilla(mainClass) ,m_bookmarksModel(mApp->bookmarksModel()) ,m_historyModel(mApp->history()) { - setObjectName("bookmarksToolbar"); - setWindowTitle(tr("Bookmarks")); - setStyleSheet("QToolBar{background-image:url(:icons/transp.png); border:none;}"); - setMovable(false); - setContextMenuPolicy(Qt::CustomContextMenu); + setObjectName("bookmarksbar"); + m_layout = new QHBoxLayout(); + m_layout->setContentsMargins(9, 3, 9, 3); + m_layout->setSpacing(0); + setLayout(m_layout); + setContextMenuPolicy(Qt::CustomContextMenu); connect(this, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(customContextMenuRequested(QPoint))); connect(m_bookmarksModel, SIGNAL(bookmarkAdded(BookmarksModel::Bookmark)), this, SLOT(addBookmark(BookmarksModel::Bookmark))); connect(m_bookmarksModel, SIGNAL(bookmarkDeleted(BookmarksModel::Bookmark)), this, SLOT(removeBookmark(BookmarksModel::Bookmark))); connect(m_bookmarksModel, SIGNAL(bookmarkEdited(BookmarksModel::Bookmark,BookmarksModel::Bookmark)), this, SLOT(bookmarkEdited(BookmarksModel::Bookmark,BookmarksModel::Bookmark))); - QTimer::singleShot(0, this, SLOT(refreshBookmarks())); -} - -void BookmarksToolbar::setColor(QColor color) -{ - setStyleSheet("QToolButton {color: "+color.name()+";}"); +// QTimer::singleShot(0, this, SLOT(refreshBookmarks())); + refreshBookmarks(); } void BookmarksToolbar::customContextMenuRequested(const QPoint &pos) { - if (actionAt(pos)) - return; + Q_UNUSED(pos) QMenu menu; menu.addAction(tr("&Bookmark Current Page"), p_QupZilla, SLOT(bookmarkPage())); menu.addAction(tr("Bookmark &All Tabs"), p_QupZilla, SLOT(bookmarkAllTabs())); menu.addAction(QIcon::fromTheme("user-bookmarks"), tr("&Organize Bookmarks"), p_QupZilla, SLOT(showBookmarksManager())); menu.addSeparator(); - menu.addAction( -#ifdef Q_WS_X11 - style()->standardIcon(QStyle::SP_BrowserReload) -#else - QIcon(":/icons/faenza/reload.png") -#endif - ,tr("&Reload Toolbar"), this, SLOT(refreshBookmarks())); - menu.addSeparator(); menu.addAction(m_bookmarksModel->isShowingMostVisited() ? tr("Hide Most &Visited") : tr("Show Most &Visited"), this, SLOT(showMostVisited())); menu.addAction(tr("&Hide Toolbar"), this, SLOT(hidePanel())); @@ -74,54 +63,57 @@ void BookmarksToolbar::customContextMenuRequested(const QPoint &pos) menu.exec(p); } +void BookmarksToolbar::hidePanel() +{ + p_QupZilla->showBookmarksToolbar(); +} + +void BookmarksToolbar::loadClickedBookmark() +{ + ToolButton* button = qobject_cast(sender()); + if (!button) + return; + + p_QupZilla->loadAddress(button->data().toUrl()); +} + void BookmarksToolbar::showMostVisited() { m_bookmarksModel->setShowingMostVisited(!m_bookmarksModel->isShowingMostVisited()); refreshBookmarks(); } -void BookmarksToolbar::hidePanel() -{ - p_QupZilla->showBookmarksToolbar(); -} - void BookmarksToolbar::addBookmark(const BookmarksModel::Bookmark &bookmark) { if (bookmark.folder != "bookmarksToolbar") return; - QAction* action = new QAction(this); QString title = bookmark.title; if (title.length()>15) { title.truncate(13); title+=".."; } - action->setText(title); - action->setData(bookmark.url); - action->setIcon(bookmark.icon); - QToolButton* button = new QToolButton(this); - button->setDefaultAction(action); + ToolButton* button = new ToolButton(this); + button->setText(title); + button->setData(bookmark.url); + button->setIcon(bookmark.icon); button->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); - button->setMaximumHeight(25); button->setToolTip(bookmark.url.toEncoded()); + button->setAutoRaise(true); button->setWhatsThis(bookmark.title); - connect(action, SIGNAL(triggered()), p_QupZilla, SLOT(loadActionUrl())); - insertWidget(actions().at(actions().count() - 1), button); + connect(button, SIGNAL(clicked()), this, SLOT(loadClickedBookmark())); + m_layout->insertWidget(m_layout->count() - 2, button); } void BookmarksToolbar::removeBookmark(const BookmarksModel::Bookmark &bookmark) { - foreach (QAction* act, actions()) { - QToolButton* button = qobject_cast(widgetForAction(act)); + for (int i = 0; i < m_layout->count(); i++) { + ToolButton* button = qobject_cast(m_layout->itemAt(i)->widget()); if (!button) continue; - QAction* action = button->actions().at(0); - if (!action) - continue; - - if (action->data().toUrl() == bookmark.url) { + if (button->data().toUrl() == bookmark.url) { delete button; return; } @@ -135,25 +127,21 @@ void BookmarksToolbar::bookmarkEdited(const BookmarksModel::Bookmark &before, co else if (before.folder != "bookmarksToolbar" && after.folder == "bookmarksToolbar") //Editing from other folder to toolbar folder -> Add bookmark addBookmark(after); else { //Editing bookmark already in toolbar - foreach (QAction* act, actions()) { - QToolButton* button = qobject_cast(widgetForAction(act)); + for (int i = 0; i < m_layout->count(); i++) { + ToolButton* button = qobject_cast(m_layout->itemAt(i)->widget()); if (!button) continue; - QAction* action = button->actions().at(0); - if (!action) - continue; - - if (action->data().toUrl() == before.url && button->whatsThis() == before.title) { + if (button->data().toUrl() == before.url && button->whatsThis() == before.title) { QString title = after.title; if (title.length()>15) { title.truncate(13); title+=".."; } - action->setText(title); - action->setData(after.url); - action->setIcon(after.icon); + button->setText(title); + button->setData(after.url); + button->setIcon(after.icon); button->setToolTip(after.url.toEncoded()); button->setWhatsThis(after.title); } @@ -163,7 +151,6 @@ void BookmarksToolbar::bookmarkEdited(const BookmarksModel::Bookmark &before, co void BookmarksToolbar::refreshBookmarks() { - clear(); QSqlQuery query; query.exec("SELECT title, url, icon FROM bookmarks WHERE folder='bookmarksToolbar'"); while(query.next()) { @@ -171,32 +158,31 @@ void BookmarksToolbar::refreshBookmarks() QUrl url = query.value(1).toUrl(); QIcon icon = IconProvider::iconFromBase64(query.value(2).toByteArray()); QString title_ = title; - QAction* action = new QAction(this); if (title.length()>15) { title.truncate(13); title+=".."; } - action->setText(title); - action->setData(url); - action->setIcon(icon); - QToolButton* button = new QToolButton(this); - button->setDefaultAction(action); + ToolButton* button = new ToolButton(this); + button->setText(title); + button->setData(url); + button->setIcon(icon); button->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); - button->setMaximumHeight(25); button->setToolTip(url.toEncoded()); button->setWhatsThis(title_); - connect(action, SIGNAL(triggered()), p_QupZilla, SLOT(loadActionUrl())); - addWidget(button); + button->setAutoRaise(true); + + connect(button, SIGNAL(clicked()), this, SLOT(loadClickedBookmark())); + m_layout->addWidget(button); + } if (!m_bookmarksModel->isShowingMostVisited()) return; - m_mostVis = new QToolButton(this); + m_mostVis = new ToolButton(this); m_mostVis->setPopupMode(QToolButton::InstantPopup); m_mostVis->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); - m_mostVis->setMaximumHeight(25); m_mostVis->setIcon(style()->standardIcon(QStyle::SP_DirIcon)); m_mostVis->setText(tr("Most visited")); m_mostVis->setToolTip(tr("Sites You visited the most")); @@ -205,7 +191,8 @@ void BookmarksToolbar::refreshBookmarks() m_mostVis->setMenu(m_menuMostVisited); connect(m_menuMostVisited, SIGNAL(aboutToShow()), this, SLOT(refreshMostVisited())); - addWidget(m_mostVis); + m_layout->addWidget(m_mostVis); + m_layout->addStretch(); } void BookmarksToolbar::refreshMostVisited() diff --git a/src/bookmarks/bookmarkstoolbar.h b/src/bookmarks/bookmarkstoolbar.h index b6b9a5826..23f9dcd12 100644 --- a/src/bookmarks/bookmarkstoolbar.h +++ b/src/bookmarks/bookmarkstoolbar.h @@ -18,31 +18,32 @@ #ifndef BOOKMARKSTOOLBAR_H #define BOOKMARKSTOOLBAR_H -#include #include #include +#include #include "bookmarksmodel.h" class QupZilla; class BookmarksModel; class HistoryModel; -class BookmarksToolbar : public QToolBar +class ToolButton; +class BookmarksToolbar : public QWidget { Q_OBJECT public: explicit BookmarksToolbar(QupZilla* mainClass, QWidget* parent = 0); - void setColor(QColor color); signals: public slots: void refreshBookmarks(); void refreshMostVisited(); - void hidePanel(); void showMostVisited(); private slots: + void loadClickedBookmark(); + void hidePanel(); void addBookmark(const BookmarksModel::Bookmark &bookmark); void removeBookmark(const BookmarksModel::Bookmark &bookmark); void bookmarkEdited(const BookmarksModel::Bookmark &before, const BookmarksModel::Bookmark &after); @@ -53,7 +54,8 @@ private: BookmarksModel* m_bookmarksModel; HistoryModel* m_historyModel; QMenu* m_menuMostVisited; - QToolButton* m_mostVis; + ToolButton* m_mostVis; + QHBoxLayout* m_layout; }; diff --git a/src/cookies/cookiejar.cpp b/src/cookies/cookiejar.cpp index 7a6bb5144..14852593e 100644 --- a/src/cookies/cookiejar.cpp +++ b/src/cookies/cookiejar.cpp @@ -25,7 +25,7 @@ CookieJar::CookieJar(QupZilla* mainClass, QObject* parent) : ,p_QupZilla(mainClass) { loadSettings(); - m_activeProfil = mApp->getActiveProfil(); + m_activeProfil = mApp->getActiveProfilPath(); } void CookieJar::loadSettings() diff --git a/src/cookies/cookiemanager.ui b/src/cookies/cookiemanager.ui index 036afbee5..009cb8c62 100644 --- a/src/cookies/cookiemanager.ui +++ b/src/cookies/cookiemanager.ui @@ -209,7 +209,7 @@ Remove cookie - Del + Del diff --git a/src/data/icons.qrc b/src/data/icons.qrc index a7d5685ca..842c713f0 100644 --- a/src/data/icons.qrc +++ b/src/data/icons.qrc @@ -1,10 +1,5 @@ - icons/navigation/home.png - icons/navigation/reload.png - icons/navigation/stop.png - icons/navigation/vpred.png - icons/navigation/zpet.png icons/qupzilla.png icons/qupzillaupdate.png icons/preferences/applications-accessories.png @@ -26,19 +21,11 @@ icons/preferences/extension.png icons/faenza/settings.png qupzilla.png - icons/locationbar/arrow-down.gif - icons/locationbar/gotoaddress.png - icons/locationbar/lineedit.png icons/locationbar/privatebrowsing.png - icons/locationbar/safeline.png - icons/locationbar/search.png - icons/locationbar/searchchoose.png - icons/locationbar/secure.gif icons/locationbar/unknownpage.png icons/menu/bookmark_add.png icons/menu/book_open_mark.png icons/menu/bug_magnify.png - icons/menu/circle.png icons/menu/csfd.png icons/menu/cz_seznam.png icons/menu/flash.png @@ -53,28 +40,23 @@ icons/other/about.png icons/other/feed.png icons/other/progress.gif - icons/navigation/search.gif - icons/locationbar/star.png - icons/locationbar/starg.png icons/other/bigstar.png icons/other/unsortedbookmarks.png icons/locationbar/accept.png icons/locationbar/warning.png - icons/other/flash.png - icons/other/flashstart.png icons/other/keys.png icons/other/bigrss.png icons/preferences/applications-fonts.png icons/preferences/applications-graphics.png icons/preferences/document-properties.png icons/preferences/stock_keyring.png - icons/other/list-add.png icons/other/adblock.png icons/preferences/stock_dialog-question.png icons/notifications/download.png - icons/other/background.png icons/other/bighistory.png - icons/other/library-bg-top.png - icons/other/library-bg-top-right.png + icons/menu/dot.png + icons/preferences/appereance.png + icons/preferences/style-default.png + icons/other/background.png diff --git a/src/data/icons/menu/dot.png b/src/data/icons/menu/dot.png new file mode 100644 index 0000000000000000000000000000000000000000..ffad72767dc9c7a649c0cd64a35e9c19a7ac55f2 GIT binary patch literal 516 zcmV+f0{i`mP)Px$zDYzuR5;6}lfR1cP!z;}Nz_IWL zP^(n2%L4@b13?5aL{08i>k^m!;KM10bLVnq=14*aK0)Z6@O>Z0adEl+AeBl{C={qvDpE8WB^3I3CVj8qx-R?up4n_B zlF1~hs*=rS0kABK?RLxge5T!QOYwO8=T{*Fp678oo#^-bVzpX{zpz{`#b7WH&*u{% z1VRX80LO7K3_~Om32L<(_xqjcbV{*Uq*yG{>2z=$hkCtEJRV2a^_TN9z~k}2G)**3 z17JR%vtF;UZ5!LR8I4BtdOZMCRmCt20s_A8W83y?=U%VJWHJf3y;v*&$Y!$~4u_z? zdo=$889-4K(&;poWdYD=G=2?!bCzY1$z*~(h(sdf^Le)0ExBBdZnyjL0-)J!zPQb1 zL%Cf39pm|Yrr+<2<#PGY7>C1QAjVgbp3f(@+l}#fEMl=3nx+McwApO9Uaz!Ttw52a z_ha%r4_()VVHg~bM*uRJ45duf9Xxyh0000v>(tS5~Nx_}g8age(c!@6@aFM;eko-U3d z6}R4=HxxQ#z{BD&cOFA+#wBCt^Yd5yWUgQ4;Ug4fl@@w4{q(hGMZ4!Ov-G^=8Lr>0 z`oi@6y3&u9ZwnV@-_1Sw!YlXTKc`o(SKiw$Gx_fRQW?$UQ-;OrJN=$t|9tUlzw0QV fe+Yc7-ply?GP^m0+aEDtq%(NB`njxgN@xNA01&J} literal 0 HcmV?d00001 diff --git a/src/data/icons/other/bighistory.png b/src/data/icons/other/bighistory.png new file mode 100644 index 0000000000000000000000000000000000000000..1304f0ebe6a7cb584c35c8ce240f4396542d6e5e GIT binary patch literal 3231 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 - setStyleSheet("background:transparent;"); setAttribute(Qt::WA_TranslucentBackground); setAttribute(Qt::WA_DeleteOnClose); Qt::WindowFlags flags = Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint | Qt::X11BypassWindowManagerHint; diff --git a/src/desktopnotifications/desktopnotification.ui b/src/desktopnotifications/desktopnotification.ui index 3466ff648..280a65f9b 100644 --- a/src/desktopnotifications/desktopnotification.ui +++ b/src/desktopnotifications/desktopnotification.ui @@ -13,22 +13,12 @@ - - - 0 - - #frame { -border: 2px solid darkblue; -border-radius: 20px; -background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0 #e4ecf1, stop:1 #d3e5f1); -} - QFrame::StyledPanel @@ -75,12 +65,6 @@ background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0 #e4ecf1, stop:1 0 - - QLabel { -font: bold; -font-size: 13pt; -} - diff --git a/src/desktopnotifications/desktopnotificationsfactory.cpp b/src/desktopnotifications/desktopnotificationsfactory.cpp index 4c450d446..34db41e50 100644 --- a/src/desktopnotifications/desktopnotificationsfactory.cpp +++ b/src/desktopnotifications/desktopnotificationsfactory.cpp @@ -28,7 +28,7 @@ DesktopNotificationsFactory::DesktopNotificationsFactory(QObject* parent) void DesktopNotificationsFactory::loadSettings() { - QSettings settings(mApp->getActiveProfil()+"settings.ini", QSettings::IniFormat); + QSettings settings(mApp->getActiveProfilPath()+"settings.ini", QSettings::IniFormat); settings.beginGroup("Notifications"); m_enabled = settings.value("Enabled", true).toBool(); m_timeout = settings.value("Timeout", 6000).toInt(); diff --git a/src/downloads/downloaditem.ui b/src/downloads/downloaditem.ui index b321a1f82..fa7f492a5 100644 --- a/src/downloads/downloaditem.ui +++ b/src/downloads/downloaditem.ui @@ -38,9 +38,6 @@ - - font-size: 13pt; - A Clockwork Orange.avi @@ -94,16 +91,16 @@ - - SqueezeLabelV2 - QLabel -
    squeezelabelv2.h
    -
    ClickableLabel QLabel
    clickablelabel.h
    + + SqueezeLabelV2 + QLabel +
    squeezelabelv2.h
    +
    diff --git a/src/downloads/downloadmanager.cpp b/src/downloads/downloadmanager.cpp index 0f319cf0f..6f1ed1dc4 100644 --- a/src/downloads/downloadmanager.cpp +++ b/src/downloads/downloadmanager.cpp @@ -57,7 +57,7 @@ DownloadManager::DownloadManager(QWidget* parent) : void DownloadManager::loadSettings() { - QSettings settings(mApp->getActiveProfil()+"settings.ini", QSettings::IniFormat); + QSettings settings(mApp->getActiveProfilPath()+"settings.ini", QSettings::IniFormat); settings.beginGroup("DownloadManager"); m_downloadPath = settings.value("defaultDownloadPath", "").toString(); m_lastDownloadPath = settings.value("lastDownloadPath",QDir::homePath()+"/").toString(); @@ -256,7 +256,7 @@ void DownloadManager::fileNameChoosed(const QString &name, bool fileNameAutoGene if (!m_hpath.contains(QDir::tempPath())) m_lastDownloadPath = m_hpath; - QSettings settings(mApp->getActiveProfil()+"settings.ini", QSettings::IniFormat); + QSettings settings(mApp->getActiveProfilPath()+"settings.ini", QSettings::IniFormat); settings.beginGroup("DownloadManager"); settings.setValue("lastDownloadPath",m_lastDownloadPath); settings.endGroup(); diff --git a/src/downloads/downloadmanager.ui b/src/downloads/downloadmanager.ui index 11373d389..cb183b3e1 100644 --- a/src/downloads/downloadmanager.ui +++ b/src/downloads/downloadmanager.ui @@ -41,9 +41,6 @@ - - border: none; - Qt::ScrollBarAlwaysOff diff --git a/src/history/historymanager.ui b/src/history/historymanager.ui index e306f00c1..ccd875d66 100644 --- a/src/history/historymanager.ui +++ b/src/history/historymanager.ui @@ -76,13 +76,12 @@ PointingHandCursor - - color: blue; -text-decoration: underline; - Optimize Database + + true + diff --git a/src/history/historymodel.cpp b/src/history/historymodel.cpp index 7cd66b5dc..8f5d6d4f1 100644 --- a/src/history/historymodel.cpp +++ b/src/history/historymodel.cpp @@ -30,7 +30,7 @@ HistoryModel::HistoryModel(QupZilla* mainClass, QObject* parent) void HistoryModel::loadSettings() { - QSettings settings(mApp->getActiveProfil()+"settings.ini", QSettings::IniFormat); + QSettings settings(mApp->getActiveProfilPath()+"settings.ini", QSettings::IniFormat); settings.beginGroup("Web-Browser-Settings"); m_isSaving = settings.value("allowHistory",true).toBool(); settings.endGroup(); diff --git a/src/navigation/locationbar.cpp b/src/navigation/locationbar.cpp index 62ebcd3f1..e87007c08 100644 --- a/src/navigation/locationbar.cpp +++ b/src/navigation/locationbar.cpp @@ -29,6 +29,7 @@ #include "progressbar.h" #include "statusbarmessage.h" #include "locationbarsettings.h" +#include "toolbutton.h" LocationBar::LocationBar(QupZilla* mainClass) : LineEdit() @@ -36,37 +37,30 @@ LocationBar::LocationBar(QupZilla* mainClass) ,m_webView(0) ,m_locationBarSettings(LocationBarSettings::instance()) { - m_siteIcon = new QToolButton(this); + setObjectName("locationbar"); + m_siteIcon = new ToolButton(this); + m_siteIcon->setObjectName("locationbar-siteicon"); m_siteIcon->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); m_siteIcon->setCursor(Qt::ArrowCursor); - m_siteIcon->setMaximumSize(35, 25); - m_siteIcon->setMinimumSize(35, 25); m_siteIcon->setToolTip(tr("Show informations about this page")); -#if QT_VERSION == 0x040800 - m_siteIcon->setStyleSheet("QToolButton{border-image: url(:/icons/locationbar/searchchoose.png); margin-left:2px; padding-left: 4px; }"); -#else - m_siteIcon->setStyleSheet("QToolButton{border-image: url(:/icons/locationbar/searchchoose.png); margin-left:2px;}"); -#endif m_siteIcon->setFocusPolicy(Qt::ClickFocus); m_rssIcon = new ClickableLabel(this); - m_rssIcon->setPixmap(QPixmap(":/icons/menu/rss.png")); + m_rssIcon->setObjectName("locationbar-rss-icon"); m_rssIcon->setCursor(Qt::PointingHandCursor); m_rssIcon->setToolTip(tr("Add RSS from this page...")); - m_rssIcon->setStyleSheet("margin-bottom:2px"); m_rssIcon->setFocusPolicy(Qt::ClickFocus); m_rssIcon->setVisible(false); m_goButton = new ClickableLabel(this); - m_goButton->setPixmap(QPixmap(":/icons/locationbar/gotoaddress.png")); + m_goButton->setObjectName("locationbar-goicon"); m_goButton->setCursor(Qt::PointingHandCursor); m_goButton->setHidden(true); - m_goButton->setStyleSheet("margin-bottom:2px;"); m_bookmarkIcon = new BookmarkIcon(p_QupZilla); ClickableLabel* down = new ClickableLabel(this); - down->setPixmap(QPixmap(":icons/locationbar/arrow-down.gif")); + down->setObjectName("locationbar-down-icon"); down->setCursor(Qt::ArrowCursor); addWidget(down, LineEdit::RightSide); @@ -77,8 +71,6 @@ LocationBar::LocationBar(QupZilla* mainClass) setPlaceholderText(tr("Enter URL address or search on Google.com")); setWidgetSpacing(0); - this->setMinimumHeight(25); - this->setMaximumHeight(25); m_locationCompleter = new LocationCompleter(); setCompleter(m_locationCompleter); @@ -93,10 +85,7 @@ LocationBar::LocationBar(QupZilla* mainClass) connect(m_goButton, SIGNAL(clicked(QPoint)), this, SLOT(urlEnter())); connect(m_rssIcon, SIGNAL(clicked(QPoint)), this, SLOT(rssIconClicked())); - setStyleSheet("QLineEdit { background: transparent; border-image: url(:/icons/locationbar/lineedit.png); border-width:4; color:black;}"); - setLeftMargin(33); clearIcon(); -// setLeftMargin(m_siteIcon->sizeHint().width()+1); } void LocationBar::urlEnter() @@ -138,9 +127,9 @@ void LocationBar::hideGoButton() void LocationBar::showPopup() { //TODO: Fix to next version - return; - emit textEdited(""); - m_locationCompleter->popup()->showNormal(); +// return; +// emit textEdited(""); +// m_locationCompleter->popup()->showNormal(); } void LocationBar::showSiteInfo() @@ -171,20 +160,6 @@ void LocationBar::showUrl(const QUrl &url, bool empty) setText(url.toEncoded()); setCursorPosition(0); } - -// if (m_webView->isLoading()) { -// p_QupZilla->ipLabel()->hide(); -// p_QupZilla->progressBar()->setVisible(true); -// p_QupZilla->progressBar()->setValue(m_webView->getLoading()); -// p_QupZilla->buttonStop()->setVisible(true); -// p_QupZilla->buttonReload()->setVisible(false); -// } else { -// p_QupZilla->progressBar()->setVisible(false); -// p_QupZilla->buttonStop()->setVisible(false); -// p_QupZilla->buttonReload()->setVisible(true); -// p_QupZilla->ipLabel()->show(); -// } - p_QupZilla->statusBarMessage()->clearMessage(); hideGoButton(); @@ -194,16 +169,11 @@ void LocationBar::showUrl(const QUrl &url, bool empty) void LocationBar::siteIconChanged() { -// const QPixmap* icon_ = 0; - QIcon icon_; -// if (!p_QupZilla->weView()->isLoading()) -// icon_ = p_QupZilla->weView()->animationLoading( p_QupZilla->tabWidget()->currentIndex(), false)->pixmap(); - icon_ = m_webView->siteIcon(); + QIcon icon_ = m_webView->siteIcon(); if (icon_.isNull()) { clearIcon(); } else { -// QIcon icon(*icon_); m_siteIcon->setIcon(QIcon(icon_.pixmap(16,16))); } } @@ -215,17 +185,9 @@ void LocationBar::clearIcon() void LocationBar::setPrivacy(bool state) { - QString img; - if (state) - img = "safeline.png"; - else - img = "searchchoose.png"; - -#if QT_VERSION == 0x040800 - m_siteIcon->setStyleSheet("QToolButton{border-image: url(:/icons/locationbar/"+img+"); margin-left:2px; padding-left: 4px; }"); -#else - m_siteIcon->setStyleSheet("QToolButton{border-image: url(:/icons/locationbar/"+img+"); margin-left:2px;}"); -#endif + m_siteIcon->setProperty("secured", state); + m_siteIcon->style()->unpolish(m_siteIcon); + m_siteIcon->style()->polish(m_siteIcon); } void LocationBar::focusOutEvent(QFocusEvent* e) diff --git a/src/navigation/locationbar.h b/src/navigation/locationbar.h index ef9042c19..76bc1c477 100644 --- a/src/navigation/locationbar.h +++ b/src/navigation/locationbar.h @@ -39,9 +39,14 @@ class ClickableLabel; class BookmarkIcon; class WebView; class LocationBarSettings; +class ToolButton; class LocationBar : public LineEdit { Q_OBJECT + Q_PROPERTY(QSize fixedsize READ size WRITE setFixedSize) + Q_PROPERTY(int fixedwidth READ width WRITE setFixedWidth) + Q_PROPERTY(int fixedheight READ height WRITE setFixedHeight) + public: explicit LocationBar(QupZilla* mainClass); ~LocationBar(); @@ -74,7 +79,7 @@ private: BookmarkIcon* m_bookmarkIcon; ClickableLabel* m_goButton; ClickableLabel* m_rssIcon; - QToolButton* m_siteIcon; + ToolButton* m_siteIcon; QupZilla* p_QupZilla; WebView* m_webView; diff --git a/src/navigation/locationbarsettings.cpp b/src/navigation/locationbarsettings.cpp index 808aa04d7..d55a91904 100644 --- a/src/navigation/locationbarsettings.cpp +++ b/src/navigation/locationbarsettings.cpp @@ -20,7 +20,7 @@ LocationBarSettings* LocationBarSettings::instance() void LocationBarSettings::loadSettings() { - QSettings settings(mApp->getActiveProfil()+"settings.ini", QSettings::IniFormat); + QSettings settings(mApp->getActiveProfilPath()+"settings.ini", QSettings::IniFormat); settings.beginGroup("AddressBar"); selectAllOnDoubleClick = settings.value("SelectAllTextOnDoubleClick",true).toBool(); addComWithCtrl = settings.value("AddComDomainWithCtrlKey",false).toBool(); diff --git a/src/navigation/navigationbar.cpp b/src/navigation/navigationbar.cpp new file mode 100644 index 000000000..76f422464 --- /dev/null +++ b/src/navigation/navigationbar.cpp @@ -0,0 +1,191 @@ +#include "navigationbar.h" +#include "toolbutton.h" +#include "qupzilla.h" +#include "iconprovider.h" +#include "websearchbar.h" +#include "reloadstopbutton.h" + +NavigationBar::NavigationBar(QupZilla *mainClass, QWidget *parent) + : QWidget(parent) + , p_QupZilla(mainClass) +{ + setObjectName("navigationbar"); + m_layout = new QHBoxLayout(this); + m_layout->setContentsMargins(9, 3, 9, 3); + setLayout(m_layout); + + m_buttonBack = new ToolButton(); + m_buttonBack->setObjectName("navigation-button-back"); + m_buttonBack->setToolTip(tr("Back")); + m_buttonBack->setToolButtonStyle(Qt::ToolButtonIconOnly); + m_buttonBack->setAutoRaise(true); + m_buttonBack->setEnabled(false); + + m_buttonNext = new ToolButton(); + m_buttonNext->setObjectName("navigation-button-next"); + m_buttonNext->setToolTip(tr("Forward")); + m_buttonNext->setToolButtonStyle(Qt::ToolButtonIconOnly); + m_buttonNext->setAutoRaise(true); + m_buttonNext->setEnabled(false); + + QHBoxLayout* backNextLayout = new QHBoxLayout(); + backNextLayout->setSpacing(0); + backNextLayout->addWidget(m_buttonBack); + backNextLayout->addWidget(m_buttonNext); + + m_reloadStop = new ReloadStopButton(); + + m_buttonHome = new ToolButton(); + m_buttonHome->setObjectName("navigation-button-home"); + m_buttonHome->setToolTip(tr("Home")); + m_buttonHome->setToolButtonStyle(Qt::ToolButtonIconOnly); + m_buttonHome->setAutoRaise(true); + + m_buttonAddTab = new ToolButton(); + m_buttonAddTab->setObjectName("navigation-button-addtab"); + m_buttonAddTab->setToolTip(tr("New Tab")); + m_buttonAddTab->setToolButtonStyle(Qt::ToolButtonIconOnly); + m_buttonAddTab->setAutoRaise(true); + + m_menuBack = new QMenu(); + m_buttonBack->setMenu(m_menuBack); + m_menuForward = new QMenu(); + m_buttonNext->setMenu(m_menuForward); + + m_supMenu = new ToolButton(this); + m_supMenu->setObjectName("navigation-button-supermenu"); + m_supMenu->setPopupMode(QToolButton::InstantPopup); + m_supMenu->setToolTip(tr("Main Menu")); + m_supMenu->setAutoRaise(true); +// m_supMenu->setVisible(false); + m_supMenu->setMenu(p_QupZilla->superMenu()); + + m_searchLine = new WebSearchBar(p_QupZilla); + + m_navigationSplitter = new QSplitter(this); + m_navigationSplitter->addWidget(p_QupZilla->tabWidget()->locationBars()); + m_navigationSplitter->addWidget(m_searchLine); + + m_navigationSplitter->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Maximum); + m_navigationSplitter->setCollapsible(0, false); + + int splitterWidth = m_navigationSplitter->width(); + QList sizes; + sizes << (int)((double)splitterWidth * .75) << (int)((double)splitterWidth * .25); + m_navigationSplitter->setSizes(sizes); + + m_exitFullscreen = new ToolButton(); + m_exitFullscreen->setText(tr("Exit Fullscreen")); + m_exitFullscreen->setToolTip(tr("Exit Fullscreen")); + m_exitFullscreen->setAutoRaise(true); + m_exitFullscreen->setVisible(false); + + m_layout->addLayout(backNextLayout); + m_layout->addWidget(m_reloadStop); + m_layout->addWidget(m_buttonHome); + m_layout->addWidget(m_buttonAddTab); + m_layout->addWidget(m_navigationSplitter); + m_layout->addWidget(m_supMenu); + m_layout->addWidget(m_exitFullscreen); + + connect(m_menuBack, SIGNAL(aboutToShow()), this, SLOT(aboutToShowHistoryBackMenu())); + connect(m_menuForward, SIGNAL(aboutToShow()), this, SLOT(aboutToShowHistoryNextMenu())); + connect(m_buttonBack, SIGNAL(clicked()), p_QupZilla, SLOT(goBack())); + connect(m_buttonNext, SIGNAL(clicked()), p_QupZilla, SLOT(goNext())); + connect(m_reloadStop->buttonStop(), SIGNAL(clicked()), p_QupZilla, SLOT(stop())); + connect(m_reloadStop->buttonReload(), SIGNAL(clicked()), p_QupZilla, SLOT(reload())); + connect(m_buttonHome, SIGNAL(clicked()), p_QupZilla, SLOT(goHome())); + connect(m_buttonAddTab, SIGNAL(clicked()), p_QupZilla, SLOT(addTab())); + connect(m_exitFullscreen, SIGNAL(clicked(bool)), p_QupZilla, SLOT(fullScreen(bool))); +} + +void NavigationBar::showReloadButton() +{ + m_reloadStop->showReloadButton(); +} + +void NavigationBar::showStopButton() +{ + m_reloadStop->showStopButton(); +} + +void NavigationBar::aboutToShowHistoryBackMenu() +{ + if (!m_menuBack || !p_QupZilla->weView()) + return; + m_menuBack->clear(); + QWebHistory* history = p_QupZilla->weView()->history(); + int curindex = history->currentItemIndex(); + int count = 0; + + for (int i = curindex-1; i >= 0; i--) { + QWebHistoryItem item = history->itemAt(i); + if (item.isValid()) { + QString title = item.title(); + if (title.length() > 40) { + title.truncate(40); + title += ".."; + } + QAction* action = m_menuBack->addAction(_iconForUrl(item.url()),title, this, SLOT(goAtHistoryIndex())); + action->setData(i); + count++; + } + if (count == 20) + break; + } +} + +void NavigationBar::aboutToShowHistoryNextMenu() +{ + if (!m_menuForward || !p_QupZilla->weView()) + return; + m_menuForward->clear(); + QWebHistory* history = p_QupZilla->weView()->history(); + int curindex = history->currentItemIndex(); + int count = 0; + + for (int i = curindex+1; i < history->count(); i++) { + QWebHistoryItem item = history->itemAt(i); + if (item.isValid()) { + QString title = item.title(); + if (title.length() > 40) { + title.truncate(40); + title += ".."; + } + QAction* action = m_menuForward->addAction(_iconForUrl(item.url()),title, this, SLOT(goAtHistoryIndex())); + action->setData(i); + count++; + } + if (count == 20) + break; + } +} + +void NavigationBar::goAtHistoryIndex() +{ + if (QAction* action = qobject_cast(sender())) { + p_QupZilla->weView()->page()->history()->goToItem(p_QupZilla->weView()->page()->history()->itemAt(action->data().toInt())); + } + refreshHistory(); +} + +void NavigationBar::refreshHistory() +{ + if (mApp->isClosing()) + return; + + QWebHistory* history = p_QupZilla->weView()->page()->history(); + m_buttonBack->setEnabled(history->canGoBack()); + m_buttonNext->setEnabled(history->canGoForward()); +} + +NavigationBar::~NavigationBar() +{ + delete m_buttonBack; + delete m_buttonNext; + delete m_buttonHome; + delete m_reloadStop; + delete m_exitFullscreen; + delete m_searchLine; + delete m_navigationSplitter; +} diff --git a/src/navigation/navigationbar.h b/src/navigation/navigationbar.h new file mode 100644 index 000000000..a0af0b0cb --- /dev/null +++ b/src/navigation/navigationbar.h @@ -0,0 +1,61 @@ +#ifndef NAVIGATIONBAR_H +#define NAVIGATIONBAR_H + +#include +#include +#include +#include + +class ToolButton; +class WebSearchBar; +class QupZilla; +class ReloadStopButton; +class NavigationBar : public QWidget +{ + Q_OBJECT +public: + explicit NavigationBar(QupZilla* mainClass, QWidget *parent = 0); + ~NavigationBar(); + + void showReloadButton(); + void showStopButton(); + + inline ToolButton* buttonBack() { return m_buttonBack; } + inline ToolButton* buttonNext() { return m_buttonNext; } + inline ToolButton* buttonHome() { return m_buttonHome; } + inline ToolButton* buttonAddTab() { return m_buttonAddTab; } + inline ToolButton* buttonSuperMenu() { return m_supMenu; } + inline ToolButton* buttonExitFullscreen() { return m_exitFullscreen; } + inline WebSearchBar* searchLine() { return m_searchLine; } + +signals: + +public slots: + void refreshHistory(); + +private slots: + void aboutToShowHistoryNextMenu(); + void aboutToShowHistoryBackMenu(); + void goAtHistoryIndex(); + +private: + QupZilla* p_QupZilla; + + QHBoxLayout* m_layout; + QSplitter* m_navigationSplitter; + ToolButton* m_buttonBack; + ToolButton* m_buttonNext; + ToolButton* m_buttonHome; + ToolButton* m_buttonAddTab; + ToolButton* m_supMenu; + ToolButton* m_exitFullscreen; + ReloadStopButton* m_reloadStop; + + QMenu* m_menuBack; + QMenu* m_menuForward; + + WebSearchBar* m_searchLine; + +}; + +#endif // NAVIGATIONBAR_H diff --git a/src/navigation/reloadstopbutton.cpp b/src/navigation/reloadstopbutton.cpp new file mode 100644 index 000000000..25d0b2b97 --- /dev/null +++ b/src/navigation/reloadstopbutton.cpp @@ -0,0 +1,48 @@ +#include "reloadstopbutton.h" + +ReloadStopButton::ReloadStopButton(QWidget *parent) : + QWidget(parent) +{ + QHBoxLayout* lay = new QHBoxLayout(this); + setLayout(lay); + + m_buttonStop = new ToolButton(); + m_buttonStop->setObjectName("navigation-button-stop"); + m_buttonStop->setToolTip(tr("Stop")); + m_buttonStop->setToolButtonStyle(Qt::ToolButtonIconOnly); + m_buttonStop->setVisible(false); + m_buttonStop->setAutoRaise(true); + + m_buttonReload = new ToolButton(); + m_buttonReload->setObjectName("navigation-button-reload"); + m_buttonReload->setToolTip(tr("Reload")); + m_buttonReload->setToolButtonStyle(Qt::ToolButtonIconOnly); + m_buttonReload->setAutoRaise(true); + + lay->addWidget(m_buttonStop); + lay->addWidget(m_buttonReload); + lay->setContentsMargins(0, 0, 0, 0); + lay->setSpacing(0); +} + +void ReloadStopButton::showReloadButton() +{ + setUpdatesEnabled(false); + m_buttonStop->hide(); + m_buttonReload->show(); + setUpdatesEnabled(true); +} + +void ReloadStopButton::showStopButton() +{ + setUpdatesEnabled(false); + m_buttonReload->hide(); + m_buttonStop->show(); + setUpdatesEnabled(true); +} + +ReloadStopButton::~ReloadStopButton() +{ + delete m_buttonStop; + delete m_buttonReload; +} diff --git a/src/navigation/reloadstopbutton.h b/src/navigation/reloadstopbutton.h new file mode 100644 index 000000000..47b16fc61 --- /dev/null +++ b/src/navigation/reloadstopbutton.h @@ -0,0 +1,30 @@ +#ifndef RELOADSTOPBUTTON_H +#define RELOADSTOPBUTTON_H + +#include + +#include "toolbutton.h" + +class ReloadStopButton : public QWidget +{ + Q_OBJECT +public: + explicit ReloadStopButton(QWidget *parent = 0); + ~ReloadStopButton(); + + void showStopButton(); + void showReloadButton(); + + ToolButton* buttonStop() { return m_buttonStop; } + ToolButton* buttonReload() { return m_buttonReload; } + +signals: + +public slots: + +private: + ToolButton* m_buttonStop; + ToolButton* m_buttonReload; +}; + +#endif // RELOADSTOPBUTTON_H diff --git a/src/navigation/websearchbar.cpp b/src/navigation/websearchbar.cpp index 55a683b7d..7d61310cf 100644 --- a/src/navigation/websearchbar.cpp +++ b/src/navigation/websearchbar.cpp @@ -25,20 +25,14 @@ WebSearchBar::WebSearchBar(QupZilla* mainClass, QWidget* parent) :LineEdit(parent) ,p_QupZilla(mainClass) { + setObjectName("websearchbar"); m_buttonSearch = new ClickableLabel(this); - m_buttonSearch->setPixmap(QPixmap(":/icons/locationbar/search.png")); + m_buttonSearch->setObjectName("websearchbar-searchbutton"); m_buttonSearch->setCursor(QCursor(Qt::PointingHandCursor)); - m_buttonSearch->setStyleSheet("QLabel{margin-bottom:2px;}"); m_buttonSearch->setFocusPolicy(Qt::ClickFocus); m_boxSearchType = new ButtonWithMenu(this); - m_boxSearchType->setMaximumSize(35, 25); - m_boxSearchType->setMinimumSize(35, 25); - - this->setMinimumHeight(25); - this->setMaximumHeight(25); - m_boxSearchType->setStyleSheet("QToolButton{border-image: url(:/icons/locationbar/searchchoose.png); padding-left:-6px; margin-left:2px;}" - "QToolButton::menu-indicator {background-image: url(:icons/locationbar/arrow-down.gif); background-repeat: no-repeat;}"); + m_boxSearchType->setObjectName("websearchbar-searchprovider-comobobox"); addWidget(m_buttonSearch, LineEdit::RightSide); @@ -46,9 +40,6 @@ WebSearchBar::WebSearchBar(QupZilla* mainClass, QWidget* parent) connect(m_buttonSearch, SIGNAL(clicked(QPoint)), this, SLOT(search())); connect(m_boxSearchType, SIGNAL(activeItemChanged(ButtonWithMenu::Item)), this, SLOT(searchChanged(ButtonWithMenu::Item))); - setStyleSheet("QLineEdit { background: transparent; border-image: url(:/icons/locationbar/lineedit.png) ;border-width:4;color:black;}"); - - setLeftMargin(33); setWidgetSpacing(0); setupSearchTypes(); } diff --git a/src/navigation/websearchbar.h b/src/navigation/websearchbar.h index 34b9f7756..3d7cb7ab1 100644 --- a/src/navigation/websearchbar.h +++ b/src/navigation/websearchbar.h @@ -31,6 +31,10 @@ class ClickableLabel; class WebSearchBar : public LineEdit { Q_OBJECT + Q_PROPERTY(QSize fixedsize READ size WRITE setFixedSize) + Q_PROPERTY(int fixedwidth READ width WRITE setFixedWidth) + Q_PROPERTY(int fixedheight READ height WRITE setFixedHeight) + public: explicit WebSearchBar(QupZilla* mainClass, QWidget* parent = 0); diff --git a/src/network/networkmanager.cpp b/src/network/networkmanager.cpp index e915d7413..3307cf1d9 100644 --- a/src/network/networkmanager.cpp +++ b/src/network/networkmanager.cpp @@ -44,12 +44,12 @@ NetworkManager::NetworkManager(QupZilla* mainClass, QObject* parent) : void NetworkManager::loadSettings() { - QSettings settings(mApp->getActiveProfil()+"settings.ini", QSettings::IniFormat); + QSettings settings(mApp->getActiveProfilPath()+"settings.ini", QSettings::IniFormat); settings.beginGroup("Web-Browser-Settings"); if (settings.value("AllowLocalCache", true).toBool()) { m_diskCache = mApp->networkCache(); - m_diskCache->setCacheDirectory(mApp->getActiveProfil()+"/networkcache"); + m_diskCache->setCacheDirectory(mApp->getActiveProfilPath()+"/networkcache"); m_diskCache->setMaximumCacheSize(settings.value("MaximumCacheSize",50).toInt() * 1024*1024); //MegaBytes setCache(m_diskCache); } @@ -256,7 +256,7 @@ QNetworkReply* NetworkManager::createRequest(QNetworkAccessManager::Operation op void NetworkManager::saveCertExceptions() { - QFile file(mApp->getActiveProfil()+"sslexceptions.dat"); + QFile file(mApp->getActiveProfilPath()+"sslexceptions.dat"); file.open(QIODevice::WriteOnly); QDataStream stream(&file); @@ -272,7 +272,7 @@ void NetworkManager::saveCertExceptions() void NetworkManager::loadCertExceptions() { - QFile file(mApp->getActiveProfil()+"sslexceptions.dat"); + QFile file(mApp->getActiveProfilPath()+"sslexceptions.dat"); file.open(QIODevice::ReadOnly); QDataStream stream(&file); diff --git a/src/network/networkproxyfactory.cpp b/src/network/networkproxyfactory.cpp index e1768f5e1..6d9851b9b 100644 --- a/src/network/networkproxyfactory.cpp +++ b/src/network/networkproxyfactory.cpp @@ -25,7 +25,7 @@ NetworkProxyFactory::NetworkProxyFactory() : void NetworkProxyFactory::loadSettings() { - QSettings settings(mApp->getActiveProfil()+"settings.ini", QSettings::IniFormat); + QSettings settings(mApp->getActiveProfilPath()+"settings.ini", QSettings::IniFormat); settings.beginGroup("Web-Proxy"); m_proxyPreference = ProxyPreference(settings.value("UseProxy", SystemProxy).toInt()); m_proxyType = QNetworkProxy::ProxyType(settings.value("ProxyType", QNetworkProxy::HttpProxy).toInt()); diff --git a/src/other/aboutdialog.ui b/src/other/aboutdialog.ui index 3ae47f84b..dd0ca23ac 100644 --- a/src/other/aboutdialog.ui +++ b/src/other/aboutdialog.ui @@ -23,9 +23,6 @@ - - background:white; - @@ -39,9 +36,6 @@ - - QTextBrowser { border:none; } - Qt::ScrollBarAlwaysOff diff --git a/src/other/browsinglibrary.cpp b/src/other/browsinglibrary.cpp index d42c482ec..ed1a91ea1 100644 --- a/src/other/browsinglibrary.cpp +++ b/src/other/browsinglibrary.cpp @@ -34,7 +34,7 @@ BrowsingLibrary::BrowsingLibrary(QupZilla* mainClass, QWidget *parent) , m_rssLoaded(false) { ui->setupUi(this); - QSettings settings(mApp->getActiveProfil()+"settings.ini", QSettings::IniFormat); + QSettings settings(mApp->getActiveProfilPath()+"settings.ini", QSettings::IniFormat); settings.beginGroup("BrowsingLibrary"); resize(settings.value("size", QSize(760, 470)).toSize()); settings.endGroup(); @@ -49,7 +49,6 @@ BrowsingLibrary::BrowsingLibrary(QupZilla* mainClass, QWidget *parent) ui->tabs->AddTab(m_rssManager, QIcon(":/icons/other/bigrss.png"), tr("RSS")); ui->tabs->SetMode(FancyTabWidget::Mode_LargeSidebar); - ui->tabs->SetBackgroundPixmap(QPixmap(":icons/other/background.png")); ui->tabs->setFocus(); connect(ui->tabs, SIGNAL(CurrentChanged(int)), this, SLOT(currentIndexChanged(int))); @@ -137,7 +136,7 @@ void BrowsingLibrary::showRSS(QupZilla* mainClass) void BrowsingLibrary::optimizeDatabase() { mApp->setOverrideCursor(Qt::WaitCursor); - QString profilePath = mApp->getActiveProfil(); + QString profilePath = mApp->getActiveProfilPath(); QString sizeBefore = DownloadItem::fileSizeToString(QFileInfo(profilePath+"/browsedata.db").size()); mApp->history()->optimizeHistory(); QString sizeAfter = DownloadItem::fileSizeToString(QFileInfo(profilePath+"/browsedata.db").size()); @@ -147,7 +146,7 @@ void BrowsingLibrary::optimizeDatabase() void BrowsingLibrary::closeEvent(QCloseEvent *e) { - QSettings settings(mApp->getActiveProfil()+"settings.ini", QSettings::IniFormat); + QSettings settings(mApp->getActiveProfilPath()+"settings.ini", QSettings::IniFormat); settings.beginGroup("BrowsingLibrary"); settings.setValue("size", size()); settings.endGroup(); diff --git a/src/other/browsinglibrary.ui b/src/other/browsinglibrary.ui index 279e32962..87c3e0d01 100644 --- a/src/other/browsinglibrary.ui +++ b/src/other/browsinglibrary.ui @@ -41,9 +41,6 @@ 25 - - background: url(':icons/other/library-bg-top.png') no-repeat; - @@ -54,9 +51,6 @@ 25 - - background: url(':icons/other/library-bg-top-right.png') repeat; - 0 @@ -85,12 +79,6 @@ 23 - - QLineEdit -{ - background: transparent; border-image: url(:/icons/locationbar/lineedit.png); border-width:4; color:black; -} - Search... diff --git a/src/other/clearprivatedata.ui b/src/other/clearprivatedata.ui index 16c7e44e9..418f93c56 100644 --- a/src/other/clearprivatedata.ui +++ b/src/other/clearprivatedata.ui @@ -2,6 +2,14 @@ ClearPrivateData + + + 0 + 0 + 308 + 243 + + Clear Recent History @@ -59,12 +67,12 @@ PointingHandCursor - - color: blue; text-decoration: underline; - Clear cookies from Adobe Flash Player + + true + diff --git a/src/other/sourceviewer.cpp b/src/other/sourceviewer.cpp index 1b148e59a..7396f587c 100644 --- a/src/other/sourceviewer.cpp +++ b/src/other/sourceviewer.cpp @@ -28,6 +28,7 @@ SourceViewer::SourceViewer(QWebPage* page, const QString &selectedHtml) : setWindowTitle(tr("Source of ")+page->mainFrame()->url().toString()); m_layout = new QBoxLayout(QBoxLayout::TopToBottom, this); m_sourceEdit = new QTextEdit(this); + m_sourceEdit->setObjectName("sourceviewer-textedit"); m_statusBar = new QStatusBar(this); m_statusBar->showMessage(page->mainFrame()->url().toString()); @@ -45,7 +46,6 @@ SourceViewer::SourceViewer(QWebPage* page, const QString &selectedHtml) : this->resize(650, 600); m_sourceEdit->setReadOnly(true); m_sourceEdit->moveCursor(QTextCursor::Start); - m_sourceEdit->setStyleSheet("QTextEdit{border:none;}"); QFont font; font.setFamily("Tahoma"); diff --git a/src/other/sourceviewersearch.cpp b/src/other/sourceviewersearch.cpp index 4681e3a36..55a272d33 100644 --- a/src/other/sourceviewersearch.cpp +++ b/src/other/sourceviewersearch.cpp @@ -66,22 +66,26 @@ void SourceViewerSearch::activateLineEdit() void SourceViewerSearch::next() { - if (!find(0)) { - ui->lineEdit->setStyleSheet("QLineEdit {background:#ff6666;; }"); + bool found = find(0); + if (!found) m_sourceViewer->sourceEdit()->moveCursor(QTextCursor::Start); - } else { - ui->lineEdit->setStyleSheet(""); - } + + ui->lineEdit->setProperty("notfound", !found); + + ui->lineEdit->style()->unpolish(ui->lineEdit); + ui->lineEdit->style()->polish(ui->lineEdit); } void SourceViewerSearch::previous() { - if (!find(QTextDocument::FindBackward)) { - ui->lineEdit->setStyleSheet("QLineEdit {background:#ff6666;; }"); + bool found = find(QTextDocument::FindBackward); + if (!found) m_sourceViewer->sourceEdit()->moveCursor(QTextCursor::Start); - } else { - ui->lineEdit->setStyleSheet(""); - } + + ui->lineEdit->setProperty("notfound", !found); + + ui->lineEdit->style()->unpolish(ui->lineEdit); + ui->lineEdit->style()->polish(ui->lineEdit); } bool SourceViewerSearch::find(QTextDocument::FindFlags flags) diff --git a/src/plugins/clicktoflash.cpp b/src/plugins/clicktoflash.cpp index 169d96142..de02f5e64 100644 --- a/src/plugins/clicktoflash.cpp +++ b/src/plugins/clicktoflash.cpp @@ -58,10 +58,11 @@ ClickToFlash::ClickToFlash(const QUrl &pluginUrl, const QStringList &argumentNam horizontalLayout = new QHBoxLayout(this); frame = new QFrame(this); - frame->setStyleSheet("QFrame { border: 1px solid #e8e8e8; }"); + frame->setObjectName("click2flash-frame"); frame->setContentsMargins(0,0,0,0); horizontalLayout_2 = new QHBoxLayout(frame); toolButton = new QToolButton(this); + toolButton->setObjectName("click2flash-toolbutton"); //AdBlock AdBlockManager* manager = AdBlockManager::instance(); @@ -75,10 +76,6 @@ ClickToFlash::ClickToFlash(const QUrl &pluginUrl, const QStringList &argumentNam } toolButton->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); - toolButton->setStyleSheet("QToolButton { background: url(:/icons/other/flash.png) no-repeat;\n" - "background-position: center; border: none;}\n" - "QToolButton:hover { background: url(:/icons/other/flashstart.png) no-repeat; \n" - "background-position: center; border:none;}"); toolButton->setCursor(Qt::PointingHandCursor); horizontalLayout_2->addWidget(toolButton); horizontalLayout->addWidget(frame); diff --git a/src/plugins/pluginproxy.cpp b/src/plugins/pluginproxy.cpp index 2a8637434..a5e5fc3b5 100644 --- a/src/plugins/pluginproxy.cpp +++ b/src/plugins/pluginproxy.cpp @@ -81,7 +81,7 @@ QNetworkReply* PluginProxy::createNetworkRequest(QNetworkAccessManager::Operatio void PluginProxy::c2f_loadSettings() { - QSettings settings(mApp->getActiveProfil()+"settings.ini", QSettings::IniFormat); + QSettings settings(mApp->getActiveProfilPath()+"settings.ini", QSettings::IniFormat); settings.beginGroup("ClickToFlash"); c2f_whitelist = settings.value("whitelist", QStringList()).toStringList(); c2f_enabled = settings.value("Enabled", true).toBool(); @@ -90,7 +90,7 @@ void PluginProxy::c2f_loadSettings() void PluginProxy::c2f_saveSettings() { - QSettings settings(mApp->getActiveProfil()+"settings.ini", QSettings::IniFormat); + QSettings settings(mApp->getActiveProfilPath()+"settings.ini", QSettings::IniFormat); settings.beginGroup("ClickToFlash"); settings.setValue("whitelist", c2f_whitelist); settings.setValue("Enabled", c2f_enabled); diff --git a/src/plugins/plugins.cpp b/src/plugins/plugins.cpp index 4da4c0ca9..ea1cff281 100644 --- a/src/plugins/plugins.cpp +++ b/src/plugins/plugins.cpp @@ -29,7 +29,7 @@ void Plugins::loadSettings() { m_allowedPluginFileNames.clear(); - QSettings settings(mApp->getActiveProfil()+"settings.ini", QSettings::IniFormat); + QSettings settings(mApp->getActiveProfilPath()+"settings.ini", QSettings::IniFormat); settings.beginGroup("Plugin-Settings"); m_pluginsEnabled = settings.value("EnablePlugins", true).toBool(); m_allowedPluginFileNames = settings.value("AllowedPlugins", QStringList()).toStringList(); @@ -44,7 +44,7 @@ void Plugins::loadPlugins() m_availablePluginFileNames.clear(); loadedPlugins.clear(); - QDir pluginsDir = QDir(mApp->DATADIR+"plugins/"); + QDir pluginsDir = QDir(mApp->PLUGINSDIR); foreach (QString fileName, pluginsDir.entryList(QDir::Files)) { m_availablePluginFileNames.append(fileName); @@ -56,7 +56,7 @@ void Plugins::loadPlugins() QObject* plugin = loader.instance(); if (plugin) { PluginInterface* iPlugin = qobject_cast(plugin); - iPlugin->init(mApp->getActiveProfil()+"plugins.ini"); + iPlugin->init(mApp->getActiveProfilPath()+"plugins.ini"); if (!iPlugin->testPlugin()) { loader.unload(); continue; @@ -72,7 +72,7 @@ void Plugins::loadPlugins() PluginInterface* Plugins::getPlugin(QString pluginFileName) { - QString path = mApp->DATADIR+"plugins/"+pluginFileName; + QString path = mApp->PLUGINSDIR + pluginFileName; if (!QFile::exists(path)) return 0; QPluginLoader loader(path); diff --git a/src/preferences/pluginslist.cpp b/src/preferences/pluginslist.cpp index bc5dbe07f..f20c6bd4e 100644 --- a/src/preferences/pluginslist.cpp +++ b/src/preferences/pluginslist.cpp @@ -34,7 +34,7 @@ PluginsList::PluginsList(QWidget* parent) : connect(ui->butLoad, SIGNAL(clicked()), this, SLOT(reloadPlugins())); connect(ui->allowAppPlugins, SIGNAL(clicked(bool)), this, SLOT(allowAppPluginsChanged(bool))); - QSettings settings(mApp->getActiveProfil()+"settings.ini", QSettings::IniFormat); + QSettings settings(mApp->getActiveProfilPath()+"settings.ini", QSettings::IniFormat); settings.beginGroup("Plugin-Settings"); ui->allowAppPlugins->setChecked( settings.value("EnablePlugins",true).toBool() ); settings.endGroup(); @@ -78,7 +78,7 @@ void PluginsList::removeWhitelist() void PluginsList::save() { - QSettings settings(mApp->getActiveProfil()+"settings.ini", QSettings::IniFormat); + QSettings settings(mApp->getActiveProfilPath()+"settings.ini", QSettings::IniFormat); settings.beginGroup("Plugin-Settings"); settings.setValue("EnablePlugins",ui->allowAppPlugins->isChecked()); settings.endGroup(); @@ -88,7 +88,7 @@ void PluginsList::save() void PluginsList::allowAppPluginsChanged(bool state) { - QSettings settings(mApp->getActiveProfil()+"settings.ini", QSettings::IniFormat); + QSettings settings(mApp->getActiveProfilPath()+"settings.ini", QSettings::IniFormat); settings.beginGroup("Plugin-Settings"); settings.setValue("EnablePlugins", state); settings.endGroup(); @@ -98,7 +98,7 @@ void PluginsList::allowAppPluginsChanged(bool state) void PluginsList::allowC2FChanged(bool state) { - QSettings settings(mApp->getActiveProfil()+"settings.ini", QSettings::IniFormat); + QSettings settings(mApp->getActiveProfilPath()+"settings.ini", QSettings::IniFormat); settings.beginGroup("ClickToFlash"); settings.setValue("Enable", state); settings.endGroup(); @@ -175,7 +175,7 @@ void PluginsList::reloadPlugins() if (ui->list->item(i)->checkState() == Qt::Checked) allowedPlugins.append(ui->list->item(i)->toolTip()); } - QSettings settings(mApp->getActiveProfil()+"settings.ini", QSettings::IniFormat); + QSettings settings(mApp->getActiveProfilPath()+"settings.ini", QSettings::IniFormat); settings.beginGroup("Plugin-Settings"); settings.setValue("AllowedPlugins",allowedPlugins); settings.endGroup(); diff --git a/src/preferences/preferences.cpp b/src/preferences/preferences.cpp index 3149e24dc..666c98b7f 100644 --- a/src/preferences/preferences.cpp +++ b/src/preferences/preferences.cpp @@ -34,6 +34,8 @@ #include "networkmanager.h" #include "desktopnotificationsfactory.h" #include "desktopnotification.h" +#include "navigationbar.h" +#include "thememanager.h" bool removeFile(const QString &fullFileName) { @@ -73,7 +75,7 @@ Preferences::Preferences(QupZilla* mainClass, QWidget* parent) : ui->setupUi(this); m_bgLabelSize = this->sizeHint(); - QSettings settings(mApp->getActiveProfil()+"settings.ini", QSettings::IniFormat); + QSettings settings(mApp->getActiveProfilPath()+"settings.ini", QSettings::IniFormat); //GENERAL URLs settings.beginGroup("Web-URL-Settings"); m_homepage = settings.value("homepage","http://qupzilla.ic.cz/search/").toString(); @@ -98,13 +100,13 @@ Preferences::Preferences(QupZilla* mainClass, QWidget* parent) : connect(ui->newTabUseActual, SIGNAL(clicked()), this, SLOT(useActualNewTab())); //PROFILES - m_actProfileName = mApp->getActiveProfil(); + m_actProfileName = mApp->getActiveProfilPath(); m_actProfileName = m_actProfileName.left(m_actProfileName.length()-1); m_actProfileName = m_actProfileName.mid(m_actProfileName.lastIndexOf("/")); m_actProfileName.remove("/"); ui->startProfile->addItem(m_actProfileName); QDir profilesDir(QDir::homePath()+"/.qupzilla/profiles/"); - QStringList list_ = profilesDir.entryList(QStringList(), QDir::Dirs | QDir::NoDotAndDotDot); + QStringList list_ = profilesDir.entryList(QDir::Dirs | QDir::NoDotAndDotDot); foreach (QString name, list_) { if (m_actProfileName == name) continue; @@ -114,31 +116,20 @@ Preferences::Preferences(QupZilla* mainClass, QWidget* parent) : connect(ui->deleteProfile, SIGNAL(clicked()), this, SLOT(deleteProfile())); connect(ui->startProfile, SIGNAL(currentIndexChanged(QString)), this, SLOT(startProfileIndexChanged(QString))); - //WINDOW + //APPEREANCE + m_themesManager = new ThemeManager(ui->themesWidget); settings.beginGroup("Browser-View-Settings"); ui->showStatusbar->setChecked( settings.value("showStatusBar",true).toBool() ); ui->showBookmarksToolbar->setChecked( p_QupZilla->bookmarksToolbar()->isVisible() ); - ui->showNavigationToolbar->setChecked( p_QupZilla->navigationToolbar()->isVisible() ); + ui->showNavigationToolbar->setChecked( p_QupZilla->navigationBar()->isVisible() ); ui->showHome->setChecked( settings.value("showHomeButton",true).toBool() ); ui->showBackForward->setChecked( settings.value("showBackForwardButtons",true).toBool() ); ui->showAddTabButton->setChecked( settings.value("showAddTabButton", true).toBool() ); - if (settings.value("useTransparentBackground",false).toBool()) - ui->useTransparentBg->setChecked(true); - else - ui->useBgImage->setChecked(true); - - m_menuTextColor = settings.value("menuTextColor", QColor(Qt::black)).value(); - ui->textColor->setStyleSheet("color: "+m_menuTextColor.name()+";"); - useBgImageChanged(ui->useBgImage->isChecked()); + ui->useTransparentBg->setChecked( settings.value("useTransparentBackground",false).toBool() ); settings.endGroup(); #ifdef Q_WS_WIN ui->useTransparentBg->setEnabled(QtWin::isCompositionEnabled()); #endif - connect(ui->useBgImage, SIGNAL(toggled(bool)), this, SLOT(useBgImageChanged(bool))); - connect(ui->backgroundButton, SIGNAL(clicked()), this, SLOT(chooseBackgroundPath())); - connect(ui->resetDefaultBgButton, SIGNAL(clicked()), this, SLOT(resetBackground())); - connect(ui->textColorChooser, SIGNAL(clicked()), this, SLOT(chooseColor())); - updateBgLabel(); //TABS settings.beginGroup("Browser-Tabs-Settings"); @@ -285,7 +276,7 @@ Preferences::Preferences(QupZilla* mainClass, QWidget* parent) : } ui->languages->addItem("English (en_US)"); - QDir lanDir(mApp->DATADIR+"locale"); + QDir lanDir(mApp->TRANSLATIONSDIR); QStringList list = lanDir.entryList(QStringList("*.qm")); foreach(QString name, list) { if (name.startsWith("qt_") || name == activeLanguage) @@ -350,13 +341,6 @@ void Preferences::showStackedPage(QListWidgetItem* item) delete m_notification; } } - -void Preferences::chooseColor() -{ - m_menuTextColor = QColorDialog::getColor(Qt::black, this); - ui->textColor->setStyleSheet("color: "+m_menuTextColor.name()+";"); -} - void Preferences::allowCacheChanged(bool state) { ui->cacheFrame->setEnabled(state); @@ -373,22 +357,6 @@ void Preferences::useActualNewTab() ui->newTabUrl->setText(p_QupZilla->weView()->url().toString()); } -void Preferences::resetBackground() -{ - QFile::remove(p_QupZilla->activeProfil()+"background.png"); - QFile(mApp->DATADIR+"data/default/profiles/default/background.png").copy(p_QupZilla->activeProfil()+"background.png"); - - m_menuTextColor = QColor(Qt::black); - ui->textColor->setStyleSheet("color: "+m_menuTextColor.name()+";"); - - updateBgLabel(); -} - -void Preferences::updateBgLabel() -{ - ui->bgLabel->setStyleSheet("#bgLabel {background: url("+p_QupZilla->activeProfil()+"background.png) top right;}"); -} - void Preferences::chooseDownPath() { QString userFileName = QFileDialog::getExistingDirectory(p_QupZilla, tr("Choose download location..."), QDir::homePath()); @@ -397,17 +365,6 @@ void Preferences::chooseDownPath() ui->downLoc->setText(userFileName); } -void Preferences::chooseBackgroundPath() -{ - QString file = QFileDialog::getOpenFileName(p_QupZilla, tr("Choose background location..."), QDir::homePath(), "*.png"); - if (file.isEmpty()) - return; - QFile::remove(p_QupZilla->activeProfil()+"background.png"); - QFile(file).copy(p_QupZilla->activeProfil()+"background.png"); - - updateBgLabel(); -} - void Preferences::chooseUserStyleClicked() { QString file = QFileDialog::getOpenFileName(p_QupZilla, tr("Choose stylesheet location..."), QDir::homePath(), "*.css"); @@ -424,11 +381,6 @@ void Preferences::newTabChanged() ui->newTabFrame->setVisible(false); } -void Preferences::useBgImageChanged(bool state) -{ - ui->bgLabel->setEnabled(state); -} - void Preferences::downLocChanged(bool state) { ui->downButt->setEnabled(state); @@ -562,7 +514,7 @@ void Preferences::startProfileIndexChanged(QString index) void Preferences::saveSettings() { - QSettings settings(mApp->getActiveProfil()+"settings.ini", QSettings::IniFormat); + QSettings settings(mApp->getActiveProfilPath()+"settings.ini", QSettings::IniFormat); //GENERAL URLs settings.beginGroup("Web-URL-Settings"); settings.setValue("homepage",ui->homepage->text()); @@ -722,6 +674,7 @@ void Preferences::saveSettings() profileSettings.setValue("Profiles/startProfile",ui->startProfile->currentText()); m_pluginsList->save(); + m_themesManager->save(); mApp->cookieJar()->loadSettings(); mApp->history()->loadSettings(); mApp->reloadSettings(); diff --git a/src/preferences/preferences.h b/src/preferences/preferences.h index 8b367975b..dcfa2c2ca 100644 --- a/src/preferences/preferences.h +++ b/src/preferences/preferences.h @@ -33,7 +33,7 @@ class AutoFillManager; class QupZilla; class PluginsList; class DesktopNotification; - +class ThemeManager; class Preferences : public QDialog { Q_OBJECT @@ -50,11 +50,8 @@ private slots: void newTabChanged(); void chooseDownPath(); void showCookieManager(); - void chooseBackgroundPath(); void useActualHomepage(); void useActualNewTab(); - void resetBackground(); - void chooseColor(); void openSslManager(); void chooseUserStyleClicked(); @@ -64,7 +61,6 @@ private slots: void downLocChanged(bool state); void allowCacheChanged(bool state); void showPassManager(bool state); - void useBgImageChanged(bool state); void setManualProxyConfigurationEnabled(bool state); void cacheValueChanged(int value); void pageCacheValueChanged(int value); @@ -74,11 +70,11 @@ private slots: void startProfileIndexChanged(QString index); private: - void updateBgLabel(); Ui::Preferences* ui; QupZilla* p_QupZilla; AutoFillManager* m_autoFillManager; PluginsList* m_pluginsList; + ThemeManager* m_themesManager; QPointer m_notification; QColor m_menuTextColor; diff --git a/src/preferences/preferences.ui b/src/preferences/preferences.ui index 66d16aac6..69982fb8f 100644 --- a/src/preferences/preferences.ui +++ b/src/preferences/preferences.ui @@ -67,14 +67,14 @@ - Window + Appereance 1 - :/icons/preferences/gnome-window-manager.png:/icons/preferences/gnome-window-manager.png + :/icons/preferences/appereance.png:/icons/preferences/appereance.png @@ -472,192 +472,150 @@ - - - - - <b>Browser Window</b> + + + + + 0 - - - - - - Qt::Horizontal - - - QSizePolicy::Fixed - - - - 20 - 20 - - - - - - - - - - Show StatusBar on start + + + Themes + + + + 0 - - - - - - Show Bookmarks ToolBar on start - - - - - - - Show Navigation ToolBar on start - - - - - - - Show Add Tab button - - - - - - - - - <b>Navigation ToolBar</b> - + + + + + + + + Advanced options + + + + + + <b>Browser Window</b> + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + + + Show StatusBar on start + + + + + + + Show Bookmarks ToolBar on start + + + + + + + Show Navigation ToolBar on start + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + <b>Navigation ToolBar</b> + + + + + + + Show Home button + + + + + + + Show Back / Forward buttons + + + + + + + Show Add Tab button + + + + + + + <b>Background<b/> + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Use transparent background + + + + + - - - - Show Home button - - - - - - - Show Back / Forward buttons - - - - - - - <b>Background<b/> - - - - - - - Use transparent background - - - - - - - Use background image - - - - - - - Menu text color - - - - - - - - 0 - 0 - - - - - - - - 9 - - - 0 - - - - - Reset default - - - - - - - Choose image... - - - - - - - Qt::Horizontal - - - - 0 - 0 - - - - - - - - This is text color used in Menu - - - - - - - Qt::Horizontal - - - - 0 - 0 - - - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - @@ -1962,13 +1920,6 @@ - - - SqueezeLabelV2 - QLabel -
    squeezelabelv2.h
    -
    -
    diff --git a/src/preferences/sslmanager.cpp b/src/preferences/sslmanager.cpp index 6b67e100b..7bb9aaa41 100644 --- a/src/preferences/sslmanager.cpp +++ b/src/preferences/sslmanager.cpp @@ -34,7 +34,7 @@ SSLManager::SSLManager(QWidget* parent) : connect(ui->deleteButton, SIGNAL(clicked()), this, SLOT(deleteCertificate())); connect(ui->ignoreAll, SIGNAL(clicked(bool)), this, SLOT(ignoreAll(bool))); - QSettings settings(mApp->getActiveProfil()+"settings.ini", QSettings::IniFormat); + QSettings settings(mApp->getActiveProfilPath()+"settings.ini", QSettings::IniFormat); settings.beginGroup("Web-Browser-Settings"); ui->ignoreAll->setChecked( settings.value("IgnoreAllSSLWarnings", false).toBool() ); settings.endGroup(); @@ -94,7 +94,7 @@ void SSLManager::deleteCertificate() void SSLManager::ignoreAll(bool state) { - QSettings settings(mApp->getActiveProfil()+"settings.ini", QSettings::IniFormat); + QSettings settings(mApp->getActiveProfilPath()+"settings.ini", QSettings::IniFormat); settings.beginGroup("Web-Browser-Settings"); settings.setValue("IgnoreAllSSLWarnings", state); settings.endGroup(); diff --git a/src/preferences/thememanager.cpp b/src/preferences/thememanager.cpp new file mode 100644 index 000000000..25e7f5f47 --- /dev/null +++ b/src/preferences/thememanager.cpp @@ -0,0 +1,108 @@ +#include "thememanager.h" +#include "ui_thememanager.h" +#include "mainapplication.h" + +ThemeManager::ThemeManager(QWidget* parent) + : QWidget() + , ui(new Ui::ThemeManager) +{ + ui->setupUi(parent); + QSettings settings(mApp->getActiveProfilPath()+"settings.ini", QSettings::IniFormat); + settings.beginGroup("Themes"); + m_activeTheme = settings.value("activeTheme", "default").toString(); + settings.endGroup(); + + QDir themeDir(mApp->THEMESDIR); + QStringList list = themeDir.entryList(QDir::AllDirs | QDir::NoDotAndDotDot); + foreach(QString name, list) { + Theme themeInfo = parseTheme(name); + if (!themeInfo.isValid) + continue; + + QListWidgetItem* item = new QListWidgetItem(ui->listWidget); + item->setText(themeInfo.name + "\n" + themeInfo.shortDescription); + item->setIcon(themeInfo.icon); + item->setData(Qt::UserRole, name); + + if (m_activeTheme == name) + ui->listWidget->setCurrentItem(item); + + ui->listWidget->addItem(item); + } + + connect(ui->listWidget, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)), this, SLOT(currentChanged())); + + currentChanged(); +} + +void ThemeManager::currentChanged() +{ + QListWidgetItem* currentItem = ui->listWidget->currentItem(); + if (!currentItem) + return; + + Theme currentTheme = m_themeHash[currentItem->data(Qt::UserRole).toString()]; + + ui->name->setText(currentTheme.name); + ui->author->setText(currentTheme.author); + ui->descirption->setText(currentTheme.longDescription); +} + +ThemeManager::Theme ThemeManager::parseTheme(const QString &name) +{ + Theme info; + info.name = name; + + QString path = mApp->THEMESDIR + name + "/"; + if (!QFile(path + "main.css").exists() || !QFile(path + "theme.info").exists()) { + info.isValid = false; + return info; + } + + if (QFile(path + "theme.png").exists()) + info.icon = QIcon(path + "theme.png"); + else + info.icon = QIcon(":icons/preferences/style-default.png"); + + QFile file(path + "theme.info"); + file.open(QFile::ReadOnly); + QString theme_info = file.readAll(); + + QRegExp rx("Name:(.*)\\n"); + rx.setMinimal(true); + rx.indexIn(theme_info); + if (rx.captureCount() == 1) + info.name = rx.cap(1).trimmed(); + + rx.setPattern("Author:(.*)\\n"); + rx.indexIn(theme_info); + if (rx.captureCount() == 1) + info.author = rx.cap(1).trimmed(); + + rx.setPattern("Short Description:(.*)\\n"); + rx.indexIn(theme_info); + if (rx.captureCount() == 1) + info.shortDescription = rx.cap(1).trimmed(); + + rx.setPattern("Long Description:(.*)\\n"); + rx.indexIn(theme_info); + if (rx.captureCount() == 1) + info.longDescription = rx.cap(1).trimmed(); + + info.isValid = true; + m_themeHash.insert(name, info); + return info; +} + +void ThemeManager::save() +{ + QSettings settings(mApp->getActiveProfilPath()+"settings.ini", QSettings::IniFormat); + settings.beginGroup("Themes"); + settings.setValue("activeTheme", ui->listWidget->currentItem()->data(Qt::UserRole)); + settings.endGroup(); +} + +ThemeManager::~ThemeManager() +{ + delete ui; +} diff --git a/src/preferences/thememanager.h b/src/preferences/thememanager.h new file mode 100644 index 000000000..a9b24db11 --- /dev/null +++ b/src/preferences/thememanager.h @@ -0,0 +1,44 @@ +#ifndef THEMEMANAGER_H +#define THEMEMANAGER_H + +#include +#include +#include +#include +#include + +namespace Ui { + class ThemeManager; +} + +class ThemeManager : public QWidget +{ + Q_OBJECT + +public: + explicit ThemeManager(QWidget* parent); + ~ThemeManager(); + + void save(); + +private slots: + void currentChanged(); + +private: + struct Theme { + bool isValid; + QIcon icon; + QString name; + QString author; + QString shortDescription; + QString longDescription; + }; + + Theme parseTheme(const QString &name); + + Ui::ThemeManager *ui; + QString m_activeTheme; + QHash m_themeHash; +}; + +#endif // THEMEMANAGER_H diff --git a/src/preferences/thememanager.ui b/src/preferences/thememanager.ui new file mode 100644 index 000000000..a8ac79078 --- /dev/null +++ b/src/preferences/thememanager.ui @@ -0,0 +1,96 @@ + + + ThemeManager + + + + 0 + 0 + 512 + 367 + + + + + + + + + + + 0 + 0 + + + + + 4 + + + + + <b>Name:</b> + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + + + <b>Author:</b> + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + + + <b>Description:</b> + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + + + + + + true + + + + + + + + + + true + + + + + + + + + + true + + + + + + + + + + + diff --git a/src/rss/rssmanager.cpp b/src/rss/rssmanager.cpp index 608eb1e33..799acbe1e 100644 --- a/src/rss/rssmanager.cpp +++ b/src/rss/rssmanager.cpp @@ -94,7 +94,7 @@ void RSSManager::refreshTable() ui->edit->setEnabled(false); QFrame *frame = new QFrame(); - frame->setStyleSheet("background: white;"); + frame->setObjectName("rssmanager-frame"); QVBoxLayout *verticalLayout = new QVBoxLayout(frame); QLabel *label_2 = new QLabel(frame); label_2->setPixmap(QPixmap(":/icons/menu/rss.png")); diff --git a/src/rss/rssmanager.ui b/src/rss/rssmanager.ui index 248730ec3..28cfbd99c 100644 --- a/src/rss/rssmanager.ui +++ b/src/rss/rssmanager.ui @@ -26,9 +26,6 @@ Qt::NoFocus - - QTabBar::tab{ max-width:100px;} - false @@ -103,13 +100,12 @@ PointingHandCursor - - color: blue; -text-decoration: underline; - Optimize Database + + true + diff --git a/src/rss/rssnotification.cpp b/src/rss/rssnotification.cpp index e8a19daf3..4bef810e8 100644 --- a/src/rss/rssnotification.cpp +++ b/src/rss/rssnotification.cpp @@ -21,7 +21,7 @@ #include "qupzilla.h" RSSNotification::RSSNotification(QString host, QWidget* parent) : - AnimatedWidget(AnimatedWidget::Down, parent), + AnimatedWidget(AnimatedWidget::Down, 300, parent), ui(new Ui::RSSNotification) { setAttribute(Qt::WA_DeleteOnClose); diff --git a/src/sidebar/bookmarkssidebar.ui b/src/sidebar/bookmarkssidebar.ui index 1d14dee6a..ece11b41e 100644 --- a/src/sidebar/bookmarkssidebar.ui +++ b/src/sidebar/bookmarkssidebar.ui @@ -6,7 +6,7 @@ 0 0 - 259 + 150 486 diff --git a/src/sidebar/historysidebar.ui b/src/sidebar/historysidebar.ui index 52be5248a..975672a5c 100644 --- a/src/sidebar/historysidebar.ui +++ b/src/sidebar/historysidebar.ui @@ -6,7 +6,7 @@ 0 0 - 219 + 150 457 diff --git a/src/sidebar/sidebar.cpp b/src/sidebar/sidebar.cpp index df5d12090..13aec20f5 100644 --- a/src/sidebar/sidebar.cpp +++ b/src/sidebar/sidebar.cpp @@ -22,36 +22,41 @@ #include "qupzilla.h" SideBar::SideBar(QWidget* parent) : - QDockWidget(parent) + QWidget(parent) ,m_activeWidget(None) { - setObjectName("SideBar"); - setWindowTitle(tr("SideBar")); + setObjectName("sidebar"); setAttribute(Qt::WA_DeleteOnClose); + setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred); + + m_layout = new QVBoxLayout(); + m_layout->setContentsMargins(0, 0, 0, 0); + m_layout->setSpacing(0); + setLayout(m_layout); + m_titleBar = new DockTitleBarWidget("", this); - setTitleBarWidget(m_titleBar); - setFeatures(0); + m_layout->addWidget(m_titleBar); } void SideBar::showBookmarks() { m_titleBar->setTitle(tr("Bookmarks")); - BookmarksSideBar* bar = new BookmarksSideBar((QupZilla*)parentWidget(), this); + BookmarksSideBar* bar = new BookmarksSideBar((QupZilla*)parentWidget()); setWidget(bar); m_activeWidget = Bookmarks; - QSettings settings(mApp->getActiveProfil() + "settings.ini", QSettings::IniFormat); + QSettings settings(mApp->getActiveProfilPath() + "settings.ini", QSettings::IniFormat); settings.setValue("Browser-View-Settings/SideBar", "Bookmarks"); } void SideBar::showHistory() { m_titleBar->setTitle(tr("History")); - HistorySideBar* bar = new HistorySideBar((QupZilla*)parentWidget(), this); + HistorySideBar* bar = new HistorySideBar((QupZilla*)parentWidget()); setWidget(bar); m_activeWidget = History; - QSettings settings(mApp->getActiveProfil() + "settings.ini", QSettings::IniFormat); + QSettings settings(mApp->getActiveProfilPath() + "settings.ini", QSettings::IniFormat); settings.setValue("Browser-View-Settings/SideBar", "History"); } @@ -60,10 +65,24 @@ void SideBar::showRSS() } +void SideBar::setWidget(QWidget* widget) +{ + if (m_layout->count() == 2) + delete m_layout->itemAt(1)->widget(); + + m_layout->addWidget(widget); +} + void SideBar::close() { - QSettings settings(mApp->getActiveProfil() + "settings.ini", QSettings::IniFormat); + QSettings settings(mApp->getActiveProfilPath() + "settings.ini", QSettings::IniFormat); settings.setValue("Browser-View-Settings/SideBar", "None"); - QDockWidget::close(); + QWidget::close(); +} + +SideBar::~SideBar() +{ + delete m_titleBar; + delete m_layout; } diff --git a/src/sidebar/sidebar.h b/src/sidebar/sidebar.h index 867862fc3..342f12f92 100644 --- a/src/sidebar/sidebar.h +++ b/src/sidebar/sidebar.h @@ -18,15 +18,19 @@ #ifndef SIDEBAR_H #define SIDEBAR_H -#include +#include +#include class DockTitleBarWidget; -class SideBar : public QDockWidget +class SideBar : public QWidget { Q_OBJECT public: enum SideWidget { None = 0, Bookmarks, History, RSS }; + explicit SideBar(QWidget* parent = 0); + ~SideBar(); + void showBookmarks(); void showHistory(); void showRSS(); @@ -38,6 +42,9 @@ public slots: void close(); private: + void setWidget(QWidget* widget); + + QVBoxLayout* m_layout; DockTitleBarWidget* m_titleBar; SideWidget m_activeWidget; }; diff --git a/src/tools/animatedwidget.cpp b/src/tools/animatedwidget.cpp index 8fe67c47e..f3b0ead9b 100644 --- a/src/tools/animatedwidget.cpp +++ b/src/tools/animatedwidget.cpp @@ -18,24 +18,20 @@ #include "animatedwidget.h" #include -AnimatedWidget::AnimatedWidget(const Direction &direction, QWidget* parent) +AnimatedWidget::AnimatedWidget(const Direction &direction, int duration, QWidget* parent) : QWidget(parent) , m_widget(new QWidget(this)) , m_direction(direction) { m_positionAni = new QPropertyAnimation(m_widget, "pos"); - m_positionAni->setDuration(300); + m_positionAni->setDuration(duration); - m_minHeightAni = new QPropertyAnimation(this, "minimumHeight"); - m_minHeightAni->setDuration(300); - - m_maxHeightAni = new QPropertyAnimation(this, "maximumHeight"); - m_maxHeightAni->setDuration(300); + m_heightAni = new QPropertyAnimation(this, "fixedheight"); + m_heightAni->setDuration(duration); m_aniGroup = new QParallelAnimationGroup(); m_aniGroup->addAnimation(m_positionAni); - m_aniGroup->addAnimation(m_minHeightAni); - m_aniGroup->addAnimation(m_maxHeightAni); + m_aniGroup->addAnimation(m_heightAni); setMaximumHeight(0); } @@ -53,8 +49,7 @@ void AnimatedWidget::startAnimation() m_widget->move(QPoint(m_widget->pos().x(), Y_HIDDEN)); m_positionAni->setEndValue(QPoint(m_widget->pos().x(), Y_SHOWN)); - m_minHeightAni->setEndValue(m_widget->height()); - m_maxHeightAni->setEndValue(m_widget->height()); + m_heightAni->setEndValue(m_widget->height()); m_aniGroup->start(); } @@ -62,8 +57,7 @@ void AnimatedWidget::startAnimation() void AnimatedWidget::hide() { m_positionAni->setEndValue(QPoint(m_widget->pos().x(), Y_HIDDEN)); - m_minHeightAni->setEndValue(0); - m_maxHeightAni->setEndValue(0); + m_heightAni->setEndValue(0); m_aniGroup->start(); connect(m_aniGroup, SIGNAL(finished()), this, SLOT(close())); @@ -80,9 +74,7 @@ void AnimatedWidget::resizeEvent(QResizeEvent *event) AnimatedWidget::~AnimatedWidget() { delete m_positionAni; - delete m_minHeightAni; - delete m_maxHeightAni; + delete m_heightAni; delete m_aniGroup; - delete m_widget; } diff --git a/src/tools/animatedwidget.h b/src/tools/animatedwidget.h index c2084c168..032ca7c77 100644 --- a/src/tools/animatedwidget.h +++ b/src/tools/animatedwidget.h @@ -26,9 +26,11 @@ class AnimatedWidget : public QWidget { Q_OBJECT + Q_PROPERTY(int fixedheight READ height WRITE setFixedHeight) + public: enum Direction { Down, Up }; - explicit AnimatedWidget(const Direction &direction = Down, QWidget* parent = 0); + explicit AnimatedWidget(const Direction &direction = Down, int duration = 300, QWidget* parent = 0); ~AnimatedWidget(); QWidget* widget() { return m_widget; } @@ -41,8 +43,7 @@ private: void resizeEvent(QResizeEvent *e); QPropertyAnimation* m_positionAni; - QPropertyAnimation* m_minHeightAni; - QPropertyAnimation* m_maxHeightAni; + QPropertyAnimation* m_heightAni; QParallelAnimationGroup* m_aniGroup; QWidget* m_widget; diff --git a/src/tools/buttonwithmenu.cpp b/src/tools/buttonwithmenu.cpp index 46631d7af..ab032c852 100644 --- a/src/tools/buttonwithmenu.cpp +++ b/src/tools/buttonwithmenu.cpp @@ -1,7 +1,7 @@ #include "buttonwithmenu.h" ButtonWithMenu::ButtonWithMenu(QWidget* parent) : - QToolButton(parent) + ToolButton(parent) , m_menu(new QMenu(this)) , m_currentItem(0) { diff --git a/src/tools/buttonwithmenu.h b/src/tools/buttonwithmenu.h index 32a88b919..0978b6ba9 100644 --- a/src/tools/buttonwithmenu.h +++ b/src/tools/buttonwithmenu.h @@ -6,7 +6,9 @@ #include #include -class ButtonWithMenu : public QToolButton +#include "toolbutton.h" + +class ButtonWithMenu : public ToolButton { Q_OBJECT public: diff --git a/src/tools/clickablelabel.h b/src/tools/clickablelabel.h index 79fe02052..70ee781c3 100644 --- a/src/tools/clickablelabel.h +++ b/src/tools/clickablelabel.h @@ -24,6 +24,10 @@ class ClickableLabel : public QLabel { Q_OBJECT + Q_PROPERTY(QSize fixedsize READ size WRITE setFixedSize) + Q_PROPERTY(int fixedwidth READ width WRITE setFixedWidth) + Q_PROPERTY(int fixedheight READ height WRITE setFixedHeight) + public: explicit ClickableLabel(QWidget* parent = 0); diff --git a/src/tools/docktitlebarwidget.ui b/src/tools/docktitlebarwidget.ui index b0a40907f..57446347a 100644 --- a/src/tools/docktitlebarwidget.ui +++ b/src/tools/docktitlebarwidget.ui @@ -6,12 +6,15 @@ 0 0 - 667 + 116 24 - - + + + 0 + 0 + diff --git a/src/tools/toolbutton.cpp b/src/tools/toolbutton.cpp new file mode 100644 index 000000000..1247c468a --- /dev/null +++ b/src/tools/toolbutton.cpp @@ -0,0 +1,78 @@ +#include "toolbutton.h" + +ToolButton::ToolButton(QWidget* parent) + : QToolButton(parent) + , m_usingMultiIcon(false) +{ +} + +void ToolButton::setThemeIcon(const QString &icon) +{ + m_themeIcon = icon; + setIcon(QIcon::fromTheme(icon)); + m_usingMultiIcon = false; +} + +void ToolButton::setIcon(const QIcon &icon) +{ + if (m_usingMultiIcon) + setFixedSize(sizeHint()); + m_usingMultiIcon = false; + + QToolButton::setIcon(icon); +} + +void ToolButton::setData(const QVariant &data) +{ + m_data = data; +} + +QVariant ToolButton::data() +{ + return m_data; +} + +void ToolButton::setMultiIcon(const QPixmap &icon) +{ + int w = icon.width(); + int h = icon.height(); + + m_normalIcon = icon.copy(0, 0, w, h/4 ); + m_hoverIcon = icon.copy(0, h/4, w, h/4 ); + m_activeIcon = icon.copy(0, h/2, w, h/4 ); + m_disabledIcon = icon.copy(0, 3*h/4, w, h/4 ); + + m_usingMultiIcon = true; + + setFixedSize(m_normalIcon.size()); +} + +void ToolButton::paintEvent(QPaintEvent *e) +{ + if (!m_usingMultiIcon) { + QToolButton::paintEvent(e); + return; + } + + QPainter p(this); + + QStyleOptionToolButton opt; + opt.init(this); + + if (!isEnabled()) { + p.drawPixmap(0, 0, m_disabledIcon); + return; + } + + if (isDown()) { + p.drawPixmap(0, 0, m_activeIcon); + return; + } + + if (opt.state & QStyle::State_MouseOver) { + p.drawPixmap(0, 0, m_hoverIcon); + return; + } + + p.drawPixmap(0, 0, m_normalIcon); +} diff --git a/src/tools/toolbutton.h b/src/tools/toolbutton.h new file mode 100644 index 000000000..d2b4712ef --- /dev/null +++ b/src/tools/toolbutton.h @@ -0,0 +1,52 @@ +#ifndef TOOLBUTTON_H +#define TOOLBUTTON_H + +#include +#include +#include +#include + +class ToolButton : public QToolButton +{ + Q_OBJECT + Q_PROPERTY(QSize fixedsize READ size WRITE setFixedSize) + Q_PROPERTY(int fixedwidth READ width WRITE setFixedWidth) + Q_PROPERTY(int fixedheight READ height WRITE setFixedHeight) + Q_PROPERTY(QPixmap multiIcon READ pixmap WRITE setMultiIcon) + Q_PROPERTY(QIcon icon READ icon WRITE setIcon) + Q_PROPERTY(QString themeIcon READ themeIcon WRITE setThemeIcon) + +public: + explicit ToolButton(QWidget* parent = 0); + + void setData(const QVariant& data); + QVariant data(); + + void setMultiIcon(const QPixmap &icon); + QPixmap pixmap() { return m_normalIcon; } + + void setThemeIcon(const QString &icon); + QString themeIcon() { return m_themeIcon; } + + void setIcon(const QIcon &icon); + +signals: + +public slots: + +private: + void paintEvent(QPaintEvent *e); + + bool m_usingMultiIcon; + + QPixmap m_normalIcon; + QPixmap m_hoverIcon; + QPixmap m_activeIcon; + QPixmap m_disabledIcon; + + QString m_themeIcon; + QVariant m_data; + +}; + +#endif // TOOLBUTTON_H diff --git a/src/webview/jsalert.ui b/src/webview/jsalert.ui index a5540067d..306e4d58a 100644 --- a/src/webview/jsalert.ui +++ b/src/webview/jsalert.ui @@ -58,19 +58,15 @@ - - #frame_2 { -background-color: #f3f3f3; -border: 1px solid black; -border-top: 0px; -} - QFrame::StyledPanel QFrame::Raised + + true + @@ -166,19 +162,15 @@ border-top: 0px; - - #frame { -border: 1px solid black; -border-bottom: 0px; -background-color: white; -} - QFrame::StyledPanel QFrame::Raised + + true + 20 diff --git a/src/webview/jsconfirm.ui b/src/webview/jsconfirm.ui index ccaedc3c4..ecc698f98 100644 --- a/src/webview/jsconfirm.ui +++ b/src/webview/jsconfirm.ui @@ -19,19 +19,15 @@ - - #frame { -border: 1px solid black; -border-bottom: 0px; -background-color: white; -} - QFrame::StyledPanel QFrame::Raised + + true + 20 @@ -126,19 +122,15 @@ background-color: white; - - #frame_2 { -background-color: #f3f3f3; -border: 1px solid black; -border-top: 0px; -} - QFrame::StyledPanel QFrame::Raised + + true + 0 diff --git a/src/webview/jsprompt.ui b/src/webview/jsprompt.ui index f2e5aab67..4d8b7ffde 100644 --- a/src/webview/jsprompt.ui +++ b/src/webview/jsprompt.ui @@ -13,9 +13,6 @@ - - - 0 @@ -48,19 +45,15 @@ - - #frame { -border: 1px solid black; -border-bottom: 0px; -background-color: white; -} - QFrame::StyledPanel QFrame::Raised + + true + 20 @@ -128,19 +121,15 @@ background-color: white; - - #frame_2 { -background-color: #f3f3f3; -border: 1px solid black; -border-top: 0px; -} - QFrame::StyledPanel QFrame::Raised + + true + 0 diff --git a/src/webview/searchtoolbar.cpp b/src/webview/searchtoolbar.cpp index 5084a7e77..8db1fb28d 100644 --- a/src/webview/searchtoolbar.cpp +++ b/src/webview/searchtoolbar.cpp @@ -22,7 +22,7 @@ #include "ui_searchtoolbar.h" SearchToolBar::SearchToolBar(QupZilla* mainClass, QWidget* parent) - : AnimatedWidget(AnimatedWidget::Up, parent) + : AnimatedWidget(AnimatedWidget::Up, 300, parent) , ui(new Ui::SearchToolbar) , p_QupZilla(mainClass) , m_findFlags(0) @@ -102,14 +102,19 @@ void SearchToolBar::refreshFindFlags() void SearchToolBar::searchText(const QString &text) { bool found = p_QupZilla->weView()->findText(text, QFlags(m_findFlags)); - if (!found && !ui->lineEdit->text().isEmpty()) { - ui->lineEdit->setStyleSheet("background-color: #ff6666;"); + if (text.isEmpty()) + found = true; + + if (!found) ui->results->setText(tr("No results found.")); - } - else{ - ui->lineEdit->setStyleSheet(""); + else ui->results->clear(); - } + + + ui->lineEdit->setProperty("notfound", !found); + + ui->lineEdit->style()->unpolish(ui->lineEdit); + ui->lineEdit->style()->polish(ui->lineEdit); } SearchToolBar::~SearchToolBar() diff --git a/src/webview/tabbar.cpp b/src/webview/tabbar.cpp index b53ef7208..815c7d5da 100644 --- a/src/webview/tabbar.cpp +++ b/src/webview/tabbar.cpp @@ -25,8 +25,8 @@ TabBar::TabBar(QupZilla* mainClass, QWidget* parent) : ,p_QupZilla(mainClass) ,m_clickedTab(0) { + setObjectName("tabbar"); setContextMenuPolicy(Qt::CustomContextMenu); - setObjectName("tabBar"); setElideMode(Qt::ElideRight); setTabsClosable(true); setDocumentMode(true); @@ -37,7 +37,7 @@ TabBar::TabBar(QupZilla* mainClass, QWidget* parent) : void TabBar::loadSettings() { - QSettings settings(mApp->getActiveProfil()+"settings.ini", QSettings::IniFormat); + QSettings settings(mApp->getActiveProfilPath()+"settings.ini", QSettings::IniFormat); settings.beginGroup("Browser-Tabs-Settings"); setMovable( settings.value("makeTabsMovable",true).toBool() ); diff --git a/src/webview/tabwidget.cpp b/src/webview/tabwidget.cpp index 64fe1545c..f8e02a332 100644 --- a/src/webview/tabwidget.cpp +++ b/src/webview/tabwidget.cpp @@ -26,6 +26,8 @@ #include "clickablelabel.h" #include "closedtabsmanager.h" #include "progressbar.h" +#include "navigationbar.h" +#include "toolbutton.h" class NewTabButton : public QToolButton { @@ -103,10 +105,9 @@ TabWidget::TabWidget(QupZilla* mainClass, QWidget* parent) : , m_closedTabsManager(new ClosedTabsManager(this)) , m_locationBars(new QStackedWidget()) { + setObjectName("tabwidget"); m_tabBar = new TabBar(p_QupZilla); setTabBar(m_tabBar); - setObjectName("tabWidget"); - setStyleSheet("QTabBar::tab{ max-width:250px; max-height: 28px; }"); connect(this, SIGNAL(currentChanged(int)), this, SLOT(currentTabChanged(int))); connect(this, SIGNAL(currentChanged(int)), p_QupZilla, SLOT(refreshHistory())); @@ -122,25 +123,22 @@ TabWidget::TabWidget(QupZilla* mainClass, QWidget* parent) : connect(m_tabBar, SIGNAL(duplicateTab(int)), this, SLOT(duplicateTab(int))); connect(m_tabBar, SIGNAL(tabMoved(int,int)), this, SLOT(tabMoved(int,int))); - m_buttonListTabs = new TabListButton(this); + m_buttonListTabs = new ToolButton(this); + m_buttonListTabs->setObjectName("tabwidget-button-opentabs"); m_menuTabs = new QMenu(); m_buttonListTabs->setMenu(m_menuTabs); m_buttonListTabs->setPopupMode(QToolButton::InstantPopup); m_buttonListTabs->setToolTip(tr("Show list of opened tabs")); - connect(m_menuTabs, SIGNAL(aboutToShow()), this, SLOT(aboutToShowTabsMenu())); - setCornerWidget(m_buttonListTabs); + m_buttonListTabs->setAutoRaise(true); - m_buttonAddTab = new NewTabButton(this); - m_buttonAddTab->setToolTip(tr("Add Tab")); - connect(m_buttonAddTab, SIGNAL(clicked()), p_QupZilla, SLOT(addTab())); - setCornerWidget(m_buttonAddTab, Qt::TopLeftCorner); + connect(m_menuTabs, SIGNAL(aboutToShow()), this, SLOT(aboutToShowTabsMenu())); loadSettings(); } void TabWidget::loadSettings() { - QSettings settings(mApp->getActiveProfil()+"settings.ini", QSettings::IniFormat); + QSettings settings(mApp->getActiveProfilPath()+"settings.ini", QSettings::IniFormat); settings.beginGroup("Browser-Tabs-Settings"); m_hideCloseButtonWithOneTab = settings.value("hideCloseButtonWithOneTab",false).toBool(); m_hideTabBarWithOneTab = settings.value("hideTabsWithOneTab",false).toBool(); @@ -148,18 +146,22 @@ void TabWidget::loadSettings() settings.beginGroup("Web-URL-Settings"); m_urlOnNewTab = settings.value("newTabUrl","").toUrl(); settings.endGroup(); - settings.beginGroup("Browser-View-Settings"); - bool showAddTab = settings.value("showAddTabButton", true).toBool(); - m_buttonAddTab->setVisible(showAddTab); - if (showAddTab && !cornerWidget(Qt::TopLeftCorner)) - setCornerWidget(m_buttonAddTab, Qt::TopLeftCorner); - else if (!showAddTab && cornerWidget(Qt::TopLeftCorner)) - setCornerWidget(0, Qt::TopLeftCorner); - settings.endGroup(); m_tabBar->loadSettings(); } +void TabWidget::resizeEvent(QResizeEvent *e) +{ + QPoint posit; + posit.setY(0); + posit.setX(width() - m_buttonListTabs->width()); + m_buttonListTabs->move(posit); + + m_buttonListTabs->setVisible(getTabBar()->isVisible()); + + QTabWidget::resizeEvent(e); +} + void TabWidget::aboutToShowTabsMenu() { m_menuTabs->clear(); @@ -172,7 +174,7 @@ void TabWidget::aboutToShowTabsMenu() continue; QAction* action = new QAction(this); if (view == actView) - action->setIcon(QIcon(":/icons/menu/circle.png")); + action->setIcon(QIcon(":/icons/menu/dot.png")); else action->setIcon(_iconForUrl(view->url())); if (view->title().isEmpty()) { @@ -243,7 +245,7 @@ int TabWidget::addView(QUrl url, const QString &title, OpenUrlIn openIn, bool se connect(webView, SIGNAL(ipChanged(QString)), p_QupZilla->ipLabel(), SLOT(setText(QString))); if (url.isValid()) - webView->load(url); + webView->setUrl(url); if (selectLine) p_QupZilla->locationBar()->setFocus(); @@ -332,12 +334,10 @@ void TabWidget::currentTabChanged(int index) p_QupZilla->ipLabel()->hide(); p_QupZilla->progressBar()->setVisible(true); p_QupZilla->progressBar()->setValue(webView->getLoading()); - p_QupZilla->buttonStop()->setVisible(true); - p_QupZilla->buttonReload()->setVisible(false); + p_QupZilla->navigationBar()->showStopButton(); } else { p_QupZilla->progressBar()->setVisible(false); - p_QupZilla->buttonStop()->setVisible(false); - p_QupZilla->buttonReload()->setVisible(true); + p_QupZilla->navigationBar()->showReloadButton(); p_QupZilla->ipLabel()->show(); } @@ -394,7 +394,7 @@ void TabWidget::restoreClosedTab() QDataStream historyStream(tab.history); historyStream >> *weView(index)->history(); - weView(index)->load(tab.url); + weView(index)->setUrl(tab.url); } void TabWidget::restoreAllClosedTabs() @@ -408,7 +408,7 @@ void TabWidget::restoreAllClosedTabs() QDataStream historyStream(tab.history); historyStream >> *weView(index)->history(); - weView(index)->load(tab.url); + weView(index)->setUrl(tab.url); } m_closedTabsManager->clearList(); } @@ -464,7 +464,7 @@ void TabWidget::savePinnedTabs() } stream << tabs; stream << tabsHistory; - QFile file(mApp->getActiveProfil()+"pinnedtabs.dat"); + QFile file(mApp->getActiveProfilPath()+"pinnedtabs.dat"); file.open(QIODevice::WriteOnly); file.write(data); file.close(); @@ -472,7 +472,7 @@ void TabWidget::savePinnedTabs() void TabWidget::restorePinnedTabs() { - QFile file(mApp->getActiveProfil()+"pinnedtabs.dat"); + QFile file(mApp->getActiveProfilPath()+"pinnedtabs.dat"); file.open(QIODevice::ReadOnly); QByteArray sd = file.readAll(); file.close(); @@ -495,7 +495,7 @@ void TabWidget::restorePinnedTabs() addedIndex= addView(QUrl()); QDataStream historyStream(historyState); historyStream >> *weView(addedIndex)->history(); - weView(addedIndex)->load(url); + weView(addedIndex)->setUrl(url); } else { addedIndex = addView(url); } @@ -564,7 +564,7 @@ bool TabWidget::restoreState(const QByteArray &state) int index = addView(QUrl()); QDataStream historyStream(historyState); historyStream >> *weView(index)->history(); - weView(index)->load(url); + weView(index)->setUrl(url); } else { addView(url); } @@ -577,6 +577,5 @@ bool TabWidget::restoreState(const QByteArray &state) TabWidget::~TabWidget() { delete m_menuTabs; - delete m_buttonAddTab; delete m_buttonListTabs; } diff --git a/src/webview/tabwidget.h b/src/webview/tabwidget.h index a298aee15..25de51c98 100644 --- a/src/webview/tabwidget.h +++ b/src/webview/tabwidget.h @@ -34,6 +34,7 @@ class WebTab; class TabListButton; class NewTabButton; class ClosedTabsManager; +class ToolButton; class TabWidget : public QTabWidget { @@ -79,6 +80,7 @@ private slots: void tabMoved(int before, int after); private: + void resizeEvent(QResizeEvent *e); inline WebView* weView() { WebTab* webTab = qobject_cast(widget(currentIndex())); if (!webTab) return 0; return webTab->view(); } inline WebView* weView(int index) { WebTab* webTab = qobject_cast(widget(index)); if (!webTab) return 0; return webTab->view(); } @@ -93,8 +95,7 @@ private: TabBar* m_tabBar; QMenu* m_menuTabs; - NewTabButton* m_buttonAddTab; - TabListButton* m_buttonListTabs; + ToolButton* m_buttonListTabs; ClosedTabsManager* m_closedTabsManager; QStackedWidget* m_locationBars; diff --git a/src/webview/webview.cpp b/src/webview/webview.cpp index eeebbe520..9abde6093 100644 --- a/src/webview/webview.cpp +++ b/src/webview/webview.cpp @@ -33,6 +33,7 @@ #include "webtab.h" #include "statusbarmessage.h" #include "progressbar.h" +#include "navigationbar.h" WebView::WebView(QupZilla* mainClass, WebTab* webTab) : QWebView(webTab) @@ -119,7 +120,7 @@ void WebView::urlChanged(const QUrl &url) { if (isCurrent()) { emit showUrl(url); - p_QupZilla->refreshHistory(); + p_QupZilla->navigationBar()->refreshHistory(); } if (m_lastUrl != url) emit changed(); @@ -142,8 +143,7 @@ void WebView::setProgress(int prog) p_QupZilla->ipLabel()->hide(); p_QupZilla->progressBar()->setVisible(true); p_QupZilla->progressBar()->setValue(m_progress); - p_QupZilla->buttonStop()->setVisible(true); - p_QupZilla->buttonReload()->setVisible(false); + p_QupZilla->navigationBar()->showStopButton(); } } @@ -177,7 +177,7 @@ QLabel* WebView::animationLoading(int index, bool addMovie) QLabel* loadingAnimation = qobject_cast(tabWidget()->getTabBar()->tabButton(index, QTabBar::LeftSide)); if (!loadingAnimation) { loadingAnimation = new QLabel(); - loadingAnimation->setStyleSheet("QLabel { margin: 0px; padding: 0px; }"); + loadingAnimation->setStyleSheet("margin: 0px; padding: 0px; width: 16px; height: 16px;"); } if (addMovie && !loadingAnimation->movie()) { QMovie* movie = new QMovie(":icons/other/progress.gif", QByteArray(), loadingAnimation); @@ -232,7 +232,7 @@ void WebView::loadFinished(bool state) iconChanged(); m_lastUrl = url(); - //Fix the bug where sometimes icon is not available at the moment + //Icon is sometimes not available at the moment of finished loading if (icon().isNull()) QTimer::singleShot(1000, this, SLOT(iconChanged())); @@ -242,8 +242,7 @@ void WebView::loadFinished(bool state) if (isCurrent()) { p_QupZilla->progressBar()->setVisible(false); - p_QupZilla->buttonStop()->setVisible(false); - p_QupZilla->buttonReload()->setVisible(true); + p_QupZilla->navigationBar()->showReloadButton(); p_QupZilla->ipLabel()->show(); } @@ -265,6 +264,9 @@ void WebView::titleChanged() void WebView::iconChanged() { + if (mApp->isClosing()) + return; + // QIcon icon_ = icon(); QIcon icon_ = siteIcon(); if (!icon_.isNull()) diff --git a/translations/cs_CZ.ts b/translations/cs_CZ.ts index ca6d4ca50..1b164176b 100644 --- a/translations/cs_CZ.ts +++ b/translations/cs_CZ.ts @@ -9,7 +9,7 @@ O QupZille - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -18,7 +18,7 @@ p, li { white-space: pre-wrap; } - + Authors Autoři @@ -267,13 +267,13 @@ p, li { white-space: pre-wrap; } BookmarkIcon - - + + Bookmark this Page Přidat stránku do záložek - + Edit this bookmark Upravit záložku @@ -311,7 +311,7 @@ p, li { white-space: pre-wrap; } Přidat složku - + Optimize Database Optimalizovat databázi @@ -332,19 +332,19 @@ p, li { white-space: pre-wrap; } - - - - + + + + Bookmarks In Menu Záložky v menu - - - - + + + + Bookmarks In ToolBar Panel záložek @@ -363,40 +363,35 @@ p, li { white-space: pre-wrap; } Move bookmark to &folder Přesunout záložku do &složky - - - &Close - &Zavřít - - - + + Unsorted Bookmarks Nesetříděné záložky - + <b>Warning: </b>You already have this page bookmarked! <b>Upozornění: </b>Tuto stránku již máte v záložkách! - + Choose name and location of bookmark. Zvolte jméno a umístění záložky. - + Add New Bookmark Přidat záložku - + Choose folder for bookmarks: Zvolte složku pro záložky: - + Bookmark All Tabs Přidat všechny panely do záložek @@ -479,52 +474,42 @@ p, li { white-space: pre-wrap; } BookmarksToolbar - - Bookmarks - Záložky - - - + &Bookmark Current Page Přidat &stránku do záložek - + Bookmark &All Tabs Přidat &všechny panely do záložek - + &Organize Bookmarks Organizovat &záložky - - &Reload Toolbar - &Obnovit panel - - - + Hide Most &Visited Skrýt &Nejnavštěvovanější - + Show Most &Visited Zobrazit &Nejnavštěvovanější - + &Hide Toolbar S&krýt panel - + Most visited Nejnavštěvovanější - + Sites You visited the most Nejvíce navštěvované stránky @@ -585,7 +570,7 @@ p, li { white-space: pre-wrap; } Knihovna - + Search... Hledat... @@ -605,12 +590,12 @@ p, li { white-space: pre-wrap; } RSS - + Database Optimized Databáze optimalizována - + Database successfuly optimized.<br/><br/><b>Database Size Before: </b>%1<br/><b>Databse Size After: </b>%2 Databáze byla úspěšně optimalizována.<br/><br/><b>Velikost databáze před: </b>%1<br/><b>Velikost databáze po: </b>%2 @@ -618,62 +603,62 @@ p, li { white-space: pre-wrap; } ClearPrivateData - + Clear Recent History Vymazat nedávnou historii - + Choose what you want to delete: Vyberte co chcete smazat: - + Clear history Smazat historii - + Clear cookies Smazat cookies - + Clear cache Vyprázdnit vyrovnávací paměť - + Clear icons Smazat ikony - + Clear cookies from Adobe Flash Player Smazat cookies z Adobe Flash Playeru - + <b>Clear Recent History</b> <b>Vymazat nedávnou historii</b> - + Later Today Dnes - + Week Týden - + Month Měsíc - + All Vše @@ -681,37 +666,37 @@ p, li { white-space: pre-wrap; } ClickToFlash - + Object blocked by ClickToFlash Objekt zablokován ClickToFlash pluginem - + Show more informations about object Zobrazit více informací o objektu - + Add %1 to whitelist Přidat %1 na bílou listinu - + Flash Object Flash objekt - + <b>Attribute Name</b> <b>Jméno atributu</b> - + <b>Value</b> <b>Hodnota</b> - + No more informations available. Žádné další informace. @@ -814,11 +799,6 @@ p, li { white-space: pre-wrap; } Remove cookie Odebrat cookie - - - Del - Del - Search @@ -858,12 +838,12 @@ p, li { white-space: pre-wrap; } DownloadItem - + A Clockwork Orange.avi - + Remaining 26 minutes - 339MB of 693 MB (350kB/s) @@ -1049,7 +1029,7 @@ nebyl nalezen! Správce stahování - + Clear Vyčistit @@ -1130,7 +1110,7 @@ nebyl nalezen! Vymazat celou historii - + Optimize Database Optimalizovat databázi @@ -1150,35 +1130,30 @@ nebyl nalezen! Otevřít odkaz v novém panelu - - Close - Zavřít - - - - + + Today Dnes - - + + This Week Tento týden - - + + This Month Tento měsíc - + Confirmation Potvrzení - + Are you sure to delete all history? Opravdu chcete vymazat celou historii? @@ -1305,22 +1280,22 @@ nebyl nalezen! LocationBar - + Show informations about this page Zobrazit informace o stránce - + Add RSS from this page... Přidat RSS kanál ... - + Enter URL address or search on Google.com Zadejte internetovou adresu nebo vyhledávejte na Google.com - + .co.uk .cz Append domain name on ALT key = Should be different for every country @@ -1340,16 +1315,50 @@ nebyl nalezen! MainApplication - + Last session crashed Poslední relace spadla - + <b>QupZilla crashed :-(</b><br/>Oops, last session of QupZilla ends with its crash. We are very sorry. Would you try to restore saved state? <b>QupZilla spadla :-(</b><br/>Oops, poslední relace QupZilly skončila jejím pádem. Velice se omlouváme. Přejete si obnovit uložený stav? + + NavigationBar + + + Back + Zpět + + + + Forward + Vpřed + + + + Home + Domů + + + + New Tab + Nový panel + + + + Main Menu + Hlavní menu + + + + + Exit Fullscreen + Zrušit celou obrazovku + + NetworkManager @@ -1506,7 +1515,7 @@ nebyl nalezen! Obecné - + 1 1 @@ -1568,42 +1577,27 @@ nebyl nalezen! Použít aktuální - + <b>Navigation ToolBar</b> <b>Navigační panel</b> - + <b>Background<b/> <b>Pozadí</b> - - Use background image - Použít obrázek na pozadí - - - + Use transparent background Použít průhledné pozadí - - Choose image... - Vyberte obrázek... - - - - Reset default - Obnovit původní - - - + Maximum Maximálně - + 50 MB 50 MB @@ -1613,22 +1607,22 @@ nebyl nalezen! QupZilla - + Allow storing network cache on disk Povolit ukládání cache na disk - + <b>Cookies</b> <b>Cookies</b> - + <b>Address Bar behaviour</b> <b>Chování adresního řádku</b> - + <b>Language</b> <b>Jazyk</b> @@ -1653,12 +1647,7 @@ nebyl nalezen! Odstranit - - Window - Okno prohlížeče - - - + Show StatusBar on start Zobrazit StatusBar při startu @@ -1668,27 +1657,27 @@ nebyl nalezen! <b>Profily</b> - + Show Bookmarks ToolBar on start Zobrazit panel záložek při startu - + Show Navigation ToolBar on start Zobrazit navigační panel při startu - + Show Home button Zobrazit tlačítko Domů - + Show Back / Forward buttons Zobrazit tlačítka Zpět / Vpřed - + <b>Browser Window</b> <b>Okno prohlížeče</b> @@ -1712,286 +1701,291 @@ nebyl nalezen! Note: You cannot delete active profile. Poznámka: Nemůžete smazat aktivní profil. - - - This is text color used in Menu - Toto je text používaný v menu - - - - Menu text color - Barva menu textu - Notifications Oznámení - + Show Add Tab button Zobrazit 'Přidat panel' tlačítko - + <b>Tabs behavior</b> <b>Chování panelů</b> - + Make tabs movable Přesouvat panely přetažením - + Hide close button if there is only one tab Skrýt zavírací tlačítko při jediném panelu - + Hide tabs when if there is only one tab Skrýt seznam panelů při jediném panelu - + Activate last tab when closing active tab Aktivovat poslední panel při zavírání aktuálního - + Block PopUp windows Blokovat vyskakovací okna - + Allow DNS Prefetch Povolit DNS Prefetch - + JavaScript can access clipboard Povolit JavaScriptu přístup do schránky - + Include links in focus chain Označovat odkazy tabulátorem - + Zoom text only Přibližovat pouze text - + Print element background Tisknout pozadí objektů - + Send Do Not Track header to servers Zasílat serverům Do Not Track hlavičku - + + Appereance + Vzhled + + + + Themes + Témata + + + + Advanced options + Rozšířené možnosti + + + Ask when closing multiple tabs Ptát se při zavírání více panelů - + Mouse wheel scrolls Kolečko myši posune - + lines on page řádků na stránce - + Local Storage Lokální úložiště - + Proxy Configuration Konfigurace Proxy - + <b>Font Families</b> <b>Typy písem</b> - + Standard Standardní - + Fixed Proporcionální - + Serif Serif - + Sans Serif Sans Serif - + Cursive Kurzíva - + Default Font Základní písmo - + Fixed Font Proporcionální písmo - + Fantasy Fantasy - + <b>Font Sizes</b> <b>Velikosti písem</b> - + <b>Download Location</b> <b>Cíl stahování</b> - + Ask everytime for download location U každého souboru se dotázat kam ho uložit - + Use defined location: Uložit všechny soubory do: - - + + ... ... - + <b>Download Options</b> <b>Možnosti stahování</b> - + Use native system file dialog (may or may not cause problems with downloading SSL secured content) Použít nativní systémový dialog pro výběr souboru (může ale také nemusí dělat problémy při stahování SSL zabezpečeného obsahu) - + <b>Notifications</b> <b>Oznámení</b> - + Use OSD Notifications Používat OSD oznámení - + Use Native System Notifications (Linux only) Používat nativní systémové oznámení (pouze Linux) - + Do not use Notifications Nepoužívat oznámení - + Expiration timeout: Doba: - + seconds sekund - + <b>Note: </b>You can change position of OSD Notification by dragging it on the screen. <b>Poznámka: </b> Můžete změnit pozici OSD oznámení na obrazovce jejím přetažením. - + <b>User CSS StyleSheet</b> <b>Uživatelský CSS styl</b> - + StyleSheet automatically loaded with all websites: Styl, automaticky načítán ke všem stránkám: - + System proxy configuration Systémové nastavení proxy - + Do not use proxy Nepoužívat proxy - + Manual configuration Manuální nastavení - + Web Configuration Nastavení webu - + HTTP HTTP - + SOCKS5 SOCKS5 - + Port: Port: - + Username: Jméno: - + Password: Heslo: - + Don't use on: Nepužívat na: @@ -2001,27 +1995,27 @@ nebyl nalezen! Prohlížení - + Load images Nahrát obrázky - + Allow JAVA Povolit JAVA - + Allow JavaScript Povolit JavaScript - + Allow Plugins (Flash plugin) Povolit pluginy (Flash plugin) - + Maximum pages in cache: Maximum stránek v cache: @@ -2031,12 +2025,12 @@ nebyl nalezen! Správce hesel - + <b>AutoFill options</b> <b>Možnosti doplňování</b> - + Allow saving passwords from sites Povolit ukládání hesel ze stránek @@ -2046,47 +2040,47 @@ nebyl nalezen! Soukromí - + Filter Tracking Cookies Filtrovat sledovací cookies - + Allow storing of cookies Povolit přijímání cookies - + Delete cookies on close Vymazat cookies při zavření prohlížeče - + Match domain exactly Vyžadovat přesnou shodu domény - + <b>Warning:</b> Match domain exactly and Filter Tracking Cookies options can lead to deny some cookies from sites. If you have problems with cookies, try to disable this options first! <b>Upozornění:</b> Možnosti vyžadovat přesnou shodu domény a filtrovat sledovací cookies mohou vést k odmítnutí některých cookies. Pokud máte problémy s cookies, zkuste nejdříve tyto možnosti zakázat! - + Cookies Manager Správce cookies - + Allow storing web icons Povolit ukládání ikon - + Allow saving history Povolit ukládání historie - + Delete history on close Vymazat historii při zavření prohlížeče @@ -2096,94 +2090,89 @@ nebyl nalezen! Ostatní - + Select all text by double clicking in address bar Select all text by clicking at address bar Označit vše při dvojitém kliknutí do adresního řádku - + Add .com domain by pressing CTRL key Přidat .com doménu stisknutím CTRL klávesy - + Add .co.uk domain by pressing ALT key Přidat .cz doménu stísknutím ALT klávesy - + SSL Manager Správce certifikátů - + Available translations: Dostupné překlady: - + In order to change language, you must restart browser. Ke změně jazyka je nutný restart prohlížeče. - + OSD Notification OSD Oznámení - + Drag it on the screen to place it where You want. Přetáhněte ho na obrazovce na místo, na kterém jej chcete mít. - + Choose download location... Vyberte složku pro stahování... - - Choose background location... - - - - + Choose stylesheet location... Vyberte umístění stylu... - + New Profile Nový profil - + Enter the new profile's name: Zvolte jméno nového profilu: - - + + Error! Chyba! - + This profile already exists! Tento profil již existuje! - + Cannot create profile directory! Nemohu vytvořit složku profilu! - + Confirmation Potvrzení - + Are you sure to permanently delete "%1" profile? This action cannot be undone! Jste si jisti že chcete permanentně smazat profil "%1"? Tato akce nelze vrátit zpět! @@ -2224,443 +2213,403 @@ nebyl nalezen! QupZilla - + File Soubor - + Edit Úpravy - + Tools Nástroje - + Help Nápověda - + View Zobrazení - - + + Bookmarks Záložky - - + + History Historie - + Quit Konec - + New Tab Nový panel - + Close Tab Zavřít panel - + IP Address of current page IP Adresa aktuální stránky - + &New Window &Nové okno - + Open &File Otevřít &soubor - + &Save Page As... &Uložit stránku jako... - + &Print &Tisk - - Stop - Zastavit - - - - Reload - Obnovit - - - + &Undo &Zpět - + &Redo &Vpřed - + &Cut V&yjmout - + C&opy &Kopírovat - + &Paste V&ložit - + &Delete &Odstranit - + Select &All Vyb&rat vše - + &Find &Najít - + &Navigation Toolbar &Navigační lišta - + &Bookmarks Toolbar Panel &záložek - + Sta&tus Bar Sta&tus bar - + Toolbars Nástrojové lišty - + Sidebars Postranní lišta - + &Page Source Zdrojový &kód stránky - + &Menu Bar &Menu - + &Fullscreen &Celá obrazovka - + &Stop Z&astavit - + &Reload O&bnovit - + Character &Encoding Kó&dování znaků - + Zoom &In Zoo&m + - + Zoom &Out Z&oom - - + Reset Původní - - Back - Zpět - - - - Forward - Vpřed - - - - Home - Domů - - - + Close Window Zavřít okno - + Open Location Otevřít adresu - + Send Link... Poslat odkaz... - + Other Ostatní - + Default Defaultní - + Start Private Browsing Spustit anonymní prohlížení - - Navigation - Navigace - - - - Main Menu - Hlavní menu - - - - Exit Fullscreen - Zrušit celou obrazovku - - - + Private Browsing Enabled Soukromé prohlížení zapnuto - + Restore &Closed Tab Obnovit zavř&ený panel - + Bookmarks In ToolBar Bookmarks In Toolbar Panel záložek - - - + + + Empty Prázdný - + New tab Nový panel - + Bookmark &This Page Přidat &stránku do záložek - + Bookmark &All Tabs Přidat &všechny panely do záložek - + Organize &Bookmarks Organizovat &záložky - + &Back &Zpět - + &Forward &Vpřed - + &Home &Domů - + Show &All History Zobrazit celou &historii - + Closed Tabs Zavřené panely - + Restore All Closed Tabs Obnovit všechny zavřené panely - + Clear list Vyčistit seznam - + Report &Bug Nahlásit &bug - + About &Qt O &Qt - + &About QupZilla &O QupZille - + &Web Search Hledání na &webu - + Page &Info Informace o &stránce - + &Download Manager Správce s&tahování - + &Cookies Manager Správce coo&kies - + &AdBlock &AdBlock - + RSS &Reader &RSS čtečka - + Clear Recent &History Vymazat nedá&vnou historii - + &Private Browsing Soukromé prohlíž&ení - + Pr&eferences Předvo&lby - - + + Web Inspector Web Inspektor - + Open file... Otevřít soubor... - + Are you sure you want to turn on private browsing? Jste si jistý že chcete zapnout soukromé prohlížení? - + When private browsing is turned on, some actions concerning your privacy will be disabled: Se zapnutým soukromým prohlížením jsou některé akce týkající se soukromí vypnuty: - + Webpages are not added to the history. Stránky nejsou přidávány do historie. - + New cookies are not stored, but current cookies can be accessed. Nové cookies nejsou přijímány, ale současné cookies jsou zasílány. - + Your session won't be stored. Vaše relace nebude uložena. - + Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. Než zavřete prohlížeč, stále můžete použít tlačítka Zpět a Vpřed k vrácení se na stránky které jste otevřeli. - + There are still %1 open tabs and your session won't be stored. Are you sure to quit? Ještě je otevřeno %1 panelů a Vaše relace nebude uložena. Opravdu chcete skončit? @@ -2673,7 +2622,7 @@ nebyl nalezen! RSS čtečka - + Empty Prázdný @@ -2686,22 +2635,22 @@ Please add some with RSS icon in navigation bar on site which offers feeds. - + Reload Obnovit - + Edit feed Upravit kanál - + Delete feed Smazat kanál - + Optimize Database Optimalizovat databázi @@ -2747,28 +2696,23 @@ Prosím přidejte si nějaký kliknutím na RSS ikonku v navigačním řádku.Otevřít odkaz v novém panelu - - Close - Zavřít - - - - + + New Tab Nový panel - + Error in fetching feed Chyba při stahování kanálu - + RSS feed duplicated Duplikovaný kanál - + You already have this feed. Tento kanál již odebíráte. @@ -2799,6 +2743,19 @@ Prosím přidejte si nějaký kliknutím na RSS ikonku v navigačním řádku.Přidat + + ReloadStopButton + + + Stop + Zastavit + + + + Reload + Obnovit + + SSLManager @@ -2860,7 +2817,7 @@ Prosím přidejte si nějaký kliknutím na RSS ikonku v navigačním řádku. SearchToolBar - + No results found. Nic nenalezeno. @@ -3380,38 +3337,51 @@ Prosím přidejte si nějaký kliknutím na RSS ikonku v navigačním řádku. TabWidget - + Show list of opened tabs Zobrazit seznam otevřených panelů - - Add Tab - Nový panel - - - + Loading... Načítám... - - + + No Named Page Bezejmenná stránka - + Actually You have %1 opened tabs Dohromady máte otevřeno %1 panelů - - + + New tab Nový panel + + ThemeManager + + + <b>Name:</b> + <b>Název:</b> + + + + <b>Author:</b> + <b>Autor:</b> + + + + <b>Description:</b> + <b>Popis:</b> + + Updater @@ -3440,82 +3410,82 @@ Prosím přidejte si nějaký kliknutím na RSS ikonku v navigačním řádku. - + Server refused the connection Server odmítl spojení - + Server closed the connection Server ukončil spojení - + Server not found Server nenalezen - + Connection timed out Spojení vypršelo - + Untrusted connection Nedůvěryhodné spojení - + AdBlocked Content AdBlock obsah - + Blocked by rule <i>%1</i> Blokováno pravidlem <i>%1</i> - + Content Access Denied Odmítnut přístup k obsahu - + Error code %1 Chybový kód %1 - + Failed loading page Chyba při načítání stránky - + QupZilla can't load page from %1. QupZilla nemůže načíst stránku ze serveru %1. - + Check the address for typing errors such as <b>ww.</b>example.com instead of <b>www.</b>example.com Zkontrolujte, zda je adresa napsána správně a neobsahuje chyby jako <b>ww.</b>server.cz místo <b>www</b>.server.cz - + If you are unable to load any pages, check your computer's network connection. Pokud se vám nezobrazují ani ostatní stránky, zkontrolujte síťové připojení svého počítače. - + If your computer or network is protected by a firewall or proxy, make sure that QupZilla is permitted to access the Web. Pokud je váš počítač chráněn firewallem a nebo proxy serverem, zkontrolujte, zda má QupZilla přístup na Internet. - + Try Again Zkusit znovu - + Choose file... Vyberte soubor... @@ -3528,134 +3498,134 @@ Prosím přidejte si nějaký kliknutím na RSS ikonku v navigačním řádku.Načítám... - + Open link in new &tab Otevřít odkaz v novém &panelu - + Open link in new &window Otevřít odkaz v novém &okně - + B&ookmark link Přidat odkaz do zá&ložek - + &Save link as... &Uložit odkaz jako... - + &Copy link address &Kopírovat adresu odkazu - + Show i&mage Zobrazit &obrázek - + Copy im&age &Kopírovat obrázek - + Copy image ad&dress Kopírovat adr&esu obrázku - + S&top &Zastavit - + Show info ab&out site Zobrazit &informace o stránce - + Show Web &Inspector Zobrazit Web &Inspektor - + Search "%1 .." on &Google Hledat "%1 .." na &Googlu - + &Save image as... &Uložit obrázek jako... - + Failed loading page Chyba při načítání stránky - + &Back &Zpět - + &Forward &Vpřed - + &Reload &Obnovit - + Book&mark page Přidat stránku do zá&ložek - + &Save page as... &Uložit stránku jako... - + Select &all Vyb&rat vše - + Show so&urce code Zobrazit zdrojový kó&d - + No Named Page Bezejmenná stránka - - - + + + New tab Nový panel - + Send link... Odeslat odkaz... - + Send image... Odeslat obrázek... - + Send page... Odeslat stránku... @@ -3663,7 +3633,7 @@ Prosím přidejte si nějaký kliknutím na RSS ikonku v navigačním řádku. jsAlert - + Prevent this page from creating additional dialogs Zabránit stránce ve vytváření dalších dialogů diff --git a/translations/sk_SK.ts b/translations/sk_SK.ts index 4e7721c09..032967f40 100644 --- a/translations/sk_SK.ts +++ b/translations/sk_SK.ts @@ -9,7 +9,7 @@ O QupZille - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -22,7 +22,7 @@ p, li { white-space: pre-wrap; } <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p></body></html> - + Authors Autori @@ -271,13 +271,13 @@ p, li { white-space: pre-wrap; } BookmarkIcon - - + + Bookmark this Page Pridať stránku do záložiek - + Edit this bookmark Upraviť záložku @@ -315,7 +315,7 @@ p, li { white-space: pre-wrap; } Pridať zložku - + Optimize Database Optimalizovať databázu @@ -336,19 +336,19 @@ p, li { white-space: pre-wrap; } - - - - + + + + Bookmarks In Menu Záložky v menu - - - - + + + + Bookmarks In ToolBar Panel záložiek @@ -367,40 +367,35 @@ p, li { white-space: pre-wrap; } Move bookmark to &folder Presunúť záložku do &zložky - - - &Close - &Zavrieť - - - + + Unsorted Bookmarks Nezotriedené záložky - + <b>Warning: </b>You already have this page bookmarked! <b>Upozornenie: </b>Túto stránku máte už v záložkách! - + Choose name and location of bookmark. Zvoľte meno a umiestnenie záložky. - + Add New Bookmark Pridať záložku - + Choose folder for bookmarks: Zvoľte zložku pre záložku: - + Bookmark All Tabs Pridať všetky panely do záložiek @@ -483,52 +478,42 @@ p, li { white-space: pre-wrap; } BookmarksToolbar - - Bookmarks - Záložky - - - + &Bookmark Current Page Pridať &stránku do záložiek - + Bookmark &All Tabs Pridať &všetky panely do záložiek - + &Organize Bookmarks &Organizovať záložky - - &Reload Toolbar - O&bnoviť panel - - - + Hide Most &Visited Skryť &Najnavštevovanejšie - + Show Most &Visited Zobraziť &Najnavštevovanejšie - + &Hide Toolbar Skr&yť panel - + Most visited Najnavštevovanejšie - + Sites You visited the most Najnavštívenejšie stránky @@ -589,7 +574,7 @@ p, li { white-space: pre-wrap; } Knižnica - + Search... Hľadať... @@ -609,12 +594,12 @@ p, li { white-space: pre-wrap; } RSS - + Database Optimized Databáza optimalizovaná - + Database successfuly optimized.<br/><br/><b>Database Size Before: </b>%1<br/><b>Databse Size After: </b>%2 Databáza bola úspešne optimalizovaná.<br/><br/><b>Veľkosť databáze pred: </b>%1<br/><b>Veľkosť databáze por: </b>%2 @@ -622,62 +607,62 @@ p, li { white-space: pre-wrap; } ClearPrivateData - + Clear Recent History Vymazať nedávnu históriu - + Choose what you want to delete: Vyberte, čo chcete zmazať: - + Clear history Zmazať históriu - + Clear cookies Zmazať cookies - + Clear cache Zmazať vyrovnávaciu pamäť - + Clear icons Zmazať ikony - + Clear cookies from Adobe Flash Player Zmazať cookies z Adobe Flash Playeru - + <b>Clear Recent History</b> <b>Vymazať nedávnu históriu</b> - + Later Today Deň - + Week Týždeň - + Month Mesiac - + All Všetko @@ -685,37 +670,37 @@ p, li { white-space: pre-wrap; } ClickToFlash - + Object blocked by ClickToFlash Objekt zablokovaný ClickToFlash pluginom - + Show more informations about object Zobraziť viac informácií o projekte - + Add %1 to whitelist Pridať %1 na bielu listinu - + Flash Object Flash objekt - + <b>Attribute Name</b> <b>Názov atribúty</b> - + <b>Value</b> <b>Hodnota</b> - + No more informations available. Žiadne ďalšie informácie. @@ -817,11 +802,6 @@ p, li { white-space: pre-wrap; } Remove cookie Odstrániť cookie - - - Del - Del - Search @@ -861,12 +841,12 @@ p, li { white-space: pre-wrap; } DownloadItem - + A Clockwork Orange.avi - + Remaining 26 minutes - 339MB of 693 MB (350kB/s) @@ -1052,7 +1032,7 @@ p, li { white-space: pre-wrap; } Správca sťahovania - + Clear Vyčistiť @@ -1133,7 +1113,7 @@ p, li { white-space: pre-wrap; } Vymazať celú históriu - + Optimize Database Optimalizovať databázu @@ -1153,35 +1133,30 @@ p, li { white-space: pre-wrap; } Otvoriť odkaz na novom panely - - Close - Zavrieť - - - - + + Today Dnes - - + + This Week Tento týždeň - - + + This Month Tento mesiac - + Confirmation Potvrdenie - + Are you sure to delete all history? Skutočne chcete vymazať celú históriu? @@ -1308,22 +1283,22 @@ p, li { white-space: pre-wrap; } LocationBar - + Show informations about this page Zobraziť informácie o tejto stránke - + Add RSS from this page... Pridať RSS kanál... - + Enter URL address or search on Google.com Zadajte URL adresu alebo vyhľadajte na Google.com - + .co.uk Append domain name on ALT key = Should be different for every country .sk @@ -1342,16 +1317,50 @@ p, li { white-space: pre-wrap; } MainApplication - + Last session crashed Posledná relácia spadla - + <b>QupZilla crashed :-(</b><br/>Oops, last session of QupZilla ends with its crash. We are very sorry. Would you try to restore saved state? <b>QupZilla spadla :-(</b><br/>Oops, posledná relácia QupZilly skončila chybou. Prepáčte. Chcete obnoviť uložený stav? + + NavigationBar + + + Back + Späť + + + + Forward + Dopredu + + + + Home + Domov + + + + New Tab + Nový panel + + + + Main Menu + Hlavné menu + + + + + Exit Fullscreen + Ukončiť režím Fullscreen + + NetworkManager @@ -1508,7 +1517,7 @@ p, li { white-space: pre-wrap; } Hlavné - + 1 1 @@ -1599,62 +1608,57 @@ p, li { white-space: pre-wrap; } <b>Hlavné</b> - - Window - Okno prehliadača - - - + Show StatusBar on start Zobraziť StatusBar pri štarte - + Show Bookmarks ToolBar on start Zobraziť panel záložiek pri štarte - + Show Navigation ToolBar on start Zobraziť navigačný panel pri štarte - + <b>Navigation ToolBar</b> <b>Navigačný panel</b> - + Allow storing network cache on disk Povoliť ukladanie sieťovej cache na disk - + <b>Cookies</b> <b>Cookies</b> - + <b>Address Bar behaviour</b> <b>Chovanie adresového riadku</b> - + <b>Language</b> <b>Jazyk</b> - + Show Home button Zobraziť tlačidlo domov - + Show Back / Forward buttons Zobraziť tlačidlo Späť / Dopredu - + <b>Browser Window</b> <b>Okno prehliadača</b> @@ -1670,78 +1674,63 @@ p, li { white-space: pre-wrap; } Použiť aktuálny - + <b>Background<b/> <b>Pozadie<b/> - - Use background image - Použiť pozadie - - - + Use transparent background Použiť priehľadné pozadie - - Choose image... - Zvoľte obrázok... - - - - Reset default - Obnoviť povodné - - - + <b>Tabs behavior</b> <b>Chovanie panelov</b> - + Make tabs movable Presunúť panely pretiahnutím - + Hide close button if there is only one tab Skryť zavieracie tlačidlo pri jednom panely - + Hide tabs when if there is only one tab Skryť zoznam panelov pri jednom panely - + Web Configuration Nastavenie Webu - + Maximum Maximálne - + 50 MB 50 MB - + Ask everytime for download location Pri každom súbore sa spýtať kde ho uložiť - + Use defined location: Uložiť všetky súbory do: - - + + ... ... @@ -1751,27 +1740,27 @@ p, li { white-space: pre-wrap; } Prehliadanie - + Load images Nahrať obrázky - + Allow JAVA Povoliť JAVA - + Allow JavaScript Povoliť JavaScript - + Allow Plugins (Flash plugin) Povoliť pluginy (Flash plugin) - + Maximum pages in cache: Maximum stránok v cache: @@ -1781,12 +1770,12 @@ p, li { white-space: pre-wrap; } Správca hesiel - + <b>AutoFill options</b> <b>Možnosťi doplňovania</b> - + Allow saving passwords from sites Povoliť ukladanie hesiel zo stránok @@ -1805,290 +1794,295 @@ p, li { white-space: pre-wrap; } Note: You cannot delete active profile. Poznámka: Nemôžete zmazať aktívny profil. - - - This is text color used in Menu - Toto je text používaný v menu - - - - Menu text color - Farba menu textu - Notifications Oznámenie - + Show Add Tab button Zobraziť Pridať panel tlačítko - + Activate last tab when closing active tab Aktivovať posledný panel pri zatváraní aktuálneho - + Block PopUp windows Blokovať vyskakovacie okna - + Allow DNS Prefetch Povoliť DNS Prefetch - + JavaScript can access clipboard Povoliť JavaScriptu prístup do schránky - + Include links in focus chain Označovať odkazy tabulátorom - + Zoom text only Približovať len text - + Print element background Tlačiť pozadie objektu - + Send Do Not Track header to servers Zasielať serverom Do Not Track hlavičku - + + Appereance + Vzhľad + + + + Themes + Témy + + + + Advanced options + Pokročilé naastavenia + + + Ask when closing multiple tabs Pýtať sa pri zavieraní viacerých panelov - + Mouse wheel scrolls Koliečko myši posunie - + lines on page riadky na stránke - + Local Storage Lokálne úložisko - + Proxy Configuration Nastavenie proxy - + <b>Font Families</b> <b>Typy písmen</b> - + Standard Štandardné - + Fixed Proporcionálne - + Serif Serif - + Sans Serif Sans Serif - + Cursive Cursive - + Default Font Základné písmo - + Fixed Font Proporcionálne písmo - + Fantasy Fantasy - + <b>Font Sizes</b> <b>Veľkosti písmen</b> - + <b>Download Location</b> <b>Cieľ sťahovania</b> - + <b>Download Options</b> <b>Možnosti sťahovania</b> - + Use native system file dialog (may or may not cause problems with downloading SSL secured content) Použiť natívny systémový dialóg pre výber súboru (môže ale aj nemusí robiť problémy pri sťahovaní SSL zabezpečeného obsahu) - + Filter Tracking Cookies Filtrovať sledovacie cookies - + Allow storing of cookies Povoliť prijímanie cookies - + Delete cookies on close Vymazať cookies pri zavrení prehliadača - + Match domain exactly Požadovať presnú zhodu domény - + <b>Warning:</b> Match domain exactly and Filter Tracking Cookies options can lead to deny some cookies from sites. If you have problems with cookies, try to disable this options first! <b>Upozornenie:</b> Možnosti požadovanie presnej zhody domény a filtrovať sledovacie cookies môžú viesť k odmietnutiu niektorých cookies zo stránok. Ak máte problémy s cookies, skuste tieto možnosti najskôr zakázať! - + Cookies Manager Správca cookies - + <b>Notifications</b> <b>Oznámenia</b> - + Use OSD Notifications Použiť OSD oznámenia - + Use Native System Notifications (Linux only) Používať natívne systémové oznámenie (len pre Linux) - + Do not use Notifications Nepoužívať oznámenia - + Expiration timeout: Doba: - + seconds sekúnd - + <b>Note: </b>You can change position of OSD Notification by dragging it on the screen. <b>Poznámka: </b>Pretiahnutím oznámenia na obrazovke môžete zmeniť pozíciu jeho OSD. - + <b>User CSS StyleSheet</b> <b>Užívateľský CSS štýl</b> - + StyleSheet automatically loaded with all websites: Štýl automaticky načítať na všetky stránky: - + System proxy configuration Systémové nastavenia proxy - + Do not use proxy Nepoužívať prosy - + Manual configuration Ručné nastavenia - + HTTP HTTP - + SOCKS5 SOCKS5 - + Port: Port: - + Username: Meno: - + Password: Heslo: - + Don't use on: Nepoužívať na: - + Allow storing web icons Povoliť ukládanie ikon - + Allow saving history Povoliť ukladanie histórie - + Delete history on close Vymazať históriu pri zavretí prehliadača @@ -2098,94 +2092,89 @@ p, li { white-space: pre-wrap; } Ostatné - + Select all text by double clicking in address bar Select all text by clicking at address bar Označiť všetko pri dvojtom kliknutí do adresného riadku - + Add .com domain by pressing CTRL key Pridať .com doménu stlačením CTRL klávesy - + Add .co.uk domain by pressing ALT key Pridať .sk doménu stlačením ALT klávesy - + SSL Manager Správca SSL - + Available translations: Dostupné preklady: - + In order to change language, you must restart browser. K zmene jazyku je potrebný reštart prehliadača. - + OSD Notification OSD Oznámenie - + Drag it on the screen to place it where You want. Pretiahnete ho na obrazovke na miesto, na ktorom ho chcete mať. - + Choose download location... Vyberte zložku pre sťahovanie... - - Choose background location... - Zvoľte lokáciu pozadia... - - - + Choose stylesheet location... Vyberte umiestnenie štýlu... - + New Profile Nový profil - + Enter the new profile's name: Zadajte nové meno profilu: - - + + Error! Chyba! - + This profile already exists! Tento profil už existuje! - + Cannot create profile directory! Nemožno vytvoriť zložku profilu! - + Confirmation Potvrdenie - + Are you sure to permanently delete "%1" profile? This action cannot be undone! Ste si istý, že chcete permanentne zmazať profil "%1"? Táto akcia sa nebude dať vrátiť späť! @@ -2226,442 +2215,402 @@ p, li { white-space: pre-wrap; } QupZilla - + File Súbor - + Edit Upraviť - + Tools Nástroje - + Help Pomocník - + View Zobraziť - - + + Bookmarks Záložky - - + + History História - + Quit Koniec - + New Tab Nový panel - + Close Tab Zavriet panel - + IP Address of current page IP Adresa aktuálnej stránky - + &New Window &Nové okno - + Open &File Otvoriť &súbor - + &Save Page As... &Uložiť stránku ako... - + &Print &Tlačiť - - Stop - Zastaviť - - - - Reload - Obnoviť - - - + &Undo &Späť - + &Redo &Dopredu - + &Cut &Vystrihnúť - + C&opy &Kopírovať - + &Paste &Prilepiť - + &Delete &Odstrániť - + Select &All Vybrať vš&etko - + &Find &Hľadať - + &Navigation Toolbar &Navigačná lišta - + &Bookmarks Toolbar Panel &záložiek - + Sta&tus Bar Status &bar - + Toolbars Nástrojové lišty - + Sidebars Bočné lišty - + &Page Source Zdrojový &kód stránky - + &Menu Bar &Menu - + &Fullscreen &Celá obrazovka - + &Stop Zasta&viť - + &Reload &Obnoviť - + Character &Encoding Kódovan&ie znakov - + Zoom &In Prib&lížiť - + Zoom &Out Od&dialiť - + Reset Resetovať - - Back - Späť - - - - Forward - Dopredu - - - - Home - Domov - - - + Close Window Zavrieť okno - + Open Location Otvoriť adresu - + Send Link... Poslať odkaz... - + Other Ostatné - + Default Základné - + Start Private Browsing Spustiť anonymné prehliadanie - - Navigation - Navigácia - - - - Main Menu - Hlavné menu - - - - Exit Fullscreen - Ukončiť režím Fullscreen - - - + Private Browsing Enabled Súkromné prehliadanie je zapnuté - + Restore &Closed Tab Obnoviť zavretý pan&el - + Bookmarks In ToolBar Panel záložiek - - - + + + Empty Prázdny - + New tab Nový panel - + Bookmark &This Page Pridať &stránku do záložiek - + Bookmark &All Tabs Pridať &všetky panely do záložiek - + Organize &Bookmarks &Organizovať záložky - + &Back &Späť - + &Forward &Dopredu - + &Home Do&mov - + Show &All History Zobraziť celú &históriu - + Closed Tabs Zatvorené panely - + Restore All Closed Tabs Obnoviť všetky zatvorené panely - + Clear list Vyčistiť list - + Report &Bug Nahlásiť &chybu - + About &Qt O &Qt - + &About QupZilla &O QupZille - + &Web Search Hladať na &webu - + Page &Info &Informácie o stránke - + &Download Manager Správca &sťahovania - + &Cookies Manager Správca &cookies - + &AdBlock &AdBlock - + RSS &Reader &RSS čítač - + Clear Recent &History Vymazať nedávnu &históriu - + &Private Browsing Súkromné prehlia&danie - + Pr&eferences Pr&edvoľby - - + + Web Inspector Web inšpektor - + Open file... Otvoriť súbor... - + Are you sure you want to turn on private browsing? Ste si istý, že chcete zapnúť súkromné prehliadanie? - + When private browsing is turned on, some actions concerning your privacy will be disabled: So zapnutým súkromným prehliadaním sú niektoré akcie týkajúce sa súkromia vypnuté: - + Webpages are not added to the history. Stránky nie sú pridávané do histórie. - + New cookies are not stored, but current cookies can be accessed. Nové cookies nie sú prijímané, ale súčasné cookies sú zasielané. - + Your session won't be stored. Vaša relácia nebude uložená. - + Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. Dokiaľ nezavriete prehliadač, tak stále môžete používať tlačidla Späť a Dopredu k vráteniu sa na stránky, ktoré ste mali otvorené. - + There are still %1 open tabs and your session won't be stored. Are you sure to quit? Stále sú otvorené %1 panely a Vaša relácia nebude uložená. Skutočne chcete skončiť? @@ -2674,7 +2623,7 @@ p, li { white-space: pre-wrap; } RSS čítačka - + Empty Prázdny @@ -2687,22 +2636,22 @@ Please add some with RSS icon in navigation bar on site which offers feeds. - + Reload Obnoviť - + Edit feed Upraviť kanál - + Delete feed Zmazať kanál - + Optimize Database Optimalizovať databázu @@ -2748,28 +2697,23 @@ Prosím pridajte si nejaký kliknutím na RSS ikonku v navigačnom riadku.Otvoriť odkaz na novom panely - - Close - Zavrieť - - - - + + New Tab Nový panel - + Error in fetching feed Chyba pri sťahovaní kanálu - + RSS feed duplicated Duplikovaný kanál - + You already have this feed. Tento kanál už odoberáte. @@ -2800,6 +2744,19 @@ Prosím pridajte si nejaký kliknutím na RSS ikonku v navigačnom riadku.Pridať + + ReloadStopButton + + + Stop + Zastaviť + + + + Reload + Obnoviť + + SSLManager @@ -2861,7 +2818,7 @@ Prosím pridajte si nejaký kliknutím na RSS ikonku v navigačnom riadku. SearchToolBar - + No results found. Žiadny výsledok. @@ -3380,38 +3337,51 @@ Prosím pridajte si nejaký kliknutím na RSS ikonku v navigačnom riadku. TabWidget - + Show list of opened tabs Zobraziť zoznam otvorených panelov - - Add Tab - Pridať panel - - - + Loading... Nahrávam... - - + + No Named Page Stránka bez mena - + Actually You have %1 opened tabs Momentálne otvorených %1 panelov - - + + New tab Nový panel + + ThemeManager + + + <b>Name:</b> + <b>Meno:</b> + + + + <b>Author:</b> + <b>Autor:</b> + + + + <b>Description:</b> + <b>Popis:</b> + + Updater @@ -3440,82 +3410,82 @@ Prosím pridajte si nejaký kliknutím na RSS ikonku v navigačnom riadku. - + Server refused the connection Server odmietol spojenie - + Server closed the connection Server ukončil spojenie - + Server not found Server nebol nájdený - + Connection timed out Spojenie vypršalo - + Untrusted connection Nedôveryhodné spojenie - + AdBlocked Content AdBlock obsah - + Blocked by rule <i>%1</i> Blokováno pravidlom <i>%1</i> - + Content Access Denied Odmietnuť prístup k obsahu - + Error code %1 Chybový kód %1 - + Failed loading page Chyba pri načítaní stránky - + QupZilla can't load page from %1. QupZilla nemôže načítať stránku zo serveru %1. - + Check the address for typing errors such as <b>ww.</b>example.com instead of <b>www.</b>example.com Skontrolujte, či je adresa napísaná správne a neobsahuje chyby ako <b>ww.</b>server.sk miesto <b>www.</b>server.sk - + If you are unable to load any pages, check your computer's network connection. Pokiaľ sa vám nezobrazujú ani ostatné stránky, tak skontrolujte sieťové pripojenie svojho počítača. - + If your computer or network is protected by a firewall or proxy, make sure that QupZilla is permitted to access the Web. Pokiaľ je váš počítač chránený firewallom alebo proxy severom, tak skontrolujte či má QupZilla prístup na internet. - + Try Again Skúsiť znova - + Choose file... Zvoľte súbor... @@ -3528,134 +3498,134 @@ Prosím pridajte si nejaký kliknutím na RSS ikonku v navigačnom riadku.Načítavam... - + Open link in new &tab Otvoriť odkaz na &novom panely - + Open link in new &window Otvoriť odkaz v novom &okne - + B&ookmark link Pridať odkaz do &záložiek - + &Save link as... &Uložiť odkaz... - + &Copy link address &Kopírovať adresu odkazu - + Show i&mage Zobraziť o&brázok - + Copy im&age &Kopírovať obrázok - + Copy image ad&dress Kopírovať adres&u obrázku - + S&top &Zastaviť - + Show info ab&out site Zobraziť &informácie o stránke - + Show Web &Inspector Zobraziť Web inšpe&ktora - + Search "%1 .." on &Google Hľadať "%1 .." na &Googli - + &Save image as... &Uložiť obrázok ako... - + Failed loading page Chyba pri načítaní stránky - + &Back &Späť - + &Forward &Dopredu - + &Reload &Obnoviť - + Book&mark page Pridať s&tránku do záložiek - + &Save page as... &Uložiť stránku ako... - + Select &all Vybrať vš&etko - + Show so&urce code Zobraziť zdro&jový kód - + No Named Page Stránka bez mena - - - + + + New tab Nový panel - + Send link... Odoslať odkaz... - + Send image... Odoslať obrázok... - + Send page... Odoslať stránku... @@ -3663,7 +3633,7 @@ Prosím pridajte si nejaký kliknutím na RSS ikonku v navigačnom riadku. jsAlert - + Prevent this page from creating additional dialogs Zabrániť stránke vo vytváraní ďaľších dialógov