Commit Graph

188 Commits

Author SHA1 Message Date
hjk
152b14207c Replace QtcProcess::stopProcess() by stop() plus waitForFinished
... or nothing, if the process object is destroyed immediately.

Change-Id: I6a1e1928bc49fc20a1c0e0ee9b8f4f723276bbca
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2022-06-16 08:26:10 +00:00
Artem Sokolovskii
646254f460 VCSbase: Remove foreach / Q_FOREACH usage
Task-number: QTCREATORBUG-27464
Change-Id: I1088047513e7660907182e80303607d8c48919f5
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-05-23 08:49:43 +00:00
hjk
7c28c4f744 Utils: Introduce a FilePath constructor from char arrays
Similar to QT_RESTRICTED_CAST_FROM_ASCII to avoid the need for
decorations in user code.

At the same time, drop some convenience constructors and functions
in CommandLine and Icon essentially serving the same purpose.

Change-Id: Ida4e5ac19c2da0a4298a97b2a8e1511d56bbb79d
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-08-17 05:34:10 +00:00
Jarek Kobus
d22505c41f Use refactored ProcessMode
This patch needs to be applied together with the parent change.

There are 3 basic cases:
1. The user doesn't write anything to the write channel:
   You don't need to call closeWriteChannel manually anymore.
   By default the QtcProcess you create is in ProcessMode::Reader mode.
   Internally it opens the process in ReadOnly mode and
   closes the write channel just after starting.
2. The user writes some initial data (after being started)
   and then closes the write channel:
   All what is needed now it to set the write data
   (QtcProcess::setWriteData) before calling start.
   You also use the default ProcessMode::Reader mode.
   Internally it opens the process in ReadWrite mode
   and writes the writeData asynchonously when the process
   already started. After writing the data it closes the
   write channel automatically.
3. The user writes the data also after calling start.
   All you need now is to create a process with
   ProcessMode::Writer mode. In this mode the write
   channel is not closed.
   Internally it opens the process in ReadWrite mode
   as some writers also read the data from the process.

All the code base is adapted here to the above rules.

Change-Id: Id103019d1d71a3012fd1eade226fe96b9aaa48c2
Reviewed-by: hjk <hjk@qt.io>
2021-08-09 07:51:31 +00:00
hjk
ff57cb548d Vcs: Use more FilePath for file paths
Change-Id: I855cde65d034a9647972a7fddf1e8266d7ccfa88
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2021-08-02 14:40:33 +00:00
David Schulz
a13aef759e Utils: filepathify fileutils
Change-Id: Ic9048369f64d793f5f567cdb0c715488fb5a4ff6
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2021-05-18 14:30:53 +00:00
hjk
8b4cd1e0aa VcsBase: Use QtcProcess in VcsBaseSubmitEditor
Replaces uses of SynchronousProcess helper functions.

Change-Id: I015306a7265248253bc37b297600adf746be9f5d
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2021-05-05 12:27:23 +00:00
hjk
8e507c215b VCS: Aspectify common settings page
Change-Id: Ib860e40ba476b428c92766312bced2950d0390ac
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2021-03-24 11:58:58 +00:00
hjk
78b4449692 CVS: Aspectify settings
Change-Id: Ib5170405b33b3e521470407065e85c95dad6163b
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2021-03-19 14:00:00 +00:00
Eike Ziller
5b364de168 Use dialogParent() instead of mainWindow()
There are very few reasons to use mainWindow() directly.
Especially for modal dialogs, using dialogParent() is important, since
that guarantees the stacking order in case of other dialogs currently
being open.

Change-Id: I7ad2c23c5034b43195eb35cfe405932a7ea003e6
Reviewed-by: hjk <hjk@qt.io>
2020-06-02 11:44:53 +00:00
Orgad Shaneh
3cdbd8683d VCS: Fix connect failure
QObject::connect(Git::Internal::GitSubmitEditorWidget, Git::Internal::GitSubmitEditor): invalid null parameter

Change-Id: Iaf9a46d9922c7d4e124b94146d85bc5374a2195c
Reviewed-by: hjk <hjk@qt.io>
2020-02-20 10:11:52 +00:00
hjk
7f37c503db Vcs: Move responsibility to set editor parameters to editor factory
So it doesn't need to be named twice in the editor factory setup.

This intentially includes a de-optimiztion: storing the parameters
by value, not by pointer. That's more natural, does not need to
keep the parameters alive on the caller side, and it's uncritical
in this context.

