207 Commits

Author SHA1 Message Date
Oleg Shparber bae9a49b0d Bump version to 0.6.0 2018-02-18 02:48:47 +02:00
Oleg Shparber f85b902fc7 ui: Implement interactive welcome page (fixes #323) 2018-02-18 02:00:48 +02:00
Oleg Shparber ab1c1a2bae registry: Exclude all keywords containing 'dashtoc' 2018-02-09 00:14:23 +02:00
Oleg Shparber 6e40307608 ui: Add missing QDateTime include (fixes #877) 2018-01-28 09:57:15 +02:00
Oleg Shparber af56557f34 app: Update welcome page to FontAwesome v5.0.4 and Bulma v0.6.2
Also links now point to go.zealdocs.org.
2018-01-27 13:28:36 +02:00
Oleg Shparber daf55ff31c Add *.woff to .gitattributes 2018-01-27 12:22:19 +02:00
Oleg Shparber f872a2dd59 ui: Set minimal width for the web view and the side bar 2018-01-26 01:26:50 +02:00
Oleg Shparber 10620933b4 doc: Update the screenshot in README 2018-01-22 01:05:20 +02:00
Oleg Shparber 14330638bb ui: Immediately delete unused QSeletionModels
This is a workaround for QTBUG-49966, as we don't want to keep
replaced selection models around.
2018-01-21 16:09:05 +02:00
Oleg Shparber 2a2627aa79 core: Fix portable build 2018-01-21 02:58:41 +02:00
Oleg Shparber 04159cfdd5 ui: Fix indentation 2018-01-21 01:57:19 +02:00
Oleg Shparber 9fdaa35420 core: Enable HTML5 local storage (fixes #872) 2018-01-21 01:56:50 +02:00
Oleg Shparber 18de7a1b5d core,ui: Add FileManager::cacheLocation() helper 2018-01-21 01:55:20 +02:00
Oleg Shparber 26da8bef6e core,ui: Fix crash when middle-clicking an external link
QApplication::activeWindow() returned a null pointer if message box
was shown.
2018-01-20 23:50:35 +02:00
Oleg Shparber 192a451a25 ui: Improve shortcuts in the Preferences dialog 2018-01-20 22:40:29 +02:00
Oleg Shparber b7ca52ab54 ui: Cleanup MainWindow header 2018-01-20 22:12:16 +02:00
Oleg Shparber 20faeb5fed ui: Add default font preferences (fixes #269) 2018-01-20 17:46:10 +02:00
Oleg Shparber b6abb5104b app: Remove unused constant 2018-01-19 22:21:28 +02:00
Oleg Shparber b18f88d852 ui: Set Ctrl+, as a fallback shortcut for Edit->Preferences 2018-01-18 00:55:44 +02:00
Oleg Shparber 7fbabfc425 ui: Do not pass Core::Application to SettingsDialog 2018-01-15 09:54:42 +02:00
Oleg Shparber 44e0289c35 ui: Use QStyledItemDelegate for all delegates 2018-01-14 02:49:13 +02:00
Oleg Shparber 132619f1f6 ui: Check if docset storage is not writable (fixes #522) 2018-01-14 02:31:41 +02:00
Oleg Shparber 053c46ccbd registry: Ignore case of SQLite table names (fixes #867)
In SQLite all SQL identifies are case-insensitive, even put in quotes.
2018-01-11 02:19:41 +02:00
Oleg Shparber d259a7a0d7 doc: Add CHANGELOG.md pointing to GitHub Releases (closes #395) 2018-01-09 09:32:26 +02:00
Oleg Shparber e406a35255 ui: Set spacing of the cental widget's layout to zero 2018-01-08 00:44:43 +02:00
Oleg Shparber fb78df0504 ui: Cleanup unused header includes and forward declarations 2018-01-08 00:43:27 +02:00
Oleg Shparber 72b254bb18 ui: Remove About Qt menu item
Attribution to Qt is now available in the About dialog.
2018-01-08 00:42:51 +02:00
Oleg Shparber af429d74a0 ui: Add information about third party software (fixes #495) 2018-01-08 00:40:02 +02:00
Oleg Shparber 6dd244949c ui: Add option to enable smooth scrolling (fixes #789) 2018-01-07 23:22:01 +02:00
Oleg Shparber d0d3f56d1d core: Remove implemented TODO comments in Settings 2018-01-07 23:09:43 +02:00
Oleg Shparber 486ce17296 ui: Use system icons for back and forward buttons 2018-01-07 21:08:18 +02:00
Oleg Shparber 7c3789dead ui: Reduce horizontal margins and spacing in tool bars 2018-01-07 20:10:44 +02:00
Oleg Shparber 9e98a6860e ui: Do not disable touch events for web view (fixes #356) 2018-01-07 17:49:08 +02:00
Oleg Shparber a9307b4a1e ui: Conditionally use Qt 5.6 features 2018-01-07 17:31:54 +02:00
Oleg Shparber 478791a2d8 cmake: Require Qt version >= 5.5.1 2018-01-07 17:10:44 +02:00
Oleg Shparber ba3c63c9ae cmake: Silence CMP0071 2018-01-07 17:09:25 +02:00
Oleg Shparber 3b2a395728 ui: Make external link behavior configurable (fixes #416) 2018-01-07 16:00:22 +02:00
Oleg Shparber 8fa793a6f6 ui: Fix sizing of the tab behavior group box in SettingsDialog 2018-01-07 13:42:02 +02:00
Oleg Shparber 9e86fcdfd5 ui: Fix compilation with Qt version < 5.6 2018-01-07 01:02:53 +02:00
Oleg Shparber 4b65cb29da ui: Remove confusing "Open URL" button (fixes #848)
The same action can be now performed through the context menu.
2018-01-07 00:51:38 +02:00
Oleg Shparber b468d31aab ui: Implement custom context menu for the web view (fixes #635) 2018-01-07 00:47:06 +02:00
Oleg Shparber 5cec65591b ui: Refactor content hit testing in WebView 2018-01-07 00:42:55 +02:00
Oleg Shparber 57fbea15c2 ui: Fix new tab link also loading in the current tab 2018-01-07 00:41:03 +02:00
Oleg Shparber fafdc268d8 ui: Do not accept QKeyEvent explicitly
According to the QWidget::keyPressEvent() docs it arrives accepted.
2018-01-06 16:01:28 +02:00
Oleg Shparber d0cdc200bb ui: Fix new tabs always showing the welcome page (fixes #851) 2018-01-06 15:47:26 +02:00
Oleg Shparber a406f8de5f ui: Remove unused search methods in WebViewTab 2018-01-05 12:13:49 +02:00
Oleg Shparber bf574687e5 ui: Fix license information in the About dialog 2018-01-04 02:14:39 +02:00
Oleg Shparber ee4b00efba ui: Update copyright years in the About dialog 2018-01-04 02:14:15 +02:00
Oleg Shparber e58fc7f089 ui: Remove unused WebViewTab::sizeHint() method 2018-01-04 02:13:45 +02:00
Oleg Shparber 2aed15f824 doc: Remove build info for the stable branch in README 2018-01-04 02:13:11 +02:00
Oleg Shparber 38d14735b6 ui: Add in-page search toolbar (#861) 2018-01-04 02:05:47 +02:00
Oleg Shparber 7d39f3fbb4 qmake: Remove qmake support 2017-12-17 17:56:56 +02:00
Oleg Shparber a5a66efbfa Bump version to 0.5.0 2017-12-10 17:41:52 +02:00
Oleg Shparber 44208f1c8c doc: Update README 2017-12-10 17:27:46 +02:00
Oleg Shparber b4009fc0be registry: Order search results by length (fixes #679) 2017-12-10 16:32:53 +02:00
Oleg Shparber 3a7b7053c0 app: Update the welcome page 2017-12-10 16:00:47 +02:00
Oleg Shparber 47250981b4 app: Remove unused main.css 2017-12-10 00:39:54 +02:00
Oleg Shparber 9765c05ede ui: Set default stretch factor for splitter's panes 2017-12-09 20:42:55 +02:00
Oleg Shparber 9c0938c679 ui: Indicate portable build in the main window title 2017-12-09 20:08:00 +02:00
Oleg Shparber 5b9fed94db ui: Use one web view per tab (#825)
This change stops practice of sharing a single web view
between tabs.
2017-11-25 13:19:53 +00:00
Oleg Shparber 4ba5512411 ui: Fix missing selection in duplicated tabs 2017-11-20 22:35:55 +02:00
Oleg Shparber 465a8b92a8 ui: Fix tab state being overrided when tab to the left is closed 2017-11-20 22:27:58 +02:00
Oleg Shparber 3b8530535d ui: Rename SearchableWebView to WebViewTab 2017-11-18 21:30:13 +02:00
Oleg Shparber 96bfa2d3cd ui: Use predefined zooming levels 2017-11-18 21:02:30 +02:00
Oleg Shparber 50be385ec7 doc: Cleanup the README 2017-11-16 01:24:41 +02:00
Oleg Shparber 340776c89a doc: Update building instructions in the README 2017-11-16 01:23:06 +02:00
Oleg Shparber 2ec5740b55 app,core,registry: Fix QtConcurrent dependency for qmake build 2017-11-16 01:10:51 +02:00
Jerzy Kozera 1c74d39c2d registry,ui: Implement feed updates (fixes #289) (#819) 2017-11-15 23:31:27 +02:00
Oleg Shparber 436a96187c cmake: Parse SQLite version from sqlite3.h 2017-11-12 22:18:23 +02:00
Oleg Shparber c8525e917e core: Fix coding style 2017-11-12 22:18:22 +02:00
Jiahao Guo f9ce40edb8 doc: Fix grammar in README (#810) 2017-11-04 21:07:15 +02:00
Oleg Shparber f8088d71d1 core,util: Fix include guards 2017-10-31 10:10:17 +02:00
Oleg Shparber f32e30f9ae core,registry,ui,util: Avoid reinterpret_cast where possible 2017-10-31 00:33:31 +02:00
Oleg Shparber a907d8295a app,ui: s/OS X/macOS 2017-10-31 00:16:39 +02:00
Oleg Shparber fb19ac0fa6 registry: Always return absolute document path (fixes #806) 2017-10-31 00:15:50 +02:00
Oleg Shparber 232d225cb2 ui: Fix the app quitting if there's a new version available (fixes #637)
The problem occured when Zeal was configured to start minimized to tray,
and there was a new release available. In that situation the app quit,
because the last window to close was the message box about the available
update (see QApplication::quitOnLastWindowClosed).
2017-10-25 23:40:27 +03:00
palinek df2b74b6d4 ui: Create new tab on tabbar doubleclick (#803) 2017-10-25 00:19:13 +03:00
Oleg Shparber 4769b7a228 ui: Display show/hide in the systray menu on all platforms 2017-10-22 02:30:12 +03:00
Oleg Shparber d0b2d4c2dd ui: Quit is Exit on Windows 2017-10-22 02:06:27 +03:00
Oleg Shparber 176445083b ui: Add Show/Hide to the systray menu when DE is Unity (fixes #741) 2017-10-22 01:41:18 +03:00
Oleg Shparber 65c60bc243 registry,ui: Rename some methods and signals in DocsetRegistry 2017-10-21 23:56:25 +03:00
Oleg Shparber 8303bc0a90 core,ui: Refactor docset directory removal out of the UI (fixes #608) 2017-10-21 23:42:01 +03:00
Oleg Shparber cf30c36392 ui: Fix crash when encountering a corrupted docset directory (fixes #788)
The crash occured in case destination directory for a docset being
installed already existed, but was not loaded into DocsetRegistry.
That usually happened due to previous failed attempt to install
a docset.
2017-10-21 22:19:45 +03:00
Oleg Shparber f17e1a1708 core: Extend logging in ApplicationSingleton 2017-10-21 18:24:13 +03:00
Oleg Shparber a9be16a132 ui: Update copyright years in the about dialog 2017-10-08 01:16:56 +03:00
Oleg Shparber 84afbf5148 app: Allow primary instance to gain focus on Windows (fixes #440) 2017-10-07 15:47:29 +03:00
Oleg Shparber 9eb9584331 app,core: Replace LocalServer with ApplicationSingleton (#790)
ApplicationSingleton is based on QSharedMemory, and is
more reliable in detecting multiple running instances
of the application.
2017-10-07 02:36:29 +03:00
FantasyEarl 686eda015d ui: Make tabs movable (#784) 2017-10-01 20:06:19 +03:00
Oleg Shparber bd85d70bac ui: Add support for a dedicated tray icon (fixes #770) 2017-09-29 01:45:58 +03:00
Oleg Shparber 500c705dce Bump version to 0.4.0 2017-08-31 01:51:59 +03:00
Oleg Shparber 2142fba72e app: Revert to autogenerated year in the version info 2017-08-29 01:47:27 +03:00
Oleg Shparber 3812d2e22e app: Fix version info encoding 2017-08-29 01:44:46 +03:00
Oleg Shparber ace9c11084 app: Add new type icons 2017-08-29 00:52:38 +03:00
Oleg Shparber 64ee009ee3 app: Optimize type icons 2017-08-29 00:47:54 +03:00
Oleg Shparber c30496f994 app: Remove unused type icons 2017-08-29 00:47:19 +03:00
Oleg Shparber 01cb04dd29 doc: Add Gitter badge in Readme 2017-08-28 20:38:55 +03:00
Oleg Shparber 04172f89e5 doc: Use CSS to prevent text sepection on the welcome page 2017-08-18 02:36:01 +03:00
Oleg Shparber b47ba0b0a4 ui: Make tab width fixed 2017-08-18 02:35:23 +03:00
Oleg Shparber b6d7d35704 assets,app: Optimize PNG files 2017-08-16 01:55:59 +03:00
Oleg Shparber ba773158d4 doc: Minify bulma.css 2017-08-16 01:27:53 +03:00
Oleg Shparber e2c576db92 core,doc,ui: Add an option to disable ad on the welcome page 2017-08-16 01:06:35 +03:00
Oleg Shparber a90fef36df doc: Add Carbon ad to the welcome page 2017-08-16 01:05:02 +03:00
Oleg Shparber 4dcd7cf90b core: Forward all non-local schemaless URLs via HTTPS. 2017-08-16 01:03:37 +03:00
Oleg Shparber 2f953b5857 doc: Update the welcome page 2017-08-16 00:27:43 +03:00
Oleg Shparber 2a42b600ae ui: Do not show tooltips for qrc links 2017-08-12 00:28:21 +03:00
Oleg Shparber 57c9edd20c ui: Focus search box when a new tab is opened (fixes #725) 2017-07-07 00:37:30 +03:00
Oleg Shparber c6003e19b9 registry: Remove pointless ORDER BY clauses for search queries
We sort all results again anyway.
2017-04-26 00:41:12 -04:00
Oleg Shparber 7b1223b03d core,registry,ui: Make fuzzy search optional 2017-04-26 00:34:26 -04:00
Oleg Shparber 42e79a66ef core,registry,ui: Unify docset storage path with the rest of the settings 2017-04-26 00:26:16 -04:00
Oleg Shparber c25abbee6f ui: Fix crash when docsets in the current search are removed 2017-04-25 22:30:43 -04:00
Oleg Shparber 73ecfb944c registry,ui: Do not expose Docset class through DocsetRegistry 2017-04-24 00:17:40 -04:00
Oleg Shparber 8a5a8680f1 registry: Missing changes for the previous commit 2017-04-23 23:45:34 -04:00
Oleg Shparber 58dc4df02f registry: Use SQL view for docsets of ZDash type
Creating and using a view allows to simplify SQL code for ZDash docsets,
and in some cases unify it with Dash docsets.
2017-04-23 21:16:00 -04:00
Oleg Shparber a1f5d4522c registry,ui: Do not run search if query is empty 2017-04-23 20:38:07 -04:00
Oleg Shparber 419a84e93e registry,ui: Fix some problems identified by clazy
Reference:
https://github.com/KDE/clazy
https://www.kdab.com/uncovering-32-qt-best-practices-compile-time-clazy/
2017-04-23 12:13:00 -04:00
Oleg Shparber 6cff27b2d5 registry: Create page URL on demand
This gives a significant performance boost for large docsets.
2017-04-22 00:05:46 -04:00
Oleg Shparber cec7ba4f14 util: Implement SQLiteDatabase::views() 2017-04-21 00:22:28 -04:00
Oleg Shparber 8c1badb6a5 util: Refactor SQLiteDatabase::tables() 2017-04-21 00:21:31 -04:00
Oleg Shparber af774275ab registry: Fix index not being created in docset's symbol database
A regression after switching to Util::SQLiteDatabase
2017-04-20 23:05:20 -04:00
Oleg Shparber b3fc62e2ae util: Implement SQLiteDatabase::execute()
This method relies on sqlite3_exec(), but currently doesn't allow to
retrieve data.
2017-04-20 23:00:44 -04:00
Oleg Shparber a994817308 util,registry: Rename SQLiteDatabase::execute() to prepare()
The new name matches the underlying behavior.
2017-04-20 22:43:23 -04:00
Jerzy Kozera e48baaddd1 registry: Add more exhaustive search for fuzzy matching (#718) 2017-04-20 12:35:28 -04:00
Oleg Shparber 008d809346 ci[shippable]: Install CMake 2017-04-11 08:46:55 -04:00
Oleg Shparber ce91a1426c ci[shippable]: Build with CMake 2017-04-10 23:57:01 -04:00
Oleg Shparber 2079180b8c core: Fix new proxy credentials being ignored
Changing proxy authentication credentials had no effect because of
the internal QNetworkAccessManager cache.
2017-04-09 11:14:32 -04:00
Oleg Shparber bb89f29977 ui: Use lighter border color in ToolBarFrame 2017-04-03 00:36:44 -04:00
Oleg Shparber 3e07c72706 ui: Improve UX when a corrupted docset list is received
Simply adding a Retry button to the message box.

Fixes #566.
2017-04-02 22:41:33 -04:00
Oleg Shparber 3daf64d8aa registry: Fix another QJsonValueRef implicit cast 2017-04-01 00:41:18 -04:00
Oleg Shparber 7ae1c84c55 registry,util: Fix nonsense in conditions 2017-03-31 01:16:47 -04:00
Oleg Shparber 14e874e5cb registry: Fix implicit cast of QJsonValueRef into QJsonValue 2017-03-31 01:12:12 -04:00
Oleg Shparber 0f554794e4 registry,ui: Make MSVC happy 2017-03-31 00:56:48 -04:00
Oleg Shparber e0f073948c ui: Remove pointless QEvent::accept()
Also fix a switch pass-through warning.
2017-03-30 23:13:35 -04:00
Oleg Shparber 29d7de9083 core,ui,util: Fix a few coding style issues 2017-03-30 00:19:58 -04:00
Oleg Shparber a4126c51d4 cmake,ui: Normalize line endings 2017-03-30 00:05:10 -04:00
Oleg Shparber d74c329d01 Add .gitattributes 2017-03-30 00:03:46 -04:00
Oleg Shparber bbf3db6cbc registry: Fix uninitialized variable 2017-03-29 23:36:59 -04:00
Oleg Shparber e80683bce8 ui: Fix resource file path in AboutDialog 2017-03-28 22:14:19 -04:00
Oleg Shparber ec0ba89d58 ui: Fix namespace in all .ui files 2017-03-28 22:13:48 -04:00
Oleg Shparber a5b3782735 cmake: Add missing docsetsdialog.ui to the .ui list 2017-03-26 23:55:21 -04:00
Oleg Shparber 01f939aebd core,ui: Move all UI classes into Zeal::WidgetUi namespace 2017-03-26 23:54:13 -04:00
Oleg Shparber 2fd6ea124e ui: Enforce toolbar frame height 2017-03-26 04:24:55 -04:00
Oleg Shparber 113e8a4cfd registry,ui: Rename all queryCompleted signals
They were quite confusing.
2017-03-26 03:46:58 -04:00
Oleg Shparber 11f10adfe9 core,registry,ui: Do not use absolute file paths 2017-03-26 03:24:04 -04:00
Oleg Shparber ccbb75b1b9 registry: Remove useless cancellation token resets 2017-03-26 03:11:15 -04:00
Oleg Shparber 4258825753 registry,ui: Redo CancellationToken with atomic, hide it from ui 2017-03-26 03:09:42 -04:00
Oleg Shparber e2c83025f6 registry: Reimplement docset loading with Qt Concurrent 2017-03-26 01:14:18 -04:00
Oleg Shparber 0f6fcaa816 registry: Cleanup 2017-03-23 22:31:15 -04:00
Oleg Shparber 6c21819a57 ui: Allow to navigate through web view when search bar is active (#703) 2017-03-23 00:55:16 -04:00
Oleg Shparber 59c60aeb18 ui: Add Ctrl+PgUp/PgDown shortcuts (#703) 2017-03-23 00:23:46 -04:00
Oleg Shparber 07c9974b61 app: Make Retry the default button in the app crashed dialog 2017-03-05 22:10:03 -05:00
Oleg Shparber 8fd3ac7499 ui: Minor improvements in the settings dialog 2017-03-05 21:44:43 -05:00
Oleg Shparber 40e54b1b53 core,ui: Provide ability to set a custom style sheet file
Fixes #268.
2017-03-05 21:37:27 -05:00
Oleg Shparber cdba884398 ui: Add contrast to the navigation highlight color 2017-03-02 23:53:04 -05:00
Oleg Shparber 318eef91e7 core,ui: Add dark mode
Also makes highlighting on navigate configurable.

Fixes #466.
2017-03-02 22:45:33 -05:00
Oleg Shparber 9f14ba1bdf ui: Apply settings when the main window is created 2017-03-02 22:37:35 -05:00
Oleg Shparber 5af3f1f2f5 core: Fix coding style 2017-03-02 22:36:43 -05:00
Oleg Shparber 29392886ac core,ui: Rename Browser settings into Content
Just to follow what most browsers have.
2017-03-02 20:18:13 -05:00
Oleg Shparber 054466ff58 cmake: Build with a WinMain entry point on Windows 2017-03-02 19:04:51 -05:00
Oleg Shparber fbcec2a035 cmake: Display .ui files in Qt Creator 2017-02-26 23:55:24 -05:00
Jerzy Kozera 937cf99aa4 registry: Prioritize exact matches over fuzzy (#696)
Fixes #677.
2017-02-26 03:46:05 -05:00
Oleg Shparber 89b9d91938 cmake: Introduce CMake-based build option
Fixes #689.
2017-02-19 21:09:24 -05:00
Oleg Shparber 43d8dd1680 core: Enable support for high-DPI screens (Qt >= 5.6)
Fixes #111.
2017-02-19 00:10:42 -05:00
Oleg Shparber 967145fd54 registry: Remove empty source file
SearchResult is a header-only class.
2017-02-18 22:09:54 -05:00
Oleg Shparber df7a0fc52e ui: Remove unneeded include 2017-02-18 12:11:08 -05:00
Oleg Shparber cf4270fb6d qmake: Fix build with MingGW 2017-02-18 12:03:07 -05:00
Oleg Shparber 808a8769be qmake: Fix build with MSVC 2017-02-18 11:50:38 -05:00
Oleg Shparber 01ffac5d34 util: Fix Clang warnings in SQLiteDatabase 2017-02-17 20:18:23 -05:00
Oleg Shparber a5ef8e88c5 core,ui: Remove support for Qt WebEngine 2017-02-17 19:58:11 -05:00
Oleg Shparber d11913c49c ui: Move .ui files one level up
This simplifies migration to CMake with CMAKE_AUTOUIC enabled.
2017-02-16 22:54:31 -05:00
Oleg Shparber 3c227b0879 qmake: Check for library .pri before including 2017-02-16 22:51:00 -05:00
Oleg Shparber 1745321afa ui: Update .ui code for the proxy settings tab
The code was automatically regenerated.
2017-02-16 22:49:37 -05:00
Oleg Shparber b83541776d ui,qmake,doc: Drop support for libappindicator 2017-02-14 00:18:46 -05:00
Oleg Shparber 3eaff813b0 doc: Update minimal requirement for Qt version 2017-02-14 00:17:00 -05:00
Oleg Shparber 1b1beeac73 ci[shippable]: Use u16cppall image 2017-02-13 00:56:47 -05:00
Oleg Shparber 1e657fb863 ci[shippable]: Set image tag 2017-02-13 00:43:08 -05:00
Oleg Shparber 066baf3323 ci[shippable]: Use Ubuntu 16.04 image 2017-02-13 00:37:06 -05:00
Oleg Shparber da8fa00c99 app: Fix coding style 2017-02-12 23:42:11 -05:00
Oleg Shparber b8f418fc91 core: Remove code for Qt versions < 5.5.1 2017-02-12 23:40:25 -05:00
Oleg Shparber 2b0de572c7 app: Use implicit QCommandLineOption constructor 2017-02-12 23:38:48 -05:00
Oleg Shparber 4711e0cf3c app,core: Update LocalServer to work on Windows
Fixes #681 (in conjunction with Qt 5.6+, see QTBUG-23378)
2017-02-12 23:32:01 -05:00
Oleg Shparber 59109639ff qmake: Set Qt 5.5.1 as a minimally required Qt version 2017-02-12 23:29:39 -05:00
Oleg Shparber 1412d91bd6 ui: Remove Docsets tab from the Settings dialog 2017-02-02 22:28:03 -05:00
Oleg Shparber c720633d1b registry: Use QVarLengthArray instead of dynamic memory allocation 2016-12-21 22:42:32 -05:00
Oleg Shparber b8a8dd96d6 registry: Cleanup fuzzy search code, and optimize a bit (#672) 2016-12-21 21:19:19 -05:00
Oleg Shparber 8de33d1abe registry: Fix search for queries containing separators (fixes #650) 2016-12-21 01:35:07 -05:00
htower 7e4e95644a registry: Fix fallback to CFBundleName for docset name (#662) 2016-11-23 14:50:47 -05:00
Oleg Shparber 143d9ddc92 registry: Make sure exact search term matches are always on top 2016-11-18 00:58:33 -05:00
Oleg Shparber 7d48602bd0 registry: Support docset keywords provided in metadata (fixes #604) 2016-11-16 03:45:22 -05:00
Oleg Shparber 6f322602f0 registry: Check if index file path is present in metadata 2016-11-16 03:44:01 -05:00
Oleg Shparber 3629d57829 registry: Fix compiler warnings 2016-11-15 23:16:16 -05:00
Oleg Shparber 280a8d85c3 registry: Turn SearchModel into QAbstractListModel 2016-11-13 06:00:11 -05:00
Oleg Shparber 7c8c0f37bb registry: Fix header inclusion for ListModel 2016-11-13 05:59:37 -05:00
Oleg Shparber 3680ef0ce0 registry: Use item role instead of column for URLs 2016-11-13 05:59:14 -05:00
Oleg Shparber 7593515cfe registry, ui: Unify item data roles across Registry models 2016-11-13 05:46:00 -05:00
Oleg Shparber 1dc1184010 registry: Remove all references to docset sourceId
It was never used.
2016-11-13 04:43:20 -05:00
Oleg Shparber c88bfacb34 app: Add 'Pipe' symbol type icon 2016-11-13 03:57:30 -05:00
Oleg Shparber ed29c22b59 registry: Fix anchor navigation in some docsets (fixes #641)
This fixes decoding of fragments that start with '//dash_ref'.
2016-11-08 22:57:41 -05:00
Oleg Shparber 1d8c1c11aa registry: Fix related links not being retrieved (fixes #651) 2016-11-08 21:26:27 -05:00
Oleg Shparber 003bb31a2d registry: Remove unused include 2016-10-31 15:49:02 -04:00
Oleg Shparber 99074288d4 doc: Remove Qt Sql from the required dependencies. 2016-10-31 15:49:02 -04:00
Oleg Shparber c932951efc ui: Cleanup DocsetsDialog 2016-10-31 15:49:02 -04:00
Jerzy Kozera e7f631d2d5 Better sorting of search results and fuzzy search (#614)
Uses an O(m+n) algorithm based on https://github.com/bevacqua/fuzzysearch.

Also adds sqlite3_mutex_enter and sqlite3_mutex_leave calls to prevent
crashes inside sqlite3 which occurred while testing.

Fixes #100.
Fixes #603.
2016-10-31 15:45:52 -04:00
Oleg Shparber 6cb63ee8f0 core: Store docset storage path in portable version (fixes #609) 2016-10-14 01:27:28 -04:00
Oleg Shparber 042b0bb5b6 Merge tag 'v0.3.1'
v0.3.1
2016-10-10 02:05:50 -04:00
Oleg Shparber 1462414e3d util: Minor fixes in SQLiteDatabase
Mostly coding style, plus checks in value().
2016-10-09 18:25:50 -04:00
Jerzy Kozera 457af2fe8f registry: Add our own sqlite3 wrapper (#619)
This is going to help with implementing PR #614 in a cleaner way, avoiding
problems with sqlite3_create_function interface availability on various
platforms.
2016-10-09 17:26:29 -04:00
Oleg Shparber 0e6d4fffa8 Merge tag 'v0.3.0'
Zeal 0.3.0
2016-09-22 23:57:05 -04:00
295 changed files with 5682 additions and 3337 deletions
+27
View File
@@ -0,0 +1,27 @@
# Autodetect text files
* text=auto
# Enforce text mode
*.c text
*.cmake text
*.conf text
*.cpp text
*.css text
*.desktop text
*.h text
*.html text
*.in text
*.md text
*.pri text
*.pro text
*.qrc text
*.ui text
*.yml text
CMakeLists.txt text
COPYING
# Binary files
*.icns binary
*.ico binary
*.png binary
*.woff binary
+6 -6
View File
@@ -1,5 +1,4 @@
# C++ objects and libs
*.slo
*.lo
*.o
@@ -10,8 +9,7 @@
*.dll
*.dylib
# Qt-es
# qmake
/.qmake.cache
/.qmake.stash
*.pro.user
@@ -23,10 +21,12 @@ ui_*.h
Makefile*
*-build-*
# QtCreator
# Qt Creator
*.autosave
#QtCtreator Qml
# Qt Ctreator QML
*.qmlproject.user
*.qmlproject.user.*
# CMake
CMakeLists.txt.user
-5
View File
@@ -1,5 +0,0 @@
SRC_ROOT=$$PWD
BUILD_ROOT=$$shadowed($$PWD)
ZEAL_COMMON_PRI = $$SRC_ROOT/qmake/common.pri
ZEAL_LIBRARY_PRI = $$SRC_ROOT/qmake/library.pri
+8 -3
View File
@@ -2,8 +2,13 @@ language: c
compiler:
- gcc
build:
pre_ci_boot:
image_name: drydock/u16cppall
image_tag: tip
ci:
- shippable_retry sudo apt-get -y -qq update
- shippable_retry sudo apt-get -y -qq install --no-install-recommends qt5-default libqt5webkit5-dev libqt5x11extras5-dev libarchive-dev libxcb-keysyms1-dev
- qmake
- make
- shippable_retry sudo apt-get -y -qq install --no-install-recommends cmake extra-cmake-modules qt5-default libqt5webkit5-dev libqt5x11extras5-dev libarchive-dev libxcb-keysyms1-dev
- mkdir build; cd build
- cmake ..
- cd ..
- cmake --build build
+3
View File
@@ -0,0 +1,3 @@
# Changelog
The version history is available on [GitHub Releases](https://github.com/zealdocs/zeal/releases).
+21
View File
@@ -0,0 +1,21 @@
cmake_minimum_required(VERSION 3.5.1)
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
project(Zeal VERSION 0.6.0)
# Project information.
if(APPLE)
set(PROJECT_OUTPUT_NAME "Zeal")
else()
set(PROJECT_OUTPUT_NAME "zeal")
endif()
set(PROJECT_COMPANY_NAME "ZealDocs")
string(TIMESTAMP PROJECT_COPYRIGHT "© 2015-%Y Oleg Shparber" UTC)
set(PROJECT_DESCRIPTION "A simple documentation browser.")
set(PROJECT_URL "https://zealdocs.org")
set(QT_MINIMUM_VERSION 5.5.1)
add_subdirectory(assets)
add_subdirectory(src)
+28 -28
View File
@@ -1,33 +1,23 @@
# Zeal
[![Changelog](https://img.shields.io/github/release/zealdocs/zeal.svg?style=flat-square)](https://github.com/zealdocs/zeal/releases)
[![Gitter](https://img.shields.io/gitter/room/zealdocs/zeal.svg?style=flat-square)](https://gitter.im/zealdocs/zeal)
[![IRC](https://img.shields.io/badge/chat-on%20irc-blue.svg?style=flat-square)](https://kiwiirc.com/client/irc.freenode.net/#zealdocs)
[![Telegram Chat](https://img.shields.io/badge/chat-on%20telegram-179cde.svg?style=flat-square)](https://telegram.me/zealdocschat)
[![Telegram Channel](https://img.shields.io/badge/follow-on%20telegram-179cde.svg?style=flat-square)](https://telegram.me/zealdocs)
[![Twitter](https://img.shields.io/badge/follow-on%20twitter-1da1f2.svg?style=flat-square)](https://twitter.com/zealdocs)
> **zeal** *noun*
>
> 1. a feeling of strong eagerness (usually in favor of a person or cause)
> 2. excessive fervor to do something or accomplish some end
> 3. prompt willingness
>
> (from WordNet 3.0)
Zeal is a simple offline documentation browser inspired by [Dash](https://kapeli.com/dash).
![Screenshot](https://i.imgur.com/v63u1ZJ.png)
[More screenshots](https://imgur.com/a/eVi97)
![Screenshot](https://i.imgur.com/qBkZduS.png)
## Build Status
[![Coverity Scan](https://img.shields.io/coverity/scan/4271.svg?style=flat-square)](https://scan.coverity.com/projects/4271)
OS \ Branch | master | stable
------------|--------|-------
Linux | [![Shippable](https://img.shields.io/shippable/54ac2ce4d46935d5fbc19b84/master.svg?style=flat-square)](https://app.shippable.com/projects/54ac2ce4d46935d5fbc19b84) | [![Shippable](https://img.shields.io/shippable/54ac2ce4d46935d5fbc19b84/stable.svg?style=flat-square)](https://app.shippable.com/projects/54ac2ce4d46935d5fbc19b84)
Windows | [![AppVeyor](https://img.shields.io/appveyor/ci/trollixx/zeal/master.svg?style=flat-square)](https://ci.appveyor.com/project/trollixx/zeal) | [![AppVeyor](https://img.shields.io/appveyor/ci/trollixx/zeal/stable.svg?style=flat-square)](https://ci.appveyor.com/project/trollixx/zeal)
| OS | Build Status |
| -------- | ------------ |
| Linux | [![Shippable](https://img.shields.io/shippable/54ac2ce4d46935d5fbc19b84/master.svg?style=flat-square)](https://app.shippable.com/projects/54ac2ce4d46935d5fbc19b84) |
| Windows | [![AppVeyor](https://img.shields.io/appveyor/ci/trollixx/zeal/master.svg?style=flat-square)](https://ci.appveyor.com/project/trollixx/zeal) |
## Download
@@ -35,17 +25,27 @@ Get binary builds for Windows and Linux from the [download page](https://zealdoc
## How to use
After installing Zeal, you need to download docsets. Go to *Tools->Docsets*, select the ones you want, and click the *Download* button.
After installing Zeal, go to *Tools->Docsets*, select the ones you want, and click the *Download* button.
## How to compile
### Requirements
* [Qt](https://www.qt.io/) version 5.2.0 or above. Required modules: Qt WebKit Widgets, Qt SQL plugin for SQLite, Qt X11 Extras (X11 only).
* [libarchive](http://libarchive.org/).
* X11 only: `xcb-util-keysyms`.
* Ubuntu Unity only: [libappindicator](https://launchpad.net/libappindicator).
### Required dependencies
To compile Zeal run `qmake` and then `make`. Linux users can install Zeal with `make install` command.
* [CMake](https://cmake.org/).
* [Qt](https://www.qt.io/) version 5.5.1 or above. Required module: Qt WebKit Widgets.
* [libarchive](http://libarchive.org/).
* [SQLite](https://sqlite.org/).
* X11 platforms only: Qt X11 Extras and `xcb-util-keysyms`.
### Building instructions
```sh
mkdir build && cd build
cmake ..
make
```
More detailed instructions are available in the [Wiki](https://github.com/zealdocs/zeal/wiki).
## Query & Filter docsets
@@ -59,21 +59,21 @@ You can also search multiple docsets separating them with a comma:
## Command line
If you prefer, you can start Zeal with a query from command line:
If you prefer, you can start Zeal with a query from the command line:
`zeal python:bomb`
`zeal python:pprint`
## Creating your own docsets
You can use [Dash's instructions for generating docsets](https://kapeli.com/docsets).
Follow the [Dash Docset Generation Guide](https://kapeli.com/docsets).
## Contact and Support
We want your feedback! Here's a list of different ways to contact developers and request help:
* Report bugs and submit feature requests to [GitHub issues](https://github.com/zealdocs/zeal/issues).
* Reach developers and other Zeal users on [Gitter](https://gitter.im/zealdocs/zeal), or IRC channel #zealdocs on [Freenode](https://freenode.net/).
* Ask any questions in our [Google Group](https://groups.google.com/d/forum/zealdocs). You can simply send an email to zealdocs@googlegroups.com.
* For a quick chat with developers and other Zeal users use our IRC channel: #zealdocs on [Freenode](https://freenode.net/). Also available through Kiwi IRC [web interface](https://kiwiirc.com/client/irc.freenode.net/#zealdocs). Please, take into consideration possible time zone differences.
* Finally, for a private communications send us [email](mailto:zeal@zealdocs.org).
* Finally, for private communications email us at zeal@zealdocs.org.
* And do not forget to follow [@zealdocs](https://twitter.com/zealdocs) on Twitter!
## License
+17
View File
@@ -0,0 +1,17 @@
if(UNIX AND NOT APPLE)
find_package(ECM REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${ECM_KDE_MODULE_DIR})
include(KDEInstallDirs)
foreach(_i 16 24 32 64 128)
install(FILES "freedesktop/appicons/${_i}/zeal.png"
DESTINATION "${KDE_INSTALL_ICONDIR}/hicolor/${_i}x${_i}/apps"
# TODO: Use `RENAME zeal.png` and get rid of subdirectories.
)
endforeach()
# TODO: Generate via zeal.desktop.in.
install(FILES "freedesktop/zeal.desktop"
DESTINATION ${KDE_INSTALL_APPDIR}
)
endif()
-23
View File
@@ -1,23 +0,0 @@
include($$ZEAL_COMMON_PRI)
TEMPLATE = aux
unix:!macx {
TARGET = zeal
appicons16.files=freedesktop/appicons/16/*
appicons24.files=freedesktop/appicons/24/*
appicons32.files=freedesktop/appicons/32/*
appicons64.files=freedesktop/appicons/64/*
appicons128.files=freedesktop/appicons/128/*
appicons16.path=$$PREFIX/share/icons/hicolor/16x16/apps
appicons24.path=$$PREFIX/share/icons/hicolor/24x24/apps
appicons32.path=$$PREFIX/share/icons/hicolor/32x32/apps
appicons64.path=$$PREFIX/share/icons/hicolor/64x64/apps
appicons128.path=$$PREFIX/share/icons/hicolor/128x128/apps
desktop.files=freedesktop/zeal.desktop
desktop.path=$$PREFIX/share/applications
INSTALLS += appicons16 appicons24 appicons32 appicons64 appicons128 desktop
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 872 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

+49
View File
@@ -0,0 +1,49 @@
# FindSQLite
# ----------
#
# Finds SQLite headers and libraries.
#
# SQLite_FOUND - True if SQLite is found.
# SQLite_INCLUDE_DIR - Path to SQLite header files.
# SQLite_LIBRARY - SQLite library to link to.
# SQLite_VERSION_STRING - The version of SQLite found.
# A simple fallback to pkg-config.
if(NOT WIN32)
find_package(PkgConfig QUIET)
pkg_search_module(PC_SQLITE QUIET sqlite3)
endif()
find_path(SQLite_INCLUDE_DIR NAMES sqlite3.h
PATHS
${PC_SQLITE_INCLUDEDIR}
${PC_SQLITE_INCLUDE_DIRS}
)
find_library(SQLite_LIBRARY NAMES sqlite3
PATHS
${PC_SQLITE_LIBDIR}
${PC_SQLITE_LIBRARY_DIRS}
)
if(PC_SQLITE_VERSION)
set(SQLite_VERSION_STRING ${PC_SQLITE_VERSION})
elseif(SQLite_INCLUDE_DIR AND EXISTS "${SQLite_INCLUDE_DIR}/sqlite3.h")
# Parse sqlite3.h for the version macro:
# #define SQLITE_VERSION "3.20.1"
set(_SQLite_VERSION_REGEX "^#define[ \t]+SQLITE_VERSION[ \t]+\"([0-9]+)\\.([0-9]+)\\.([0-9]+)\".*$")
file(STRINGS "${SQLite_INCLUDE_DIR}/sqlite3.h" _SQLite_VERSION_MACRO LIMIT_COUNT 1 REGEX "${_SQLite_VERSION_REGEX}")
if(_SQLite_VERSION_MACRO)
string(REGEX REPLACE "${_SQLite_VERSION_REGEX}" "\\1.\\2.\\3" SQLite_VERSION_STRING "${_SQLite_VERSION_MACRO}")
endif()
unset(_SQLite_VERSION_MACRO)
unset(_SQLite_VERSION_REGEX)
endif()
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SQLite
REQUIRED_VARS SQLite_LIBRARY SQLite_INCLUDE_DIR
VERSION_VAR SQLite_VERSION_STRING
)
mark_as_advanced(SQLite_INCLUDE_DIR SQLite_LIBRARY)
+36
View File
@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>${MACOSX_BUNDLE_EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string>${MACOSX_BUNDLE_ICON_FILE}</string>
<key>CFBundleIdentifier</key>
<string>${MACOSX_BUNDLE_GUI_IDENTIFIER}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleLongVersionString</key>
<string>${MACOSX_BUNDLE_LONG_VERSION_STRING}</string>
<key>CFBundleName</key>
<string>${MACOSX_BUNDLE_BUNDLE_NAME}</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>${MACOSX_BUNDLE_SHORT_VERSION_STRING}</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>${MACOSX_BUNDLE_BUNDLE_VERSION}</string>
<key>CSResourcesFileMapped</key>
<true/>
<key>NSHumanReadableCopyright</key>
<string>${MACOSX_BUNDLE_COPYRIGHT}</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSHighResolutionCapable</key>
<true/>
</dict>
</plist>
-72
View File
@@ -1,72 +0,0 @@
# Shared build options
#
# This file must be included at the top of every non-subdirs .pro file.
# Use:
# include($$ZEAL_COMMON_PRI)
# Compilation settings
CONFIG += c++11 silent
# Shared include path
INCLUDEPATH += $$SRC_ROOT/src/libs
LIBS = -L$$BUILD_ROOT/.lib
# QString options
DEFINES *= QT_USE_QSTRINGBUILDER
DEFINES *= QT_RESTRICTED_CAST_FROM_ASCII
DEFINES *= QT_NO_CAST_TO_ASCII
DEFINES *= QT_NO_URL_CAST_FROM_STRING
# Workaround for AppVeyor: Do not warn if the library had to be created.
# Based on https://codereview.qt-project.org/150326
win32-g++:lessThan(QT_VERSION, "5.6.0") {
QMAKE_LIB = ar -rc
}
# Keep build directory clean
MOC_DIR = $$BUILD_ROOT/.moc
OBJECTS_DIR = $$BUILD_ROOT/.obj
RCC_DIR = $$BUILD_ROOT/.rcc
UI_DIR = $$BUILD_ROOT/.ui
# Application version
VERSION = 0.3.1
DEFINES += ZEAL_VERSION=\\\"$${VERSION}\\\"
# Browser engine
CONFIG(zeal_qtwebengine) {
qtHaveModule(webenginewidgets): BROWSER_ENGINE = qtwebengine
else: error("Qt WebEngine is not available.")
} else {
qtHaveModule(webkitwidgets): BROWSER_ENGINE = qtwebkit
else: qtHaveModule(webenginewidgets): BROWSER_ENGINE = qtwebengine
else: error("Zeal requires Qt WebEngine or Qt WebKit.")
}
equals(BROWSER_ENGINE, qtwebengine) {
message("Browser engine: Qt WebEngine.")
QT += webenginewidgets
DEFINES += USE_WEBENGINE
} else {
message("Browser engine: Qt WebKit.")
QT += webkitwidgets
DEFINES += USE_WEBKIT
}
# Portable build
CONFIG(zeal_portable) {
message("Portable build: Yes.")
DEFINES += PORTABLE_BUILD
}
# Unix installation prefix
unix:!macx {
isEmpty(PREFIX): PREFIX = /usr
}
unix:!macx:packagesExist(appindicator-0.1) {
CONFIG += link_pkgconfig
PKGCONFIG += appindicator-0.1 gtk+-2.0
DEFINES += USE_APPINDICATOR
message("AppIndicator support: Yes.")
}
-8
View File
@@ -1,8 +0,0 @@
include($$ZEAL_COMMON_PRI)
include($$replace(_PRO_FILE_PWD_, ([^/]+$), \\1/\\1.pri))
TEMPLATE = lib
CONFIG += staticlib
DESTDIR = $$BUILD_ROOT/.lib
TARGET = $$ZEAL_LIB_NAME
+31
View File
@@ -0,0 +1,31 @@
# Only C++11
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# Find includes in corresponding build directories.
set(CMAKE_INCLUDE_CURRENT_DIR ON)
## Build options
option(ZEAL_PORTABLE_BUILD "Build portable version")
if(ZEAL_PORTABLE_BUILD)
add_definitions(-DPORTABLE_BUILD)
endif()
## Macro
add_definitions(-DZEAL_VERSION="${Zeal_VERSION}")
# QString options
add_definitions(-DQT_USE_QSTRINGBUILDER)
add_definitions(-DQT_RESTRICTED_CAST_FROM_ASCII)
add_definitions(-DQT_NO_CAST_TO_ASCII)
add_definitions(-DQT_NO_URL_CAST_FROM_STRING)
## Handle moc, uic, and rcc files.
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
include_directories(libs)
add_subdirectory(libs)
add_subdirectory(app)
+51
View File
@@ -0,0 +1,51 @@
# TODO: Move zeal.qrc one level up to rely on CMAKE_AUTORCC.
find_package(Qt5Core REQUIRED)
qt5_add_resources(App_RESOURCES resources/zeal.qrc)
# Silence CMP0071.
set_property(SOURCE qrc_zeal.cpp PROPERTY SKIP_AUTOGEN ON)
if(APPLE)
list(APPEND App_RESOURCES resources/zeal.icns)
elseif(WIN32)
configure_file(versioninfo.rc.in ${CMAKE_CURRENT_BINARY_DIR}/versioninfo.rc)
list(APPEND App_RESOURCES ${CMAKE_CURRENT_BINARY_DIR}/versioninfo.rc)
endif()
add_executable(App WIN32
main.cpp
${App_RESOURCES}
)
target_link_libraries(App Core Util)
find_package(Qt5 COMPONENTS Widgets REQUIRED)
if (Qt5Widgets_VERSION VERSION_LESS QT_MINIMUM_VERSION)
message(FATAL_ERROR "Qt version >= ${QT_MINIMUM_VERSION} is required.")
endif()
target_link_libraries(App Qt5::Widgets)
set_target_properties(App PROPERTIES
OUTPUT_NAME ${PROJECT_OUTPUT_NAME}
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
)
if(APPLE)
set_target_properties(App PROPERTIES
MACOSX_BUNDLE TRUE
MACOSX_BUNDLE_BUNDLE_NAME ${PROJECT_NAME}
MACOSX_BUNDLE_GUI_IDENTIFIER "org.zealdocs.zeal"
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
MACOSX_BUNDLE_LONG_VERSION_STRING ${PROJECT_VERSION}
MACOSX_BUNDLE_SHORT_VERSION_STRING "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}"
MACOSX_BUNDLE_ICON_FILE "zeal.icns"
MACOSX_BUNDLE_COPYRIGHT ${PROJECT_COPYRIGHT}
RESOURCE "resources/zeal.icns"
)
elseif(UNIX)
find_package(ECM REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${ECM_KDE_MODULE_DIR})
include(KDEInstallDirs)
install(TARGETS App DESTINATION ${KDE_INSTALL_BINDIR})
endif()
-42
View File
@@ -1,42 +0,0 @@
include($$ZEAL_COMMON_PRI)
TEMPLATE = app
QT += gui widgets sql concurrent
SOURCES += \
main.cpp
RESOURCES += \
resources/zeal.qrc
DESTDIR = $$BUILD_ROOT/bin
unix:!macx {
TARGET = zeal
target.path = $$PREFIX/bin
INSTALLS += target
}
win32 {
TARGET = zeal
RC_ICONS = resources/zeal.ico
}
macx {
TARGET = Zeal
ICON = resources/zeal.icns
}
# FIXME: Hardcoded link line & cyclic dependencies.
LIBS += -lCore -lUi -lRegistry -lUtil
# Depend on all dependencies of libraries
for(lib_dir, $$list($$files($$SRC_ROOT/src/libs/*))) {
!equals(lib_dir, $$SRC_ROOT/src/libs/libs.pro) {
include($$lib_dir/$$basename(lib_dir).pri)
PRE_TARGETDEPS += $$BUILD_ROOT/.lib/lib$${ZEAL_LIB_NAME}.a
# LIBS += -l$$ZEAL_LIB_NAME
}
}
+41 -68
View File
@@ -22,31 +22,30 @@
****************************************************************************/
#include <core/application.h>
#include <core/localserver.h>
#include <core/applicationsingleton.h>
#include <registry/searchquery.h>
#include <QApplication>
#include <QCommandLineParser>
#include <QDataStream>
#include <QDesktopServices>
#include <QDir>
#include <QIcon>
#include <QMessageBox>
#include <QSqlDatabase>
#include <QTextStream>
#include <QTimer>
#include <QUrlQuery>
#ifdef Q_OS_WIN32
#include <QSettings>
#include <Windows.h>
#endif
#include <cstdlib>
using namespace Zeal;
namespace {
const char contactUrl[] = "https://go.zealdocs.org/l/contact";
}
struct CommandLineParameters
{
bool force;
@@ -75,9 +74,8 @@ CommandLineParameters parseCommandLine(const QStringList &arguments)
parser.addHelpOption();
parser.addVersionOption();
// TODO: [Qt 5.4] parser.addOption({{"f", "force"}, "Force the application run."});
parser.addOption(QCommandLineOption({QStringLiteral("f"), QStringLiteral("force")},
QObject::tr("Force the application run.")));
parser.addOption({{QStringLiteral("f"), QStringLiteral("force")},
QObject::tr("Force the application run.")});
#ifdef Q_OS_WIN32
parser.addOption(QCommandLineOption({QStringLiteral("register")},
@@ -105,6 +103,7 @@ CommandLineParameters parseCommandLine(const QStringList &arguments)
// TODO: Support dash-feed:// protocol
const QString arg
= QUrl::fromPercentEncoding(parser.positionalArguments().value(0).toUtf8());
if (arg.startsWith(QLatin1String("dash:"))) {
clParams.query.setQuery(stripParameterUrl(arg, QStringLiteral("dash")));
} else if (arg.startsWith(QLatin1String("dash-plugin:"))) {
@@ -179,6 +178,11 @@ int main(int argc, char *argv[])
QCoreApplication::setOrganizationDomain(QStringLiteral("zealdocs.org"));
QCoreApplication::setOrganizationName(QStringLiteral("Zeal"));
#if QT_VERSION >= 0x050600
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
#endif
QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
QScopedPointer<QApplication> qapp(new QApplication(argc, argv));
const CommandLineParameters clParams = parseCommandLine(qapp->arguments());
@@ -199,74 +203,43 @@ int main(int argc, char *argv[])
}
#endif
// Detect already running instance and optionally send the search query to it.
if (!clParams.force && Core::LocalServer::sendQuery(clParams.query, clParams.preventActivation))
return 0;
QScopedPointer<Core::ApplicationSingleton> appSingleton(new Core::ApplicationSingleton());
if (appSingleton->isSecondary()) {
#ifdef Q_OS_WIN32
::AllowSetForegroundWindow(appSingleton->primaryPid());
#endif
QByteArray ba;
QDataStream out(&ba, QIODevice::WriteOnly);
out << clParams.query << clParams.preventActivation;
// TODO: Check for a possible error.
appSingleton->sendMessage(ba);
return EXIT_SUCCESS;
}
// Set application-wide window icon. All message boxes and other windows will use it by default.
qapp->setWindowIcon(QIcon::fromTheme(QStringLiteral("zeal"),
QIcon(QStringLiteral(":/zeal.ico"))));
QScopedPointer<Core::LocalServer> localServer(new Core::LocalServer());
if (!localServer->start()) {
QScopedPointer<QMessageBox> msgBox(new QMessageBox());
msgBox->setWindowTitle(QStringLiteral("Zeal"));
msgBox->setIcon(QMessageBox::Warning);
msgBox->setText(QObject::tr("Another application instance can be still running, "
"or has crashed.<br>Make sure to start Zeal only once."));
msgBox->addButton(QMessageBox::Help);
msgBox->addButton(QMessageBox::Retry);
QPushButton *quitButton = msgBox->addButton(QObject::tr("&Quit"),
QMessageBox::DestructiveRole);
msgBox->setDefaultButton(quitButton);
switch (msgBox->exec()) {
case QMessageBox::Rejected:
return EXIT_SUCCESS;
case QMessageBox::Help:
QDesktopServices::openUrl(QUrl(contactUrl));
}
msgBox->removeButton(msgBox->button(QMessageBox::Retry));
if (!localServer->start(true)) {
msgBox->setIcon(QMessageBox::Critical);
msgBox->setText(QObject::tr("Zeal is unable to start. Please report the issue "
"providing the details below."));
msgBox->setDetailedText(localServer->errorString());
if (msgBox->exec() == QMessageBox::Help)
QDesktopServices::openUrl(QUrl(contactUrl));
return EXIT_SUCCESS;
}
}
// Check for SQLite plugin
// TODO: Specific to docset format and should be handled accordingly in the future
if (!QSqlDatabase::isDriverAvailable(QStringLiteral("QSQLITE"))) {
QScopedPointer<QMessageBox> msgBox(new QMessageBox());
msgBox->setWindowTitle(QStringLiteral("Zeal"));
msgBox->setIcon(QMessageBox::Critical);
msgBox->setText(QObject::tr("Qt SQLite driver is not available."));
msgBox->addButton(QMessageBox::Help);
QPushButton *quitButton = msgBox->addButton(QObject::tr("&Quit"),
QMessageBox::DestructiveRole);
msgBox->setDefaultButton(quitButton);
if (msgBox->exec() == QMessageBox::Help)
QDesktopServices::openUrl(QUrl(contactUrl));
return EXIT_SUCCESS;
}
QDir::setSearchPaths(QStringLiteral("typeIcon"), {QStringLiteral(":/icons/type")});
QScopedPointer<Core::Application> app(new Core::Application());
QObject::connect(localServer.data(), &Core::LocalServer::newQuery,
app.data(), &Core::Application::executeQuery);
if (!clParams.query.isEmpty())
Core::LocalServer::sendQuery(clParams.query, clParams.preventActivation);
QObject::connect(appSingleton.data(), &Core::ApplicationSingleton::messageReceived,
[&app](const QByteArray &data) {
Registry::SearchQuery query;
bool preventActivation;
QDataStream in(data);
in >> query >> preventActivation;
app->executeQuery(query, preventActivation);
});
if (!clParams.query.isEmpty()) {
QTimer::singleShot(0, [&app, clParams] {
app->executeQuery(clParams.query, clParams.preventActivation);
});
}
return qapp->exec();
}
@@ -0,0 +1,11 @@
/* Dark mode (see #466). */
/* TODO: Check if we need -webkit-filter for old Qt WebKit. */
html {
-webkit-filter: invert() hue-rotate(180deg) contrast(70%);
filter: invert() hue-rotate(180deg) contrast(70%);
}
html img {
-webkit-filter: invert() hue-rotate(180deg) contrast(120%);
filter: invert() hue-rotate(180deg) contrast(120%);
}
@@ -0,0 +1,5 @@
/*!
* Font Awesome Free 5.0.4 by @fontawesome - http://fontawesome.com
* License - http://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
@font-face{font-family:Font Awesome\ 5 Brands;font-style:normal;font-weight:400;src:url(../fonts/fa-brands-400.eot);src:url(../fonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-brands-400.woff2) format("woff2"),url(../fonts/fa-brands-400.woff) format("woff"),url(../fonts/fa-brands-400.ttf) format("truetype"),url(../fonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:Font Awesome\ 5 Brands}
+5
View File
@@ -0,0 +1,5 @@
/*!
* Font Awesome Free 5.0.4 by @fontawesome - http://fontawesome.com
* License - http://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
@font-face{font-family:Font Awesome\ 5 Free;font-style:normal;font-weight:900;src:url(../fonts/fa-solid-900.eot);src:url(../fonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-solid-900.woff2) format("woff2"),url(../fonts/fa-solid-900.woff) format("woff"),url(../fonts/fa-solid-900.ttf) format("truetype"),url(../fonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:Font Awesome\ 5 Free;font-weight:900}
File diff suppressed because one or more lines are too long
@@ -1,6 +1,7 @@
/* Highlight on navigation to an anchor. */
@-webkit-keyframes targetNavigatedAnimation {
from { background: #ffffff; }
50% { background: #ffffdd; }
50% { background: #ffff00; }
to { background: #ffffff; }
}
File diff suppressed because one or more lines are too long
-33
View File
@@ -1,33 +0,0 @@
body {
color: #7a7a7a;
cursor: default;
display: -webkit-flex;
font-size: 11pt;
margin: 10;
text-align: center;
-webkit-flex-direction: column;
-webkit-user-select: none;
}
a {
color: #7a7a7a;
font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
font-weight: 100;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
#title {
font-size: 4em;
}
.container {
-webkit-flex: none;
}
.dynamic {
-webkit-flex: auto;
}
-18
View File
@@ -1,18 +0,0 @@
<html>
<head>
<title>Start Page</title>
<link href="main.css" rel="stylesheet" type="text/css">
</head>
<body onmousedown="event.preventDefault()" oncontextmenu="event.preventDefault()">
<div class="dynamic"></div>
<div class="container">
<img src="qrc:///icons/logo/128x128.png">
<h1 id="title">Zeal</h1>
</div>
<div class="dynamic"></div>
<footer>
<p><a href="https://zealdocs.org">zealdocs.org</a> | <a href="https://twitter.com/zealdocs">@zealdocs</a><p>
<p><small><a href="https://www.kapeli.com/dash">Get Dash for OS X or iOS</a></small><p>
</footer>
</body>
</html>
@@ -0,0 +1,81 @@
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Welcome</title>
<link rel="stylesheet" type="text/css" href="assets/css/fa-brands.min.css">
<link rel="stylesheet" type="text/css" href="assets/css/fa-solid.min.css">
<link rel="stylesheet" type="text/css" href="assets/css/fontawesome.min.css">
<link rel="stylesheet" type="text/css" href="assets/css/welcome.min.css">
</head>
<body class="is-unselectable">
<section class="hero is-fullheight">
<div class="hero-body">
<div class="container">
<div class="columns is-vcentered">
<div class="column has-text-centered">
<p class="title">Zeal
<span id="version" class="has-text-weight-light is-size-5"></span>
</p>
<p class="subtitle">Docs for everyone</p>
</div>
<div class="column">
<p class="subtitle is-5">Customize</p>
<div class="command-block" onclick="zAppBridge.triggerAction('openDocsetManager')">
<p class="title is-6">Docsets</p>
<p class="subtitle is-6">Install and update docsets</p>
</div>
<div class="command-block" onclick="zAppBridge.triggerAction('openPreferences')">
<p class="title is-6">Preferences</p>
<p class="subtitle is-6">Adjust application settings</p>
</div>
<p class="subtitle is-5">Get in touch</p>
<div class="command-block" onclick="zAppBridge.openShortUrl('gitter')">
<p class="title is-6">Gitter</p>
<p class="subtitle is-6">Chat with developers and other users</p>
</div>
<div class="command-block" onclick="zAppBridge.openShortUrl('github')">
<p class="title is-6">GitHub</p>
<p class="subtitle is-6">Contribute to the project</p>
</div>
</div>
</div>
</div>
</div>
<div class="hero-foot">
<div class="container">
<div class="content has-text-centered">
<p>
<a class="icon" onclick="zAppBridge.openShortUrl('github')">
<i class="fab fa-github"></i>
</a>
<a class="icon" onclick="zAppBridge.openShortUrl('gitter')">
<i class="fab fa-gitter"></i>
</a>
<a class="icon" onclick="zAppBridge.openShortUrl('twiter')">
<i class="fab fa-twitter"></i>
</a>
</p>
<p>
<a class="is-size-7" onclick="zAppBridge.openShortUrl('report-bug')">
<span class="icon">
<i class="fas fa-bug"></i>
</span>
<span>Report a problem</span>
</a>
</p>
<p></p>
</div>
</div>
</div>
</section>
<script>
document.getElementById("version").textContent = zAppBridge.AppVersion;
</script>
</body>
</html>
+87
View File
@@ -0,0 +1,87 @@
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Welcome</title>
<link rel="stylesheet" type="text/css" href="assets/css/fa-brands.min.css">
<link rel="stylesheet" type="text/css" href="assets/css/fa-solid.min.css">
<link rel="stylesheet" type="text/css" href="assets/css/fontawesome.min.css">
<link rel="stylesheet" type="text/css" href="assets/css/welcome.min.css">
</head>
<body class="is-unselectable">
<section class="hero is-fullheight">
<div class="hero-body">
<div class="container">
<div class="columns is-vcentered">
<div class="column has-text-centered">
<p class="title">Zeal
<span id="version" class="has-text-weight-light is-size-5"></span>
</p>
<p class="subtitle">Docs for everyone</p>
<div id="carboncontainer" style="margin-top: 75px;">
<div id="carbon" class="box">
<script async type="text/javascript" src="https://cdn.carbonads.com/carbon.js?zoneid=1673&serve=C6AILKT&placement=zealdocsforwindowsorg"
onerror="document.getElementById('carboncontainer').style.display = 'none';" id="_carbonads_js"></script>
</div>
</div>
</div>
<div class="column">
<p class="subtitle is-5">Customize</p>
<div class="command-block" onclick="zAppBridge.triggerAction('openDocsetManager')">
<p class="title is-6">Docsets</p>
<p class="subtitle is-6">Install and update docsets</p>
</div>
<div class="command-block" onclick="zAppBridge.triggerAction('openPreferences')">
<p class="title is-6">Preferences</p>
<p class="subtitle is-6">Adjust application settings</p>
</div>
<p class="subtitle is-5">Get in touch</p>
<div class="command-block" onclick="zAppBridge.openShortUrl('gitter')">
<p class="title is-6">Gitter</p>
<p class="subtitle is-6">Chat with developers and other users</p>
</div>
<div class="command-block" onclick="zAppBridge.openShortUrl('github')">
<p class="title is-6">GitHub</p>
<p class="subtitle is-6">Contribute to the project</p>
</div>
</div>
</div>
</div>
</div>
<div class="hero-foot">
<div class="container">
<div class="content has-text-centered">
<p>
<a class="icon" onclick="zAppBridge.openShortUrl('github')">
<i class="fab fa-github"></i>
</a>
<a class="icon" onclick="zAppBridge.openShortUrl('gitter')">
<i class="fab fa-gitter"></i>
</a>
<a class="icon" onclick="zAppBridge.openShortUrl('twiter')">
<i class="fab fa-twitter"></i>
</a>
</p>
<p>
<a class="is-size-7" onclick="zAppBridge.openShortUrl('report-bug')">
<span class="icon">
<i class="fas fa-bug"></i>
</span>
<span>Report a problem</span>
</a>
</p>
<p></p>
</div>
</div>
</div>
</section>
<script>
document.getElementById("version").textContent = zAppBridge.AppVersion;
</script>
</body>
</html>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 923 B

After

Width:  |  Height:  |  Size: 869 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 354 B

After

Width:  |  Height:  |  Size: 319 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 534 B

After

Width:  |  Height:  |  Size: 493 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 354 B

After

Width:  |  Height:  |  Size: 319 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 534 B

After

Width:  |  Height:  |  Size: 493 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 354 B

After

Width:  |  Height:  |  Size: 319 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 534 B

After

Width:  |  Height:  |  Size: 493 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 354 B

After

Width:  |  Height:  |  Size: 319 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 534 B

After

Width:  |  Height:  |  Size: 493 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 354 B

After

Width:  |  Height:  |  Size: 319 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 534 B

After

Width:  |  Height:  |  Size: 493 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 375 B

After

Width:  |  Height:  |  Size: 332 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 316 B

After

Width:  |  Height:  |  Size: 297 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 375 B

After

Width:  |  Height:  |  Size: 332 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 421 B

After

Width:  |  Height:  |  Size: 376 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 474 B

After

Width:  |  Height:  |  Size: 424 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 421 B

After

Width:  |  Height:  |  Size: 376 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 421 B

After

Width:  |  Height:  |  Size: 376 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 421 B

After

Width:  |  Height:  |  Size: 376 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 471 B

After

Width:  |  Height:  |  Size: 430 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 430 B

After

Width:  |  Height:  |  Size: 390 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 498 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 318 B

After

Width:  |  Height:  |  Size: 280 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 599 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 271 B

After

Width:  |  Height:  |  Size: 230 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 271 B

After

Width:  |  Height:  |  Size: 230 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 271 B

After

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 309 B

After

Width:  |  Height:  |  Size: 294 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 271 B

After

Width:  |  Height:  |  Size: 230 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 310 B

After

Width:  |  Height:  |  Size: 273 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 240 B

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 337 B

After

Width:  |  Height:  |  Size: 300 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 500 B

After

Width:  |  Height:  |  Size: 486 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 337 B

After

Width:  |  Height:  |  Size: 300 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 521 B

After

Width:  |  Height:  |  Size: 486 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 246 B

After

Width:  |  Height:  |  Size: 209 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 281 B

After

Width:  |  Height:  |  Size: 246 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 246 B

After

Width:  |  Height:  |  Size: 209 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 281 B

After

Width:  |  Height:  |  Size: 246 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 246 B

After

Width:  |  Height:  |  Size: 209 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 281 B

After

Width:  |  Height:  |  Size: 246 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 249 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 246 B

After

Width:  |  Height:  |  Size: 209 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 281 B

After

Width:  |  Height:  |  Size: 246 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 246 B

After

Width:  |  Height:  |  Size: 209 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 281 B

After

Width:  |  Height:  |  Size: 246 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 435 B

After

Width:  |  Height:  |  Size: 390 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 342 B

After

Width:  |  Height:  |  Size: 304 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 860 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 255 B

After

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 366 B

After

Width:  |  Height:  |  Size: 329 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 234 B

After

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 345 B

After

Width:  |  Height:  |  Size: 329 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 196 B

After

Width:  |  Height:  |  Size: 159 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 293 B

After

Width:  |  Height:  |  Size: 257 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 196 B

After

Width:  |  Height:  |  Size: 159 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 293 B

After

Width:  |  Height:  |  Size: 257 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 196 B

After

Width:  |  Height:  |  Size: 159 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 293 B

After

Width:  |  Height:  |  Size: 257 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 213 B

After

Width:  |  Height:  |  Size: 176 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 307 B

After

Width:  |  Height:  |  Size: 272 B

Some files were not shown because too many files have changed in this diff Show More