Commit Graph
100 Commits
Author SHA1 Message Date
Michael SchusterandKevin Ottens (Rebase PR Action) 7699004a11 Fix crash in SettingsDialog with delayed initialization
setWindowFlags triggered changeEvent, thus causing a crash in customizeStyle.

This fix should be kept even if we decide against delayed init in the future.

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-10-22 11:29:38 +00:00
Michael SchusterandKevin Ottens (Rebase PR Action) 0fb10163a3 Delay initialization of SettingsDialog
ownCloudGui::slotShowSettings already got what it takes to create it only when we try to show it for the first time.

This however has some implications:

Pros:
- Only created when needed, while testing saved ca. 20 MB of RAM and got freed again after closing the dialog.
- Since we defaulted to the new Tray UI from 3.0, this is an added bonus for users don't opening the settings.

Cons:
- Resources like the avatar image have to be refetched everytime the dialog is recreated.
  This may be desired as well, because it ensures displaying no outdated info (e.g. on connection issues).

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-10-22 11:29:38 +00:00
Michael Schuster 61dc4b9137 Update comments
Everyone uses their private mail, so ensure people can get in touch.

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-10-15 02:18:52 +02:00
Michael SchusterandKevin Ottens (Rebase PR Action) b552c77128 Docs: Be slightly more modern and use 64-bit examples
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-10-05 07:18:35 +00:00
Michael SchusterandKevin Ottens (Rebase PR Action) ce279d0bbd Windows MSI: Add SKIPAUTOUPDATE property for the skipUpdateCheck setting
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-10-05 07:18:35 +00:00
Michael SchusterandKevin Ottens (Rebase PR Action) c5ff288b37 Docs: Use our app name in the MSI docs
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-10-05 07:18:35 +00:00
Michael SchusterandKevin Ottens (Rebase PR Action) 2476dcb425 Windows MSI: Stay compatible with the upstream "StartMenuShortcuts" feature
Even though we only create a program shortcut in the Start Menu, try to make administrators lives easier by not diverging feature and option naming.

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-10-05 07:18:35 +00:00
Michael SchusterandKevin Ottens (Rebase PR Action) bf6980d31a Docs: Adopt latest MSI doc enhancements from upstream master
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-10-05 07:18:35 +00:00
Michael SchusterandKevin Ottens (Rebase PR Action) 0e5d9a5a6b Docs: Update macOS version info
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-10-05 07:18:35 +00:00
Michael SchusterandMichael Schuster (Rebase PR Action) bb30633d31 Fix source file access modes
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-10-02 16:56:29 +00:00
Michael SchusterandMichael Schuster (Rebase PR Action) 5979ae30e1 macOS: Fix memory leak in FolderWatcherPrivate::startWatching
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-10-02 16:56:29 +00:00
Michael SchusterandKevin Ottens (Rebase PR Action) ce71ffe9f9 Allow server URL to be pre-defined without enforcing it to be used unmodified
APPLICATION_SERVER_URL can be either empty or be specified. This commit adds the new CMake option APPLICATION_SERVER_URL_ENFORCE to decide whether to enforce the
URL's unmodified use (like before, default: ON) or to allow modification by the user (new).

By default APPLICATION_SERVER_URL_ENFORCE is set to ON, to no break with the previous implementation's expectations.

If APPLICATION_SERVER_URL is empty, APPLICATION_SERVER_URL_ENFORCE will be ignored by the Account Wizard.

The previous behaviour confused me a bit with branded builds. When the URL was (usually) specified but not forced, it was simply discarded, forcing the user to
manually supply it.

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-09-23 07:21:35 +00:00
Michael Schuster e024aa3f16 Windows: Win32 migration tools code review
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-09-21 16:40:19 +02:00
Michael Schuster a9014f9852 Windows MSI: Add MSI scripts and UI resources
Uses CMake to generate and install all required files in the "msi/" directory.

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-09-21 16:40:19 +02:00
Michael Schuster f321cd8ae6 Windows: Add Win32 stand-alone migration tool NCNavRemove
Removes all Explorer Navigation Pane entries for a given ApplicationName, specified in NavRemove.ini in the working directory.