Change-Id: I92867d3f2f75c38911ae82d3eeb4759cba71b723
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2020-02-06 07:03:44 +00:00
hjk
b8fe25db25 Vcs: Merge IVersionControl and VcsBasePlugin hierarchies
They were 1:1 in parallel, with quite a bit of function call
ping-pong inbetween, for code-sharing-by-inheritance. Merge
them by making VcsBasePlugin inherit IVersionControl and
merge the derived classes below.

Size of this patch is hard to avoid as all seven systems have to
move simultaneously. Non-necessary potential follow-up cleanup
have been left out on purpose.

Change-Id: Icb71e4182af3db21069cc637e7ae87ffa3829791
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2020-01-31 12:36:23 +00:00
hjk
1cd936c531 Vcs: Pimpl plugins
Essentially rename all *Plugin into *PluginPrivate, and pull out
the actual IPlugin related pieces into new *Plugin classes.

Shift the construction of the PluginPrivate to initialize(),
following the general pattern.

I tried to keep the patch as mechanical as possible, giving
room to some obvious but less mechanical cleanup needs,
that are intentionally left out of this here.

Change-Id: Iac662bf73338f9f7669064ed67b960246875c23c
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2020-01-24 09:47:28 +00:00
Sona Kurazyan
82bcf4e9f5 Remove usages of deprecated APIs
Replaced:
  QPalette::ColorRole::Background -> QPalette::ColorRole::Window
  QPalette::ColorRole::Foreground -> QPalette::ColorRole::WindowText
  Qt::ItemDataRole::TextColorRole -> Qt::ItemDataRole::ForegroundRole
  QFontMetrics::width() -> QFontMetrics::horizontalAdvance()

Task-number: QTBUG-76491
Change-Id: I1302e6b569e725daa6f7be1428ffe055657fc644
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-09-03 09:15:30 +00:00
Eike Ziller
857b299356 VcsBase: Make dependency on CppTools optional
The VcsBaseSubmitEditor uses CppModelManager to collect the symbol names
from the affected files for completion in the commit message.

Move the C++ code model code into CppModelManager, register it in the
plugin manager, and call it via QObject means from the submit editor.

This avoids a hard dependency from VcsBase to CppTools.

Change-Id: I2fb34dbef153c1414820d711e7fc5596bcac1691
Reviewed-by: hjk <hjk@qt.io>
2019-08-15 06:27:29 +00:00
hjk
6a58666f44 More Utils::toSet/toList
... and unrelated cosmetic changes.

Change-Id: I591b17fd5289831e701b683f8fb47816efd1fa67
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-07-04 12:28:38 +00:00
hjk
473a741c9f Utils: Rename FileName to FilePath
More in line with QFileInfo terminonlogy which appears to be
best-of-breed within Qt.

Change-Id: I1d051ff1c8363ebd4ee56376451df45216c4c9ab
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-05-28 12:23:26 +00:00
Eike Ziller
d7929eaf59 Fix usage of deprecated API QMessageBox::standardIcon
Instead use the style to get the icon and get the pixmap from there.
Emulates what QMessageBox::setIcon(QMessageBox::Icon) does.

Change-Id: Ic20d55070d510773eb194dc695689954b4862a2f
Reviewed-by: David Schulz <david.schulz@qt.io>
2019-03-28 07:40:36 +00:00
Robert Loehning
cb6fb2cf91 VCS: Improve misleading comment
Change-Id: I7d3b03219014fda3ad9bcef97ee607a05484e6bb
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2019-03-02 17:43:19 +00:00
Orgad Shaneh
620086109a VCS: Make "Keep Editing" the default only when closing the editor
If the prompt is displayed on button press, the default is Commit.

Task-number: QTCREATORBUG-18799
Change-Id: I706a2700e08bb45f44019a0fe8d44365438ee9f3
Reviewed-by: André Hartmann <aha_1980@gmx.de>
2019-01-21 14:00:49 +00:00
Orgad Shaneh
06da56335a VCS: Add mnemonic for Close when closing submit editor on Windows
The default style on Windows doesn't have mnemonics.

Task-number: QTCREATORBUG-18799
Change-Id: I785ff327a4099cd56cdc081ebdaa14734d9a82a3
Reviewed-by: André Hartmann <aha_1980@gmx.de>
2019-01-21 14:00:24 +00:00
Orgad Shaneh
650153b8cf VCS: Purge unused VcsProjectCache
Its only use was removed in 28e8960a1e
(version 4.3.1).

