Skip to content

Commit

Permalink
Merge branch 'master' into better-keyboard-selection
Browse files Browse the repository at this point in the history
  • Loading branch information
trollixx authored Oct 20, 2018
2 parents f002e41 + 25a2227 commit 2daaca9
Show file tree
Hide file tree
Showing 13 changed files with 225 additions and 83 deletions.
176 changes: 176 additions & 0 deletions .appveyor.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,176 @@
version: '{branch}-{build}'
pull_requests:
do_not_increment_build_number: true
branches:
only:
- master
- stable
- /release\/.*/
image:
- Visual Studio 2015
- Ubuntu1804
configuration: Release
platform:
- x86
- x64
environment:
APPVEYOR_YML_DISABLE_PS_LINUX: true
matrix:
- ZEAL_PORTABLE_BUILD: "OFF"
- ZEAL_PORTABLE_BUILD: "ON"
matrix:
exclude:
- image: Ubuntu1804
platform: x86
init:
- ps: |-
if ($Env:PLATFORM -eq "x64") {
$Env:QT_ROOT = "C:\Qt\5.11\msvc2015_64"
} else {
$Env:QT_ROOT = "C:\Qt\5.11\msvc2015"
}
$Env:Path += ";${Env:QT_ROOT}\bin;C:\Program Files\7-Zip"
install:
- ps: |-
# Install vcpkg toolchain.
$Env:VCPKG_ROOT = "c:\projects\vcpkg-export"
$vcpkgArchive = "vcpkg-export-20181014.4-${Env:PLATFORM}.7z"
appveyor DownloadFile "https://dl.bintray.com/zealdocs/windows-ci/$vcpkgArchive"
7z x $vcpkgArchive -o"${Env:VCPKG_ROOT}"
# Install QtWebKit.
$qtWebKitArchiveBaseName = "qtwebkit-5.212.0_72cfbd7-qt5111-msvc2015-${Env:PLATFORM}"
appveyor Downloadfile "https://dl.bintray.com/zealdocs/windows-ci/$qtWebKitArchiveBaseName.zip"
7z x "$qtWebKitArchiveBaseName.zip"
Get-ChildItem ".\$qtWebKitArchiveBaseName" | Copy -Destination ${Env:QT_ROOT} -Recurse -Force
- sh: |-
sudo apt-get -y -qq update
sudo apt-get -y -qq install \
--no-install-recommends \
cmake \
extra-cmake-modules \
qt5-default \
libqt5webkit5-dev \
libqt5x11extras5-dev \
libarchive-dev \
libxcb-keysyms1-dev
before_build:
- ps: |-
Write-Output "Source directory: ${Env:APPVEYOR_BUILD_FOLDER}"
New-Item -ItemType Directory -Force -Path dist | Out-Null
Set-Location -Path dist
# Prepare .sln with CMake:
$cmakeGenerator = "Visual Studio 14 2015"
if ($Env:PLATFORM -eq "x64") {
$cmakeGenerator += " Win64"
}
Write-Output "Generator: $cmakeGenerator"
cmake "${Env:APPVEYOR_BUILD_FOLDER}" `
-G "$cmakeGenerator" `
-DZEAL_PORTABLE_BUILD="${Env:ZEAL_PORTABLE_BUILD}" `
-DCMAKE_BUILD_TYPE="${Env:CONFIGURATION}" `
-DCMAKE_PREFIX_PATH="${Env:QT_ROOT}" `
-DCMAKE_TOOLCHAIN_FILE="${Env:VCPKG_ROOT}\scripts\buildsystems\vcpkg.cmake"
Set-Location -Path ${Env:APPVEYOR_BUILD_FOLDER}
- sh: |-
mkdir build
cd build
cmake .. \
-DZEAL_PORTABLE_BUILD="${ZEAL_PORTABLE_BUILD}"
cd ..
build:
project: dist\ALL_BUILD.vcxproj
parallel: true
verbosity: minimal
build_script:
- sh: |-
cmake --build build
test: off
before_package:
- ps: |-
$package = "zeal"
if ($Env:ZEAL_PORTABLE_BUILD -eq "ON") {
$package = $package + "-portable"
}
if ($Env:APPVEYOR_REPO_BRANCH -eq "master") {
$package = $package + "-unstable"
} elseif (${env:APPVEYOR_REPO_BRANCH}.StartsWith("release/")) {
$package = $package + "-stable"
} else {
Write-Output "Skipping deployment for this branch..."
Exit-AppveyorBuild
}
$Env:ZEAL_PKG_NAME = $package
# TODO: Use APPVEYOR_BUILD_VERSION.
$Env:ZEAL_PKG_VERSION = git describe | ForEach-Object {$_ -replace "^v",""}
$binaryDir = "dist\bin\Release"
$deploymentDir = "${Env:ZEAL_PKG_NAME}-${Env:ZEAL_PKG_VERSION}-windows-${Env:PLATFORM}"
Write-Output "Output Directory: $deploymentDir"
New-Item -Type directory -Path . -Name "$deploymentDir" -Force | Out-Null
& windeployqt `
--no-angle `
--no-compiler-runtime `
--no-opengl-sw `
--no-plugins `
--no-system-d3d-compiler `
--no-translations `
--dir "$deploymentDir" `
"$binaryDir\zeal.exe"
function AddItem ($path) {
Copy-Item "$path" "$deploymentDir"
Write-Host "Added $path"
}
AddItem "$binaryDir\*"
# OpenSSL is a runtime dependency, so copy it manually.
AddItem "${Env:VCPKG_ROOT}\installed\${Env:PLATFORM}-windows\bin\libeay32.dll"
AddItem "${Env:VCPKG_ROOT}\installed\${Env:PLATFORM}-windows\bin\ssleay32.dll"
function AddQtPlugin ($directory, $plugin) {
if ( -Not (Test-Path "$deploymentDir\$directory")) {
New-Item -ItemType directory -Path "$deploymentDir" -Name "$directory" | Out-Null
}
Copy-Item "${Env:QT_ROOT}\plugins\$directory\q$plugin.dll" "$deploymentDir\$directory"
Write-Host "Added $directory\$plugin.dll"
}
AddQtPlugin "imageformats" "gif"
AddQtPlugin "imageformats" "ico"
AddQtPlugin "imageformats" "jpeg"
AddQtPlugin "platforms" "windows"
AddQtPlugin "styles" "windowsvistastyle"
$archiveName = "$deploymentDir.zip"
& 7z a -mx=9 "$archiveName" "$deploymentDir"
artifacts:
- path: zeal-*.zip
deploy:
- provider: BinTray
username: trollixx
api_key:
secure: AsKi8j1sR34g/9+B22/dJ49X3Uie8TizgQD7lzNvW2/+deWq7oLyCQQUCrqPjOUY
subject: zealdocs
repo: windows-ci
package: $(ZEAL_PKG_NAME)
version: $(ZEAL_PKG_VERSION)
publish: true
override: true

14 changes: 14 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# EditorConfig (https://editorconfig.org)
root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_size = 4
indent_style = space
max_line_length = 100
trim_trailing_whitespace = true

[*.{xml,xml.in,yml}]
indent_size = 2
13 changes: 1 addition & 12 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,6 @@
*.dll
*.dylib

# qmake
/.qmake.cache
/.qmake.stash
*.pro.user
*.pro.user.*
*.moc
moc_*.cpp
qrc_*.cpp
ui_*.h
Makefile*
*-build-*

# Qt Creator
*.autosave

Expand All @@ -30,6 +18,7 @@ Makefile*

# CMake
CMakeLists.txt.user
build/

# VS Code
/.vscode
Expand Down
14 changes: 0 additions & 14 deletions .shippable.yml

This file was deleted.

2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ set(PROJECT_COPYRIGHT "© 2015-2018 Oleg Shparber")
set(PROJECT_DESCRIPTION "A simple documentation browser.")
set(PROJECT_URL "https://zealdocs.org")

set(QT_MINIMUM_VERSION 5.5.1)
set(QT_MINIMUM_VERSION 5.9.5)

add_subdirectory(assets)
add_subdirectory(src)
14 changes: 4 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,13 @@
[![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)

[![AppVeyor](https://img.shields.io/appveyor/ci/zealdocs/zeal/master.svg?style=flat-square)](https://ci.appveyor.com/project/zealdocs/zeal)
[![Coverity Scan](https://img.shields.io/coverity/scan/4271.svg?style=flat-square)](https://scan.coverity.com/projects/4271)

Zeal is a simple offline documentation browser inspired by [Dash](https://kapeli.com/dash).

![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 | 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

Get binary builds for Windows and Linux from the [download page](https://zealdocs.org/download.html).
Expand All @@ -32,7 +26,7 @@ After installing Zeal, go to *Tools->Docsets*, select the ones you want, and cli
### Required dependencies

* [CMake](https://cmake.org/).
* [Qt](https://www.qt.io/) version 5.5.1 or above. Required module: Qt WebKit Widgets.
* [Qt](https://www.qt.io/) version 5.9.5 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`.
Expand Down
2 changes: 0 additions & 2 deletions src/app/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -178,9 +178,7 @@ 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));
Expand Down
2 changes: 1 addition & 1 deletion src/libs/core/settings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ void Settings::load()
docsetPath = QStandardPaths::writableLocation(QStandardPaths::DataLocation)
+ QLatin1String("/docsets");
#else
docsetPath = QCoreApplication::applicationDirPath() + QLatin1String("/docsets");
docsetPath = QStringLiteral("docsets");
#endif
QDir().mkpath(docsetPath);
}
Expand Down
28 changes: 9 additions & 19 deletions src/libs/ui/mainwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,15 @@ MainWindow::MainWindow(Core::Application *app, QWidget *parent) :
connect(ui->actionForward, &QAction::triggered, this, [this]() { currentTab()->forward(); });
addAction(ui->actionForward);