Also compiles a DLL with the same behaviour that exports:
- RemoveNavigationPaneEntries

Both tool variants are Mutex-protected.

Statically linked, optimized for binary size, no Qt dependencies.

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-09-21 16:40:19 +02:00
Michael Schuster 68776fe319 Windows MSI: Add helper DLL and shared migration tools code
The helper DLL will be utilized by Windows Installer with Custom Actions defined in the NCMsiHelper.wxs WiX fragment.

Exports:
- ExecNsisUninstaller
- RemoveNavigationPaneEntries

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-09-21 16:40:19 +02:00
Michael Schuster fc365df5de Windows MSI: Let CMake install Shell Extensions WiX fragment to "msi/"
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-09-21 16:40:19 +02:00
Michael Schuster fad9b2c969 Windows MSI: Add Upgrade Code and migration tool build options to NEXTCLOUD.cmake
The Upgrade Code is a GUID (specified without brackets) for the MSI package to allow Windows Installer identify existing installations.

New build options (default: OFF):
- BUILD_WIN_MSI: Build all MSI scripts and a required helper DLL (to uninstall NSIS legacy installations and remove Explorer Navigation Pane entries)
- BUILD_WIN_TOOLS: Build additional migration tools (currently NCNavRemove, a stand-alone tool for Explorer entries removal)

The helper DLL and migration tools are set to be statically linked and optimized for binary size.

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-09-21 16:40:19 +02:00
Michael SchusterandKevin Ottens (Rebase PR Action) 0e1e3a29ce Windows: Remove unused and outdated NSIS Transifex settings
The last translation update from Transifex was done in 2017, so the scripts and settings were never used for Nextcloud.

This commit removes the unused scripts and "Auto-generated" comments in the translation files.