Change-Id: Ibc20bfb0dc57e3ba427cd08b527959b7b1a26646
Reviewed-by: André Hartmann <aha_1980@gmx.de>
2019-01-21 06:53:31 +00:00
Alessandro Portale
5f5e82b0b6 Fix warning: "Don't call QList::front() on temporary"
..using constFirst, instead.

[-Wclazy-detaching-temporary]

Change-Id: I66bd9c19d56dc5dcc7ee0a1f68f4bfd2a3af7326
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2019-01-17 10:04:42 +00:00
Orgad Shaneh
15b176e30c VCS: Improve dialog on submit prompt
The dialog appears when closing the commit dialog without committing,
or when "prompt to submit" setting is enabled.

Fixes: QTCREATORBUG-18799
Change-Id: I8eb20becbcee7281b9f673a35ec698c6f8e04a40
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Robert Loehning <robert.loehning@qt.io>
Reviewed-by: André Hartmann <aha_1980@gmx.de>
2018-11-12 18:35:44 +00:00
Orgad Shaneh
96529a27c5 VCS: Add reason text when submit validation fails
Change-Id: If4c8d5d1d5dc5386e49b29be59786dc53cfaaaa3
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2018-11-10 16:05:05 +00:00
Orgad Shaneh
1486359251 Core: Change IEditor::document() to const
All the implementations are const.

Change-Id: Ib9753fe764dd482d4f4392eec70878d42edc737a
Reviewed-by: hjk <hjk@qt.io>
2018-09-26 06:20:51 +00:00
Orgad Shaneh
8f65486dfc VCSBase: Modernize
override, auto, nullptr, member initializers.

Change-Id: Ie21b8f4a4d6673947d82619bc3de677fcea63d7f
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2018-09-20 07:02:17 +00:00
Orgad Shaneh
f1f506b479 VCS: Remove unused unregisterActions functions
Change-Id: I4c7a0dfc93f27f93cdbd84d7e027e63db05341e8
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2018-08-28 07:26:02 +00:00
Alessandro Portale
9a7e1cd6c6 VcsBase: Modernize the icons
Use themable, HighDPI enabled icons for commit and diff.
Re-use an existing red cross for the removesubmitfield.

Change-Id: I43f46db96d07de9a7e166937d470d48e45d7f3fb
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2017-10-09 13:20:20 +00:00
Orgad Shaneh
6c70f22ada VCS: Preserve selections in commit editor on refresh
Task-number: QTCREATORBUG-18483
Change-Id: I749f2d4d583f197e7b5b6f69116c3a196e85484b
Reviewed-by: André Hartmann <aha_1980@gmx.de>
2017-07-01 19:25:35 +00:00
Orgad Shaneh
28e8960a1e VCS: Filter out untracked files only if they don't appear in any project
Change-Id: I9a87f082467f4688c1ebe5dd5e832c9e5a684ca1
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2017-06-14 15:01:12 +00:00
Tobias Hunger
c6f90e575e Utils: Introduce a TemporaryDirectory and TemporaryFile class
Both wrap the corresponding Qt class, but make sure all temporary files
or directories are created inside a "master temporary directory".

Change-Id: I55461be507c828c965224c02863ea5ed9bbf9498
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-01-20 12:17:10 +00:00
Ulf Hermann
161bb4e463 VCS: Properly support contents() on commit descriptions
Change-Id: Ia10a646b49d442c5c8027c744ded003189645283
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2016-01-22 09:51:48 +00:00
Tobias Hunger
397e7f4843 Update License according to agreement with Free Qt Foundation
* Update files in src/plugins

Change-Id: Ia5d77fad7d19d4bb3498e78661982f68729adb22
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-01-19 15:57:01 +00:00
Ulf Hermann
42d570a3fe Rename Project::ExcludeGeneratedFiles
We want to distinguish between source files and generated files. So
let's call them by their names.

Change-Id: I324c4b82ca7fb7d8d0e175ea6c4f14f1306ec929
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-01-13 14:12:08 +00:00
Orgad Shaneh
af1127f757 VCS: Do not delete SubmitFileModel before setting the new one
setFileModel() calls QTreeView::clearSelection() before setting the new model.
If the view has no model (because it was deleted earlier), a warning is shown.

