Commit Graph

234 Commits

Author SHA1 Message Date
Roland Rossgotterer
a7509669f9 Refactor crashpad initialization
Crashpad handler was initialized quite late since we were waiting for settings. However the settings in crashpad are persistent itself, hence we can start it at the earliest possible time and change the upload settings independently later. The only prerequisite is to have QCoreApplication constructed in order for the application name to be available.
ref T652
2019-05-13 11:21:05 +02:00
Klaus Basan
0d0e093330 Download related:
* Info which URL failed
* log redirects
* disabled CNetworkUtils::setSwiftClientSslCertificate(copiedReques
2019-04-11 22:12:05 +01:00
Roland Rossgotterer
04787bbf39 Fix MinGW build failure 2019-04-11 22:11:49 +01:00
Klaus Basan
94513951e1 Added backtrace attributes for Qt version and platform 2019-04-11 22:11:38 +01:00
Klaus Basan
f080f0bb86 Cmd.line arg --skipsa to skip "single application check". Allows to run multiple clients on one machine. 2019-04-11 22:11:37 +01:00
Klaus Basan
60b3c16120 Ref T401, crash simulation improvements
* sub-directory paths in directory utils
* no UI simulated crash in release builds
* no upload rate in local developer builds
2019-04-11 22:11:31 +01:00
Mat Sutcliffe
e9a4c49d68 Ref T547 Update license masthead in all source code files. 2019-02-22 20:36:43 +00:00
Klaus Basan
16dd6d7451 Ref T401, crash handling in application
* function to simulate crash
* init crash info so file is written + add arguments for handler
* enable / disable uploads
2019-02-22 20:36:31 +00:00
Roland Rossgotterer
50e82c26c6 Add current log file as file attachment to crash dump
ref T401
2019-02-22 20:36:24 +00:00
Klaus Basan
ddd44edebd Ref T528, test if simulator interface can be used (only possible in local UI, not in remote UI) 2019-02-22 20:36:08 +00:00
Klaus Basan
1b7f1b1662 Minor reader formatting/comments 2019-02-22 20:36:07 +00:00
Mat Sutcliffe
077fd8c35a Ref T525 Avoid directly calling getLogCategories. 2019-02-22 20:35:52 +00:00
Mat Sutcliffe
fe7a45afcf Ref T516 Update CStatusMessage call sites to use new syntax. 2019-02-22 20:35:51 +00:00
Klaus Basan
8c3faa4ca9 Ref T489, support download progress in our readers
* signal for download progress per entity (DB reader)
* ProgressSlot
* changed signatures for ProgressSlot
2019-02-22 20:35:00 +00:00
Klaus Basan
5c785643c7 Ref T484, string improvements 2019-02-22 20:35:00 +00:00
Mat Sutcliffe
225ff81252 Ref T485 Adjust CLogMessage and CStatusMessage call sites to use the new API. 2019-02-22 20:34:55 +00:00
Mat Sutcliffe
d6b5dca6b2 Return a default-constructed QString instead of implicitly converting an empty string literal. 2019-02-22 20:23:49 +00:00
Mat Sutcliffe
6c05c5249d When calling arg() on a QString constructed from a literal, use QStringLiteral. 2019-02-22 20:23:47 +00:00
Klaus Basan
a09d7191f3 Ref T456, user statistics monitored at backend
* values for simulator/network
* changed concept a bit so crash handler values are used for statistics as well
2018-12-16 00:22:33 +01:00
Roland Rossgotterer
686f8a478e Update crashpad
crashpad is now also supported on Linux. Therefore build it everywhere except under Windows MinGW.
2018-12-16 00:22:00 +01:00
Roland Rossgotterer
08558a0803 Change crashreport url to to backtrace.io
From now on, all crashreports will be submitted to backtrace.io url. Backtrace.io also requires a different set of annotations.
2018-12-11 17:42:49 +01:00
Klaus Basan
42af510342 Check for minimum mapping version
* check functions in gui application/application
* check for instance mapping wizard
* check on mapping tool's stashing component
2018-12-05 04:03:59 +01:00
Klaus Basan
3c20590293 Allow a forced update of the setup reader
When the network is down it can happen the bootstrap file request is not yet timed out but we use our own time out.
In that case we check the cached data upfront by faking a failed web read.
2018-12-05 04:03:43 +01:00
Mat Sutcliffe
df563d5b29 Fixes needed to compile swift with MSVC with the /permissive- switch
which enables more C++ standard conformance.
2018-11-16 02:49:55 +01:00
Klaus Basan
dfd33e40c1 Detect emulated driver before casting to avoid crashs 2018-11-16 02:49:51 +01:00
Klaus Basan
17382a0019 Ref T401, update functions for crashpad info in CApplication 2018-11-04 17:43:06 +01:00
Klaus Basan
d7380966de Style 2018-11-04 17:42:44 +01:00
Klaus Basan
4a82621a1d Ref T400, swift needs to start even without network connection, especially for mapping tool
* count errors and call "manageSetupAvailability" to update cache availability
* minor adjustments
2018-11-04 17:42:43 +01:00
Roland Winklmeier
f6ea2a9107 Move CInputManager from singleton to CApplication member
The main reason why CInputManager was singleton is the easy access across
the code. That had the negative side effect that time of destruction was
at a very late stage of the shutdown and could not be controlled by us.
My moving it to CApplication, the access is equally easy (using sApp) and
allows to be cleaned up properly during graceful shutdown.

ref T391
2018-11-04 17:42:42 +01:00
Klaus Basan
705a56b1cb Ref T401, adjusted settings used in components 2018-11-04 17:42:42 +01:00
Klaus Basan
fe99eb261b Ref T367, Ref T400 signal and read handling
* connect this->setupHandlingCompleted directly with reader + renaming
* do not waitForSetup if request already failed
2018-11-04 17:42:41 +01:00
Roland Winklmeier
832082c5bc Delay creating input devices to when required
Every first call to CInputManager::instance() was automatically creating
the low level input devices. This was not always desired and therefore
creation is now explicit via function.
Unit tests do not need the devices created. In contrast, Windows unit tests
failed since Windows didn't like the Jenkins service childs to allocate
DInput devices.

T391
2018-10-07 16:17:28 +02:00
Roland Winklmeier
c42900f959 Release input devices when application is shutdown
If they are released with the deallocation of CInputManager, we might
run into global deallocation hell.
Also on Windows release all DirectX devices before COM library is closed.

ref T391
2018-10-07 16:17:26 +02:00
Mat Sutcliffe
f42d42487d Ref T314 Change CApplication::m_networkWatchDog from a smart pointer to a raw pointer.
Attempting to manage a worker's lifetime with a smart pointer is a mistake.
It can lead to double-delete or premature-delete bugs, and race conditions.
Workers self-manage their own lifetimes.
2018-10-05 17:39:56 +02:00
Klaus Basan
4406174668 Ref T341, crash prevention as seen in https://crashreports.swift-project.org/crashreports/81 2018-09-09 02:53:36 +02:00
Klaus Basan
09ab653cf9 Reduced number of (unnecessary) network status messages 2018-09-08 15:36:21 +02:00
Klaus Basan
5096df034b Ref T314, thread CContinuousWorker::finish
- use application thread if there is no owner
- use QPointer for owner
- more detailled error message
2018-08-31 20:08:06 +02:00
Klaus Basan
755455e8a4 Style, in CGuiApplication sGui can be used as guard (no QPointer needed) 2018-08-16 14:33:54 +02:00
Klaus Basan
0327776edd Ref T295, based on bug report of RP (no WIFI detected) creating a network report
* network report when starting swift
* also ignore inactive configs when checking for "the bearer bug"

references:
https://stackoverflow.com/questions/51824242/disable-qt-bearer-management-at-runtime
https://swift-project.slack.com/archives/G7GD2UP9C/p1534181224000115
https://swift-project.slack.com/archives/G96QTUBEG/p1534162173000320
2018-08-16 14:33:52 +02:00
Klaus Basan
c0ca56ee93 Ref T295, fix for the "no network config" issue
* details: https://stackoverflow.com/questions/51686943/no-qnetworkconfiguration-although-i-can-connect-to-wifi
* network accessibility check can be disabled if network config looks suspicious
* using QNetworkConfigurationManager
2018-08-09 01:25:18 +02:00
Klaus Basan
c282d4e1f8 Ref T295, network watchdog optimizations
* constructor can pass network accessibility as default
* ping URL now constructed in global setup
* watchdog will prevent unnecessary signals by checking if state has really changed (there are redundant QAM signals for QNetworkAccessManager::networkAccessibleChanged)
* refactorings, thread checks
2018-07-31 01:43:32 +02:00
Klaus Basan
5966a1ead4 Display platform in title bar (easier to identify screenshot) 2018-07-27 23:33:14 +02:00
Klaus Basan
a6ee6d4b72 Ref T292, Ref T285 minor style improvements, renamings 2018-07-26 04:32:38 +02:00
Klaus Basan
6f8d980d2c Exclude some more cmd line args. from being passed from launcher 2018-06-13 13:59:47 +02:00
Klaus Basan
87b96f8910 Cleanup: toFormattedQString was not really used and just redirecting toQString
* marked deprecated
* and replaced by toQString
2018-06-13 13:59:35 +02:00
Roland Winklmeier
4aaccb44c3 Cleanup the enabled modules in all sub projects
Most modules were just enabled to add include path for dependent headers
2018-06-02 02:08:46 +02:00
Klaus Basan
c7f77c6892 Load settings before contexts are loaded, see https://swift-project.slack.com/archives/G7GD2UP9C/p1527537764000022
* load local settings before core facade is created
* or load it in the next step, in case there are no contexts
2018-06-01 01:30:50 +02:00
Klaus Basan
f7a0c69fc8 Ref T270, push front for sequence and unified "insert" -> "push_back"
Remark: "CSequence::insert" is a synonym "push_back". This makes it clearer that push_back is used.
2018-06-01 01:30:33 +02:00
Klaus Basan
4eeaf1adc4 Smaller adjustments of unit test and application 2018-06-01 01:30:26 +02:00
Klaus Basan
fc35e8b654 Formatting, style 2018-05-22 13:23:47 +02:00