Some files have been modified over time either way and MSI will replace NSIS soon.

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-09-16 05:41:27 +00:00
Michael SchusterandKevin Ottens (Rebase PR Action) 7f5b7f637c Windows: Fix NSIS language encoding (use UTF-8 instead of Win code pages)
The old conversion to specific code pages caused display errors (see issue #2393 for Russian).

Based on bin/l10n.sh, the files in this commit were converted to UTF-8 using iconv with the following parameters:

  iconv -f CP1252 -t UTF-8 -o German.nsh German.nsh
  iconv -f CP1252 -t UTF-8 -o Galician.nsh Galician.nsh
  iconv -f CP1253 -t UTF-8 -o Greek.nsh Greek.nsh
  iconv -f CP1250 -t UTF-8 -o Slovenian.nsh Slovenian.nsh
  iconv -f CP1257 -t UTF-8 -o Estonian.nsh Estonian.nsh
  iconv -f CP1252 -t UTF-8 -o Italian.nsh Italian.nsh
  iconv -f CP1252 -t UTF-8 -o PortugueseBR.nsh PortugueseBR.nsh
  iconv -f CP1252 -t UTF-8 -o Spanish.nsh Spanish.nsh
  iconv -f CP1252 -t UTF-8 -o Dutch.nsh Dutch.nsh
  iconv -f CP1252 -t UTF-8 -o Finnish.nsh Finnish.nsh
  iconv -f CP932 -t UTF-8 -o Japanese.nsh Japanese.nsh
  iconv -f CP1250 -t UTF-8 -o Slovak.nsh Slovak.nsh
  iconv -f CP1254 -t UTF-8 -o Turkish.nsh Turkish.nsh
  iconv -f CP1252 -t UTF-8 -o Norwegian.nsh Norwegian.nsh
  iconv -f CP852  -t UTF-8 -o Czech.nsh Czech.nsh

The installer script nextcloud.nsi in the client-building repo needs the following line (to be added on top):
  Unicode true

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-09-16 05:41:27 +00:00
Michael Schuster 5945f18d5a Remove remaining QLinkedList includes in addition to #2300
Now the only remaining reference is in:

src/3rdparty/libcrashreporter-qt/3rdparty/drkonqi-parser/backtraceparser.cpp:269:        || line.functionName().startsWith(QLatin1String("QLinkedList")

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-08-27 03:12:09 +02:00
Michael Schuster bd519ffe7a Adapt code style in addition to #2300
- Use "!empty()" instead of "size() > 0" in std::list
- Add comments for namespace brackets

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-08-27 01:31:06 +02:00
Michael Schuster 4df8db4ff6 Fix spacing
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-08-20 18:50:05 +02:00
Michael Schuster db05f65e0d Windows shell extensions: Add WiX (MSI) fragment
Use CMake to generate a WXI fragment to handle the DLL registration and file deployment for the shellext components.

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-08-20 18:50:05 +02:00
Michael Schuster 11632da7ea Windows shell extensions: Change NCUtil Pipe name from ownCloud to APPLICATION_EXECUTABLE
Avoid interference with foreign pipes as this is always a bad idea ;p

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-08-20 18:50:05 +02:00
Michael Schuster 0ba5df597f Windows shell extensions: Rename all files and classes from OC* to NC*, update version info
This also ensures a clear separation in the system registry.

SelfReg is not recommended by Microsoft and will be handled by the MSI package to allow proper Repair and Uninstall.
However, we keep it for backward compatibility with the NSIS installer.

For details see:
https://stackoverflow.com/questions/364187/how-do-you-register-a-win32-com-dll-file-in-wix-3#364210
https://docs.microsoft.com/en-us/windows/win32/msi/selfreg-table#remarks

Another fix by this commit:
The "Version" registry value in the NCOverlays self reg should be a key and not a value.

Details: https://wixtoolset.org/documentation/manual/v3/xsd/wix/class.html

Example:

  [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Version]
  @="1.0.0.0"

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-08-20 18:50:05 +02:00
Michael Schuster 8ce13b7bdb Windows shell extensions: Use custom GUIDs via CMake and prepare MSI reg
Previously side by side installation with ownCloud or other NC custom builds would break the shell integration because the same GUIDs and registry keys were used.

Now we specify our custom GUIDs in NEXTCLOUD.cmake and use CMake to generate a header file and WiX (MSI) include file with these constants.

Note: Using generators like "guidgen" or "uuidgen" ensures that GUIDs are unique, as manual changes are not guaranteed to be.

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-08-20 18:50:05 +02:00
Michael SchusterandKevin Ottens e02be629bb Windows: Enable CFG and SafeSEH linker security flags
See:
https://docs.microsoft.com/en-us/windows/win32/secbp/control-flow-guard
https://docs.microsoft.com/en-us/cpp/build/reference/safeseh-image-has-safe-exception-handlers

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-08-03 10:11:33 +02:00
Michael SchusterandKevin Ottens bc5888e8e4 Always show Settings in the context menu (amends #2164)
The context menu should allow access to the Settings even when no accounts are configured.

Users may specify proxy / startup / update and other settings at any time.

This slipped through in #2164.

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-08-03 10:10:05 +02:00
Michael Schuster 6cc1aa723e Update CI for Qt 5.12.9
Also remove the jq package installation from the AppImage build script because
the package is included in the new Docker image (see nextcloud/docker-ci#231).

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-07-22 14:19:57 +02:00
Michael SchusterandKevin Ottens 815cd7f3fc Fix Windows installer graphics files for 2.7
For some reason the exported bitmaps in #2211 were not properly saved in the right
format for display by the NSIS installer system.

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-07-21 10:54:02 +02:00
Michael Schuster b801a74281 Drone Upload: Fix if condition for master, in addition to #2213
Don't try to comment on master (old condition was from a previous version of the script).

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-07-21 01:20:19 +02:00
Michael Schuster c3f5a9b9cc Drone: Upload AppImage to GitHub using nextcloud-desktop-bot
Uploading AppImage's to transfer.sh often fail and cause the CI to wait for
the 15 minutes timeout.

This new approach uses a bot user to create releases in a dedicated ci-builds
repository. Each PR (or master) will get a dedicated release with the AppImage
supplied as a release asset. Older assets will be deleted prior uploading the
recent build.

The bot will then (in case of a PR) create a comment in the PR, containing the
download link.

Home of the CI releases: https://github.com/nextcloud-desktop-bot/ci-builds/releases

Inspired by: https://github.com/nextcloud/android/blob/master/scripts/uploadArtifact.sh

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-07-20 17:11:33 +02:00
Michael SchusterandMichael Schuster (Rebase PR Action) b997f3e10a Update Windows installer graphics with 2.7 logo
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-07-18 12:29:47 +00:00
Michael SchusterandMichael Schuster (Rebase PR Action) 4cd77d96ae Update logo for 2.7
Based on: https://github.com/nextcloud/promo/blob/c876a02584705835adb91e2b932b5b63bce2c59b/nextcloud-icon.svg

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-07-18 12:29:47 +00:00
Michael Schuster f4d83d02f6 Cleanup auto pointers and qobject casts, refactor KeychainChunk
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-07-06 21:51:40 +02:00
Michael Schuster ff631e919f ProxyAuthHandler: Add template member function execAwait to avoid code duplication
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-07-06 21:51:40 +02:00
Michael Schuster 8503226c44 Keychain: Use auto deletion in WebFlowCredentials and ConfigFile
- Also make use of the new KeychainChunk::DeleteJob

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-07-06 21:51:40 +02:00
Michael Schuster 42eb3388f8 Refactor KeychainChunk to use QEventLoop and add DeleteJob class
- Use QEventLoop for synchronous exec()
- Rename startAwait() to exec()
- Add code for auto deletion
- Add new DeleteJob class
- Cleanup, tweaks

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-07-06 21:51:40 +02:00
Michael Schuster ea95c4bf49 Refactor ProxyAuthHandler to use QEventLoop
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-07-06 21:51:39 +02:00
Michael Schuster 81c644e702 ConfigFile security: Migrate Proxy password to keychain
When specified in the config file, the Proxy password will be migrated
to the keychain, for backward compatibility and to allow admins to
overwrite an existing password by rolling out updated config files.

Once migrated to the keychain, the password will be removed from the
config file.

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-07-06 21:51:39 +02:00
Michael Schuster 18cbbc5052 KeychainChunk: Add synchronous method startAwait()
Awaits completion with no need to connect some slot to the finished() signal first,
inspired by the ProxyAuthHandler class.

Also add:
- Job dtor to safely erase passwords
- textData() method
- New ctor overloads to work with arbitrary keys (without Account ptrs)

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-07-06 21:51:39 +02:00
Michael Schuster 2a3ef044be Move KeychainChunk class from gui to libsync
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-07-06 21:51:39 +02:00
Michael Schuster 203a2ce003 Move QKeychain::NoBackendAvailable error handling to KeychainChunk class
Originally this was in the WebFlowCredentials class. Since we've abstracted everything
from there already, let's also move this in case some other code may use
KeychainChunk::ReadJob prior to WebFlowCredentials.

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-07-06 21:51:36 +02:00
Michael SchusterandCamila d71249bb6e Fix crash in UserModel::currentUser() and add more sanity checks
Commit 07bede8 (PR #1892) introduced a new helper method currentUser()
that didn't check for _users.count() thus causing to throw an
"index out of range" exception when no accounts are configured.

This commit uses the opportunity to add more sanity checks to UserModel.

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-06-25 20:52:30 +02:00
Michael SchusterandKevin Ottens 902963fa10 Fix issue #2108: Default system proxy not working with Account Wizard
Discovered on Windows in conjunction with PAC scripts:
- Already configured accounts worked
- Fresh client account setup did not work

Reason:
- Proxy was reset over and over again in Account::setCredentials

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-06-22 11:59:13 +02:00
Michael Schuster 92c8d6836b Fix libsync exports for proxy changes in #1886
Build failed on Windows, missing libsync export for printQNetworkProxy after
moving ClientProxy class from gui to libsync.

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-06-18 21:05:11 +02:00
Michael Schuster 0253e98041 Improve proxy logging: Log type string instead of abstract ID
The format in the client log was: 3://host:port
Now it is shown like:             HttpProxy://host:port

The old ID display was confusing and misleading users (and people debugging it ;p)

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-06-18 20:13:57 +02:00
Michael SchusterandKevin Ottens (Rebase PR Action) 44a9200c5d Fix crash caused by setting Tray window screen pointer on the QML side
Seems like Qt sometimes doesn't like the QML window's screen property to be set
to a C++ (QVariant) pointer value, so we use the index: Qt.application.screens[]

See Qt docs: https://doc.qt.io/qt-5/qml-qtquick-window-window.html#screen-prop

This fix returns the matching window's index from the QGuiApplication::screens()
list to the QML side, instead of the window pointer.

Steps to reproduce the crash with the previous code:
- Open the Tray menu and close it a few times,
  or scroll randomly up and down in its activity list.

Tested with Qt 5.12.5

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-06-15 12:32:25 +00:00
Michael SchusterandKevin Ottens (Rebase PR Action) 5055f526c2 Remove Submodule qtmacgoodies again
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-06-15 12:32:25 +00:00
Michael Schuster 456c1eadbe Simplify nullptr comparisons where appropriate
Make the codebase consistent, we already have a lot of implicit pointer comparisons.

Exception: Stay explicit on return's, example:
  return _db != nullptr;

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-06-11 00:27:30 +02:00
Michael SchusterandKevin Ottens 2b680cadd3 Fix nullptr regression in RegistryUtil::ReadRegistry
Merging PR #2057 caused the Windows build to fail:

shell_integration\windows\OCUtil\RegistryUtil.cpp(43): error C2664: 'LSTATUS RegOpenKeyExW(HKEY,LPCWSTR,DWORD,REGSAM,PHKEY)': cannot convert argument 3 from 'nullptr' to 'DWORD'

The previous implementation prior the PR supplied NULL as the argument 3 to RegOpenKeyEx,
so it was silently accepted and translated to zero, satisfying the DWORD's type requirement.

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-06-09 18:34:43 +02:00
Michael Schuster 565fa18db2 macOS: Opt In to Dark Mode for building against older macOS SDKs < 10.14
Required for our build server that uses an older SDK to support previous macOS versions.

See: https://developer.apple.com/documentation/appkit/nsappearancecustomization/choosing_a_specific_appearance_for_your_macos_app

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-06-07 16:21:02 +02:00
Michael Schuster e6389959ce macOS: Build nextcloudcmd after gui and run macdeployqt with the -executable option
- src/CMakeLists.txt: Switch build order to build cmd before gui
- src/gui/CMakeLists.txt: Use the -executable option for a combined run of macdeployqt

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-06-07 14:39:42 +02:00
Michael Schuster acb56be528 macOS: Use macdeployqt instead of the old admin/osx/macdeployqt.py
In order to build the new 2.7 releases (new QML dependencies) without manually
modifying the old Python script each time, rely on Qt's standard tool instead.

This should streamline the build systems for upcoming dependency changes.

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-06-07 14:39:42 +02:00
Michael Schuster 221e5c5fc4 Improve command line version info and help display to streamline gui and cmd
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-06-07 14:20:33 +02:00
Michael Schuster 0fe7a65738 Fix Qt 5.15.0 build error (missing include)
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-06-07 02:43:45 +02:00
Michael Schuster a57903259b Remove Submodule binary (old upstream binaries)
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-05-31 15:47:36 +02:00
Michael Schuster 6ec69a700d ShareDialog: Pointer cosmetics
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-05-29 20:57:52 +02:00
Michael Schuster ba4d109315 ShareDialog: Add further checks for the _manager member ptr
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-05-29 18:29:47 +02:00
Michael Schuster efdef8535f ShareDialog: Fix crash, properly init member pointers
_manager ptr only got initialized in the constructor when sharingPossible was set to true

Changes:
- Move member ptr inits from constructor to the header file's class definition
- Init _manager: set to nullptr too
- Add check for _manager to avoid crash in showSharingUi()

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-05-29 18:12:36 +02:00
Michael Schuster 7804b8e006 Fix spacing
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-05-20 03:57:33 +02:00
Michael Schuster 7fd431b50f Use the default parameter: QUrl::path(QUrl::PrettyDecoded = 0x000000)
Change it to path() to be consistent with the other usages in the project :)

See: https://doc.qt.io/qt-5/qurl.html#path

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-05-20 02:30:45 +02:00
Michael Schuster 244c8fa995 Drone: Remove CI builds for Qt 5.7 and 5.8
Housekeeping and the new 2.7 Tray builds need at least Qt 5.9

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-05-07 01:17:36 +02:00
Michael Schuster 6fc877577c [dolphin] Use CMake env vars for App Name and Icon strings
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-04-16 03:47:24 +02:00
Michael Schuster 102369bfbe WebView: Add missing Q_OBJECT macros
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-03-11 01:18:11 +01:00
Michael Schuster 5f42813d98 Updater: Fix Tests build (failed with BUILD_UPDATER=NO)
Also don't build the test for the updater, fix missing updater library.

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-03-10 22:10:45 +01:00
Michael Schuster e833e86da6 Updater: Add CMake option BUILD_UPDATER to make the updater optional
- Default: BUILD_UPDATER = NO

  To ease builds for distro packages and contributors (regardless of the specified update URL)

- Enable updater build for Drone CI and AppImage builds

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-03-09 02:34:55 +01:00
Michael Schuster c812d896aa Fix OCUpdater: Also change status on network error or invalid XML
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-03-09 02:34:55 +01:00
Michael Schuster c043a4e55c Updater UI: Implement auto-update option and update button
- Add checkbox and button to UI
- Add new parameter autoUpdateCheck to ConfigFile

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-03-09 02:34:55 +01:00
Michael Schuster 555b41f300 Fix Legal notice dialog: Correct title and header font
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-03-09 00:41:59 +01:00
Michael Schuster d8c407ac97 Settings dialog: Move detailed version info from About section to Legal notice dialog
- Enlarge dialog widget to show full content
- Implement Dark-/Light-Mode switching (hyperlinks)

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-03-07 06:45:41 +01:00
Michael Schuster 2adde0fcca Settings dialog About section: Show minimal version info
- Application name, version number, OS

  Example: Nextcloud Desktop Client
           Version 2.6.4 (macOS)

- Keep previous version info in new method Theme::aboutDetails()

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-03-07 06:38:09 +01:00
Michael Schuster a471868d88 Version parameter: Show Qt platform plugin, OS and CPU arch
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-03-07 06:31:14 +01:00
Michael Schuster 6685722cb3 Add missing --version parameter to help screen
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-03-07 06:20:00 +01:00
Michael Schuster ff642085b4 Fix Explorer pinning: Add fallbacks for Shell commands (fixes #1599)
See: #1599

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-03-03 18:45:58 +01:00
Michael Schuster ab1099f13e WebFlowCredentials: Make username comparison case-insensitive (fix #1741)
Fixes issue #1741

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-03-03 06:01:27 +01:00
Michael Schuster aab735a595 Fix MSVC warnings: Missing return value, cast type
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-03-03 02:08:37 +01:00
f90f31756a Fix build with older Qt: Disable http2 for now due to Qt bug, add env var (upstream)
Disable http2 for now due to Qt bug but allow enabling it via env var, see: https://github.com/owncloud/client/pull/7620
  and: https://github.com/nextcloud/desktop/pull/1806
Issue: https://github.com/nextcloud/desktop/issues/1503

Co-authored-by: XNG <Milokita@users.noreply.github.com>
Co-authored-by: Hannah von Reth <hannah.vonreth@owncloud.com>

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-03-02 01:47:00 +01:00
Michael Schuster b846e25ddb further resource cleanup: remove theme/settings@2x.png
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-03-01 06:51:00 +01:00
Michael Schuster 712fef0cac Merge branch 'master' into qml-singleton-style and fix merge conflict
Migrate changes in client.qrc to resources.qrc

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-03-01 06:47:46 +01:00
Michael Schuster 5b2877a63e Merge branch 'master' into resource-cleanup
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-03-01 05:34:12 +01:00
Michael Schuster 29e02d0579 owncloudsetuppage.cpp: adapt to string change from master: url -> URL
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-03-01 05:32:59 +01:00
Michael Schuster a92a764c2a owncloudsetuppage.cpp: also rename client/theme/lock-http(s) PNGs to SVG
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-03-01 05:12:59 +01:00
Michael Schuster 40767f7ae0 Fix Explorer integration: Hide option on non-Windows
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-03-01 04:03:29 +01:00
Michael Schuster f1dd312b2e Fix Explorer integration re-save (fixes issue #1807)
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-03-01 03:39:24 +01:00
Michael Schuster 9c8a0204e5 Updater: Add query-parameter 'updatesegment' to the update check
Used to throttle down desktop release rollout in order to keep the update servers alive at peak times.

See: https://github.com/nextcloud/client_updater_server/pull/36

Targeted issues: #1795, #1800

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-02-21 21:28:42 +01:00
Michael Schuster 3e255df533 Fix Tests linkage (missed UserInfo.cpp in CMakeLists.txt)
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-02-14 03:12:37 +01:00
Michael Schuster 640655ea10 Code cleanup
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-02-14 03:00:20 +01:00
Michael Schuster abfebcf291 Add UserInfo class and fetch quota via API instead of PropfindJob
The PropfindJob quota includes the size of shares and thus leads to confusion
in regard of the real space available, as shown in the UI.
This commit aims to streamline the behaviour with the Android and iOS apps,
which also utilize the API.

Details:
- Refactor the QuotaInfo class into UserInfo
- Use JsonApiJob (ocs/v1.php/cloud/user) instead of PropfindJob
- Let ConnectionValidator use the new UserInfo class to fetch
  the user and the avatar image (to avoid code duplication)
- Allow updating the avatar image upon AccountSettings visibility,
  using UserInfo's quota fetching

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-02-14 02:10:01 +01:00
Michael Schuster 03cddabfd0 Tray menu: Only show time ago (view too noisy)
Don't show date and time for now, rather as a tool tip later.

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-01-19 19:12:34 +01:00
Michael Schuster c2f5f156f0 Bump version year to 2020
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-01-18 17:11:44 +01:00
Michael Schuster 7136d92011 Linux AppImage build script: Add QML dir for new 2.7 Tray menu
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-01-18 16:31:48 +01:00
Michael Schuster a35aa58943 Linux AppImage build script: Use QtKeyChain master
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-01-18 16:31:22 +01:00
Michael Schuster c0863ede02 Share context menu: Use directEditing capability in SocketApi
- Allow direct editing "Edit" when an editor is available for the mime type
- Show "Open in browser" if editing is unavailable (as previously)
  (now on top of the menu list)
- Rename the menu title to the app name, "Nextcloud" instead of "Share via ..."

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-01-18 15:12:16 +01:00
Michael Schuster 45b39cdbc1 Add support for the directEditing capability
- Fetch in ConnectionValidator::slotCapabilitiesRecieved
- Add editors to a list made of the new DirectEditor class

TODO:
- Add support for re-fetch and continously check for changes (ETag)

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-01-18 15:07:51 +01:00
Michael Schuster 9447a10716 JsonApiJob: Add method usePOST to allow anonymous POST requests
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-01-18 15:03:21 +01:00
Michael Schuster 016a90d7b0 More code maintenance
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-01-18 12:56:26 +01:00
Michael Schuster de74057cc8 Add grey hint Activity entry if limit is reached
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-01-17 20:26:48 +01:00
Michael Schuster e2188b109a Limit fetching Activities to 100 or max. 30 days old
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-01-17 20:25:41 +01:00