Change-Id: Id694b073360b08bd8fd4e8b1db04250a71f792c1
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-01-07 10:24:57 +00:00
Eike Ziller
4f927e4c87 Move "open" from IEditor to IDocument
For non-editor documents it currently is not used, but for editors it
makes more sense to have that on the document instead of the editor.
Most actual implementations of "open" were done in the documents already
anyhow, because it is needed for reloading.

Change-Id: I29d4df2078995cbe80172b51a9bebeecb3afad3c
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
2015-06-10 11:21:17 +00:00
Orgad Shaneh
a79df8e1e7 Utils: Make SynchronousProcess use second based timeouts
Change-Id: Ie2de2359225017cae7181bee0df17542fa36efd8
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2015-04-15 12:42:46 +00:00
Hugues Delorme
20a0b97e82 Vcs: fix missing icons in SubmitFileModel
In SubmitFileModel, filetype icons are missing for not "overlaid" icons in
Core::FileIconProvider. This is fixed by ensuring valid file paths are passed
to QFileInfo. VcsBase::SubmitFileModel has now a "repositoryRoot" property
so it can constructs absolute file paths.

VcsBaseSubmitEditor::setFileModel() now relies on SubmitFileModel::repositoryRoot()
instead of passing this info as annex parameter.

Change-Id: Ie045c3a7b247a5b5d48d10aaaf67cb3fdcf9fa7e
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2015-03-11 13:45:16 +00:00
Hugues Delorme
f7bdbc66e0 Vcs: rename overload SubmitEditor::diffSelectedFiles() for rows
-> Renamed to diffSelectedRows()

This allows to use easily Qt5 connects, without ugly casting to
pick the right overload

Change-Id: Ifaa0242febccb4e1aadd53470cc4b3be79b07c18
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
(cherry picked from commit 12fac12e8f)
2015-03-06 08:02:35 +00:00
Orgad Shaneh
aee35662a2 Prefix duplicate names in Open Documents to make them unique
If a document has a file name associated with it then the prefix is
composed from path components (subdirectories), starting from the one
where the file is located and going up the parents until the resulting
name becomes unique among other open documents.

If a document doesn't have an associated file name, then a sequential
number (starting from 1) is appended to the display name of the
document.

This feature is useful when working with big projects that have lots
of idendical file names across different subdirectories (e.g.
Makefile.in, main.cpp, etc.) that need to be edited at the same
time. It allows to easily recognize such a file when switching
between documents in the editor, w/o the need to place the
mouse pointer over the name entry to get its full path.

Started-by: Dmitriy Kuminov <coding@dmik.org>
Task-number: QTCREATORBUG-10185
Change-Id: I633ea6d9b9b4fce8b67335dbcce1bda29254efde
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2015-02-26 14:56:25 +00:00
Tobias Hunger
8b9456e41c Vcs: Use correct project to trim down list of files on commit
Task-number: QTCREATORBUG-13955
Change-Id: I9961e981864f7dc261c2028fd3b80a36647a9a00
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2015-02-26 13:57:58 +00:00
Friedemann Kleint
d33af01d09 Clean exported headers of the VcsBase plugin.
Change-Id: Ibfe20bc7156e14e33fd0448586f5cc625494e008
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2015-02-26 10:57:52 +00:00
Tobias Hunger
86b5b5c2f3 VcsBaseSubmitEditor: Remove queued connection
Those should no longer be necessary and some people report warnings
about queueing Qt::ApplicationState when doing commits in creator.

Change-Id: I7bf1be57b8a92212ef677d1a608c0f22d20cab8b
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2015-02-24 13:39:18 +00:00
Tobias Hunger
16f9e10e72 VcsBase: Make the description directly available in Submit Editor
Make the description directly available to subclasses of the submit
editor.

