Compare commits
207 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| bae9a49b0d | |||
| f85b902fc7 | |||
| ab1c1a2bae | |||
| 6e40307608 | |||
| af56557f34 | |||
| daf55ff31c | |||
| f872a2dd59 | |||
| 10620933b4 | |||
| 14330638bb | |||
| 2a2627aa79 | |||
| 04159cfdd5 | |||
| 9fdaa35420 | |||
| 18de7a1b5d | |||
| 26da8bef6e | |||
| 192a451a25 | |||
| b7ca52ab54 | |||
| 20faeb5fed | |||
| b6abb5104b | |||
| b18f88d852 | |||
| 7fbabfc425 | |||
| 44e0289c35 | |||
| 132619f1f6 | |||
| 053c46ccbd | |||
| d259a7a0d7 | |||
| e406a35255 | |||
| fb78df0504 | |||
| 72b254bb18 | |||
| af429d74a0 | |||
| 6dd244949c | |||
| d0d3f56d1d | |||
| 486ce17296 | |||
| 7c3789dead | |||
| 9e98a6860e | |||
| a9307b4a1e | |||
| 478791a2d8 | |||
| ba3c63c9ae | |||
| 3b2a395728 | |||
| 8fa793a6f6 | |||
| 9e86fcdfd5 | |||
| 4b65cb29da | |||
| b468d31aab | |||
| 5cec65591b | |||
| 57fbea15c2 | |||
| fafdc268d8 | |||
| d0cdc200bb | |||
| a406f8de5f | |||
| bf574687e5 | |||
| ee4b00efba | |||
| e58fc7f089 | |||
| 2aed15f824 | |||
| 38d14735b6 | |||
| 7d39f3fbb4 | |||
| a5a66efbfa | |||
| 44208f1c8c | |||
| b4009fc0be | |||
| 3a7b7053c0 | |||
| 47250981b4 | |||
| 9765c05ede | |||
| 9c0938c679 | |||
| 5b9fed94db | |||
| 4ba5512411 | |||
| 465a8b92a8 | |||
| 3b8530535d | |||
| 96bfa2d3cd | |||
| 50be385ec7 | |||
| 340776c89a | |||
| 2ec5740b55 | |||
| 1c74d39c2d | |||
| 436a96187c | |||
| c8525e917e | |||
| f9ce40edb8 | |||
| f8088d71d1 | |||
| f32e30f9ae | |||
| a907d8295a | |||
| fb19ac0fa6 | |||
| 232d225cb2 | |||
| df2b74b6d4 | |||
| 4769b7a228 | |||
| d0b2d4c2dd | |||
| 176445083b | |||
| 65c60bc243 | |||
| 8303bc0a90 | |||
| cf30c36392 | |||
| f17e1a1708 | |||
| a9be16a132 | |||
| 84afbf5148 | |||
| 9eb9584331 | |||
| 686eda015d | |||
| bd85d70bac | |||
| 500c705dce | |||
| 2142fba72e | |||
| 3812d2e22e | |||
| ace9c11084 | |||
| 64ee009ee3 | |||
| c30496f994 | |||
| 01cb04dd29 | |||
| 04172f89e5 | |||
| b47ba0b0a4 | |||
| b6d7d35704 | |||
| ba773158d4 | |||
| e2c576db92 | |||
| a90fef36df | |||
| 4dcd7cf90b | |||
| 2f953b5857 | |||
| 2a42b600ae | |||
| 57c9edd20c | |||
| c6003e19b9 | |||
| 7b1223b03d | |||
| 42e79a66ef | |||
| c25abbee6f | |||
| 73ecfb944c | |||
| 8a5a8680f1 | |||
| 58dc4df02f | |||
| a1f5d4522c | |||
| 419a84e93e | |||
| 6cff27b2d5 | |||
| cec7ba4f14 | |||
| 8c1badb6a5 | |||
| af774275ab | |||
| b3fc62e2ae | |||
| a994817308 | |||
| e48baaddd1 | |||
| 008d809346 | |||
| ce91a1426c | |||
| 2079180b8c | |||
| bb89f29977 | |||
| 3e07c72706 | |||
| 3daf64d8aa | |||
| 7ae1c84c55 | |||
| 14e874e5cb | |||
| 0f554794e4 | |||
| e0f073948c | |||
| 29d7de9083 | |||
| a4126c51d4 | |||
| d74c329d01 | |||
| bbf3db6cbc | |||
| e80683bce8 | |||
| ec0ba89d58 | |||
| a5b3782735 | |||
| 01f939aebd | |||
| 2fd6ea124e | |||
| 113e8a4cfd | |||
| 11f10adfe9 | |||
| ccbb75b1b9 | |||
| 4258825753 | |||
| e2c83025f6 | |||
| 0f6fcaa816 | |||
| 6c21819a57 | |||
| 59c60aeb18 | |||
| 07c9974b61 | |||
| 8fd3ac7499 | |||
| 40e54b1b53 | |||
| cdba884398 | |||
| 318eef91e7 | |||
| 9f14ba1bdf | |||
| 5af3f1f2f5 | |||
| 29392886ac | |||
| 054466ff58 | |||
| fbcec2a035 | |||
| 937cf99aa4 | |||
| 89b9d91938 | |||
| 43d8dd1680 | |||
| 967145fd54 | |||
| df7a0fc52e | |||
| cf4270fb6d | |||
| 808a8769be | |||
| 01ffac5d34 | |||
| a5ef8e88c5 | |||
| d11913c49c | |||
| 3c227b0879 | |||
| 1745321afa | |||
| b83541776d | |||
| 3eaff813b0 | |||
| 1b1beeac73 | |||
| 1e657fb863 | |||
| 066baf3323 | |||
| da8fa00c99 | |||
| b8f418fc91 | |||
| 2b0de572c7 | |||
| 4711e0cf3c | |||
| 59109639ff | |||
| 1412d91bd6 | |||
| c720633d1b | |||
| b8a8dd96d6 | |||
| 8de33d1abe | |||
| 7e4e95644a | |||
| 143d9ddc92 | |||
| 7d48602bd0 | |||
| 6f322602f0 | |||
| 3629d57829 | |||
| 280a8d85c3 | |||
| 7c8c0f37bb | |||
| 3680ef0ce0 | |||
| 7593515cfe | |||
| 1dc1184010 | |||
| c88bfacb34 | |||
| ed29c22b59 | |||
| 1d8c1c11aa | |||
| 003bb31a2d | |||
| 99074288d4 | |||
| c932951efc | |||
| e7f631d2d5 | |||
| 6cb63ee8f0 | |||
| 042b0bb5b6 | |||
| 1462414e3d | |||
| 457af2fe8f | |||
| 0e6d4fffa8 |
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
# Changelog
|
||||
|
||||
The version history is available on [GitHub Releases](https://github.com/zealdocs/zeal/releases).
|
||||
@@ -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)
|
||||
@@ -1,33 +1,23 @@
|
||||
# Zeal
|
||||
|
||||
[](https://github.com/zealdocs/zeal/releases)
|
||||
[](https://gitter.im/zealdocs/zeal)
|
||||
[](https://kiwiirc.com/client/irc.freenode.net/#zealdocs)
|
||||
[](https://telegram.me/zealdocschat)
|
||||
[](https://telegram.me/zealdocs)
|
||||
[](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).
|
||||
|
||||

|
||||
|
||||
[More screenshots](https://imgur.com/a/eVi97)
|
||||

|
||||
|
||||
## Build Status
|
||||
|
||||
[](https://scan.coverity.com/projects/4271)
|
||||
|
||||
OS \ Branch | master | stable
|
||||
------------|--------|-------
|
||||
Linux | [](https://app.shippable.com/projects/54ac2ce4d46935d5fbc19b84) | [](https://app.shippable.com/projects/54ac2ce4d46935d5fbc19b84)
|
||||
Windows | [](https://ci.appveyor.com/project/trollixx/zeal) | [](https://ci.appveyor.com/project/trollixx/zeal)
|
||||
| OS | Build Status |
|
||||
| -------- | ------------ |
|
||||
| Linux | [](https://app.shippable.com/projects/54ac2ce4d46935d5fbc19b84) |
|
||||
| Windows | [](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
|
||||
|
||||
@@ -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()
|
||||
@@ -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
|
||||
}
|
||||
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 872 B |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 5.8 KiB |
@@ -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)
|
||||
@@ -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>
|
||||
@@ -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.")
|
||||
}
|
||||
@@ -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
|
||||
@@ -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)
|
||||
@@ -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()
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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}
|
||||
@@ -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}
|
||||
@@ -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; }
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 923 B After Width: | Height: | Size: 869 B |
|
Before Width: | Height: | Size: 354 B After Width: | Height: | Size: 319 B |
|
Before Width: | Height: | Size: 534 B After Width: | Height: | Size: 493 B |
|
Before Width: | Height: | Size: 354 B After Width: | Height: | Size: 319 B |
|
Before Width: | Height: | Size: 534 B After Width: | Height: | Size: 493 B |
|
Before Width: | Height: | Size: 354 B After Width: | Height: | Size: 319 B |
|
Before Width: | Height: | Size: 534 B After Width: | Height: | Size: 493 B |
|
Before Width: | Height: | Size: 354 B After Width: | Height: | Size: 319 B |
|
Before Width: | Height: | Size: 534 B After Width: | Height: | Size: 493 B |
|
Before Width: | Height: | Size: 354 B After Width: | Height: | Size: 319 B |
|
Before Width: | Height: | Size: 534 B After Width: | Height: | Size: 493 B |
|
Before Width: | Height: | Size: 375 B After Width: | Height: | Size: 332 B |
|
Before Width: | Height: | Size: 316 B After Width: | Height: | Size: 297 B |
|
Before Width: | Height: | Size: 375 B After Width: | Height: | Size: 332 B |
|
Before Width: | Height: | Size: 421 B After Width: | Height: | Size: 376 B |
|
Before Width: | Height: | Size: 474 B After Width: | Height: | Size: 424 B |
|
Before Width: | Height: | Size: 421 B After Width: | Height: | Size: 376 B |
|
Before Width: | Height: | Size: 421 B After Width: | Height: | Size: 376 B |
|
Before Width: | Height: | Size: 421 B After Width: | Height: | Size: 376 B |
|
Before Width: | Height: | Size: 471 B After Width: | Height: | Size: 430 B |
|
Before Width: | Height: | Size: 430 B After Width: | Height: | Size: 390 B |
|
After Width: | Height: | Size: 270 B |
|
After Width: | Height: | Size: 498 B |
|
Before Width: | Height: | Size: 318 B After Width: | Height: | Size: 280 B |
|
Before Width: | Height: | Size: 599 B |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 271 B After Width: | Height: | Size: 230 B |
|
Before Width: | Height: | Size: 271 B After Width: | Height: | Size: 230 B |
|
Before Width: | Height: | Size: 271 B After Width: | Height: | Size: 218 B |
|
Before Width: | Height: | Size: 309 B After Width: | Height: | Size: 294 B |
|
Before Width: | Height: | Size: 271 B After Width: | Height: | Size: 230 B |
|
Before Width: | Height: | Size: 310 B After Width: | Height: | Size: 273 B |
|
Before Width: | Height: | Size: 240 B After Width: | Height: | Size: 203 B |
|
Before Width: | Height: | Size: 337 B After Width: | Height: | Size: 300 B |
|
Before Width: | Height: | Size: 500 B After Width: | Height: | Size: 486 B |
|
Before Width: | Height: | Size: 337 B After Width: | Height: | Size: 300 B |
|
Before Width: | Height: | Size: 521 B After Width: | Height: | Size: 486 B |
|
Before Width: | Height: | Size: 246 B After Width: | Height: | Size: 209 B |
|
Before Width: | Height: | Size: 281 B After Width: | Height: | Size: 246 B |
|
Before Width: | Height: | Size: 246 B After Width: | Height: | Size: 209 B |
|
Before Width: | Height: | Size: 281 B After Width: | Height: | Size: 246 B |
|
Before Width: | Height: | Size: 246 B After Width: | Height: | Size: 209 B |
|
Before Width: | Height: | Size: 281 B After Width: | Height: | Size: 246 B |
|
After Width: | Height: | Size: 190 B |
|
After Width: | Height: | Size: 249 B |
|
Before Width: | Height: | Size: 246 B After Width: | Height: | Size: 209 B |
|
Before Width: | Height: | Size: 281 B After Width: | Height: | Size: 246 B |
|
Before Width: | Height: | Size: 246 B After Width: | Height: | Size: 209 B |
|
Before Width: | Height: | Size: 281 B After Width: | Height: | Size: 246 B |
|
Before Width: | Height: | Size: 435 B After Width: | Height: | Size: 390 B |
|
Before Width: | Height: | Size: 342 B After Width: | Height: | Size: 304 B |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 860 B |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 255 B After Width: | Height: | Size: 218 B |
|
Before Width: | Height: | Size: 366 B After Width: | Height: | Size: 329 B |
|
Before Width: | Height: | Size: 234 B After Width: | Height: | Size: 218 B |
|
Before Width: | Height: | Size: 345 B After Width: | Height: | Size: 329 B |
|
Before Width: | Height: | Size: 196 B After Width: | Height: | Size: 159 B |
|
Before Width: | Height: | Size: 293 B After Width: | Height: | Size: 257 B |
|
Before Width: | Height: | Size: 196 B After Width: | Height: | Size: 159 B |
|
Before Width: | Height: | Size: 293 B After Width: | Height: | Size: 257 B |
|
Before Width: | Height: | Size: 196 B After Width: | Height: | Size: 159 B |
|
Before Width: | Height: | Size: 293 B After Width: | Height: | Size: 257 B |
|
Before Width: | Height: | Size: 213 B After Width: | Height: | Size: 176 B |
|
Before Width: | Height: | Size: 307 B After Width: | Height: | Size: 272 B |