shortcut = new QShortcut(QKeySequence::ZoomIn, this);
connect(shortcut, &QShortcut::activated, this, [this]() { currentTab()->zoomIn(); });
shortcut = new QShortcut(QStringLiteral("Ctrl+="), this);
connect(shortcut, &QShortcut::activated, this, [this]() { currentTab()->zoomIn(); });
shortcut = new QShortcut(QKeySequence::ZoomOut, this);
connect(shortcut, &QShortcut::activated, this, [this]() { currentTab()->zoomOut(); });
shortcut = new QShortcut(QStringLiteral("Ctrl+0"), this);
connect(shortcut, &QShortcut::activated, this, [this]() { currentTab()->resetZoom(); });

// Tools Menu
connect(ui->actionDocsets, &QAction::triggered, [this]() {
QScopedPointer<DocsetsDialog> dialog(new DocsetsDialog(m_application, this));
Expand Down Expand Up @@ -266,19 +275,10 @@ MainWindow::MainWindow(Core::Application *app, QWidget *parent) :
m_backMenu->clear();
QWebHistory *history = currentTab()->history();
QList<QWebHistoryItem> items = history->backItems(10);
#if QT_VERSION >= 0x050600
for (auto it = items.crbegin(); it != items.crend(); ++it) {
#else
for (auto it = items.cend() - 1; it >= items.cbegin(); --it) {
#endif
const QIcon icon = docsetIcon(docsetName(it->url()));
const QWebHistoryItem item = *it;
#if QT_VERSION >= 0x050600
m_backMenu->addAction(icon, it->title(), [=](bool) { history->goToItem(item); });
#else
QAction *action = m_backMenu->addAction(icon, it->title());
connect(action, &QAction::triggered, [=](bool) { history->goToItem(item); });
#endif
}
});
ui->backButton->setDefaultAction(ui->actionBack);
Expand All @@ -290,12 +290,7 @@ MainWindow::MainWindow(Core::Application *app, QWidget *parent) :
QWebHistory *history = currentTab()->history();
for (const QWebHistoryItem &item: history->forwardItems(10)) {
const QIcon icon = docsetIcon(docsetName(item.url()));
#if QT_VERSION >= 0x050600
m_forwardMenu->addAction(icon, item.title(), [=](bool) { history->goToItem(item); });
#else
QAction *action = m_forwardMenu->addAction(icon, item.title());
connect(action, &QAction::triggered, [=](bool) { history->goToItem(item); });
#endif
}
});
ui->forwardButton->setDefaultAction(ui->actionForward);
Expand Down Expand Up @@ -797,13 +792,8 @@ void MainWindow::createTrayIcon()
});

QMenu *trayIconMenu = new QMenu(this);
#if QT_VERSION >= 0x050600
QAction *toggleAction = trayIconMenu->addAction(tr("Show Zeal"),
this, &MainWindow::toggleWindow);
#else
QAction *toggleAction = trayIconMenu->addAction(tr("Show Zeal"));
connect(toggleAction, &QAction::triggered, this, &MainWindow::toggleWindow);
#endif

connect(trayIconMenu, &QMenu::aboutToShow, this, [this, toggleAction]() {
toggleAction->setText(isVisible() ? tr("Minimize to Tray") : tr("Show Zeal"));
Expand Down
Loading

0 comments on commit 2daaca9

Please sign in to comment.