Change-Id: Ieb6f99091fdcb6f794491169e637bec53a04dacb
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2015-02-20 08:59:27 +00:00
Tobias Hunger
75a823a7d2 VcsBase: Convert VcsBaseSubmitEditor to Qt5 style connects
Change-Id: I18919e963e1bb477dd81088344d1b86001a0e8e6
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2015-02-16 15:20:03 +00:00
Eike Ziller
9926fc2ab1 Merge commit '3c85058694ee2e41658d17f524fb48f0b187d2fe'
Conflicts:
	src/libs/utils/tooltip/tipcontents.cpp
	src/libs/utils/tooltip/tipcontents.h
	src/plugins/android/androiddeployqtstep.cpp
	src/plugins/baremetal/baremetalconstants.h
	src/plugins/baremetal/baremetaldevice.cpp
	src/plugins/baremetal/baremetaldevice.h
	src/plugins/baremetal/baremetaldeviceconfigurationwidget.cpp
	src/plugins/baremetal/baremetaldeviceconfigurationwidget.h
	src/plugins/baremetal/baremetaldeviceconfigurationwizard.cpp
	src/plugins/baremetal/baremetaldeviceconfigurationwizardpages.cpp
	src/plugins/baremetal/baremetaldeviceconfigurationwizardpages.h
	src/plugins/baremetal/baremetalplugin.cpp
	src/plugins/baremetal/baremetalplugin.h
	src/plugins/baremetal/baremetalruncontrolfactory.cpp
	src/plugins/baremetal/baremetalruncontrolfactory.h
	src/plugins/cppeditor/cppcodemodelinspectordialog.cpp
	src/plugins/cppeditor/cppdoxygen_test.cpp
	src/plugins/cppeditor/cppdoxygen_test.h
	src/plugins/debugger/breakpointmarker.cpp
	src/plugins/debugger/debuggeritemmodel.cpp
	src/plugins/debugger/debuggeritemmodel.h
	src/plugins/debugger/loadcoredialog.cpp
	src/plugins/genericprojectmanager/cppmodelmanagerhelper.cpp
	src/plugins/projectexplorer/addnewmodel.cpp
	src/plugins/projectexplorer/addnewmodel.h
	src/plugins/projectexplorer/jsonwizard/jsonfieldpage.cpp
	src/plugins/qmlprofiler/abstracttimelinemodel.cpp
	src/plugins/qmlprofiler/abstracttimelinemodel.h
	src/plugins/qmlprofiler/notesmodel.cpp
	src/plugins/qmlprofiler/qml/CategoryLabel.qml
	src/plugins/qmlprofiler/qml/MainView.qml
	src/plugins/qmlprofiler/qml/Overview.js
	src/plugins/qmlprofiler/qml/Overview.qml
	src/plugins/qmlprofiler/qml/TimeDisplay.qml
	src/plugins/qmlprofiler/qml/TimeMarks.qml
	src/plugins/qmlprofiler/qmlprofilertimelinemodelproxy.cpp
	src/plugins/qmlprofiler/sortedtimelinemodel.cpp
	src/plugins/qmlprofiler/sortedtimelinemodel.h
	src/plugins/qmlprofiler/timelinemodelaggregator.cpp
	src/plugins/qmlprofiler/timelinemodelaggregator.h
	src/plugins/qmlprofiler/timelinerenderer.cpp
	src/plugins/qmlprofiler/timelinerenderer.h
	src/plugins/qmlprojectmanager/QmlProjectManager.json.in
	src/plugins/texteditor/findinfiles.cpp
	src/plugins/vcsbase/vcsconfigurationpage.cpp
	src/shared/qbs
	src/shared/scriptwrapper/interface_wrap_helpers.h
	src/shared/scriptwrapper/wrap_helpers.h
	tests/auto/qmlprofiler/abstracttimelinemodel/tst_abstracttimelinemodel.cpp
	tests/system/suite_debugger/tst_debug_empty_main/test.py
	tests/system/suite_debugger/tst_qml_js_console/test.py
	tests/system/suite_debugger/tst_qml_locals/test.py

Change-Id: I67540b648f8b162496f4aa606b04d50c7c9125c6
2015-02-12 17:29:21 +01:00
Orgad Shaneh
620d1c36e5 VCS: Remove unneeded qualifications
Mostly done using the following ruby script:
Dir.glob('**/*.cpp').each { |file|
  next if file =~ %r{src/shared/qbs|/qmljs/}
  s = File.read(file)
  s.scan(/^using namespace (.*);$/) {
    ns = $1
    t = s.gsub(/^(.*)\b#{ns}::((?!Const)[A-Z])/) { |m|
      before = $1
      char = $2
      if before =~ /"|\/\/|\\|using|SIGNAL|SLOT|Q_/
        m
      else
        before + char
      end
    }
    if t != s
      puts file
      File.open(file, 'w').write(t)
    end
  }
}

Change-Id: I061c7bdcade96961aed226a8348f8ab07ee95f5f
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2015-02-04 13:22:55 +00:00
Orgad Shaneh
1bcfa137a3 Do not use QDir::separator() for internal paths
Internal paths are supposed to be normalized

Change-Id: Ic6943ce13ad389dfdb44054a9e6f03da8c6cd88d
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2015-02-02 08:32:59 +00:00