Commit Graph

96 Commits

Author SHA1 Message Date
hjk
2fe69b60dd Debugger: Rework Tooltips. Again.
Too much layers of complexity. Instead of keeping an eye on
the "live" tree model and switch to a static StandardItemModel
whenever live synchronization is not possible (and do all the
tree view snake oil magic that's needed to make the switch
appear "smooth") keep static copies of relevant parts of the
live model, and update them whenever the the live model changes.

Change-Id: I88a7de67f7703cd2fed041351346b1c7ada0839e
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-02-09 14:33:48 +00:00
Orgad Shaneh
c6a983d271 Core: Use FileName for file path in IDocument
Change-Id: I85f7398aee59d0d36f0e5c3bf88ff3c96002e394
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2015-01-12 10:23:37 +01:00
hjk
e8396f4c8d Utils: Simplify tooltip architecture and cleanup
This mainly merges TipContents into the the actual
tooltip labels.

Change-Id: I64b576c987bce034842f7e3f324b81595dae0713
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2014-12-15 08:24:31 +01:00
hjk
50ad32a25b Utils: Start simplification of tooltip handling
There's a bit too much unneeded flexibility in there, requiring extra
boiler-plate code on the user side.

Change-Id: I34d03838fb1cd3182fcbb93bf65158ebfc7e2bce
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2014-12-08 12:56:12 +01:00
Jarek Kobus
95c13a230e Fix strings
Change-Id: I12e52c7e584d26205b98672a65257af5c55dda24
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
2014-12-05 17:19:49 +01:00
hjk
a2f4203753 Debugger: Tooltip timing workarounds.
There's some bad interaction between the delayed hide,
the deleteLater() from CloseOnDelete, and the async
evaluation. Work around by start from scratch for each
tooltip. On the downside we have more flicker.

Change-Id: I4801368c07895b652e10fe1d173b21cef7869ed0
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-11-15 20:11:13 +01:00
hjk
1101e556c6 Debugger: Make pinned tooltips a frameless Tool window
This avoids the "StayOnTop" situation described in QTCREATORBUG-13397
for the case of pinned tooltips.

Task-number: QTCREATORBUG-13397
Change-Id: I3801368c07895b652e10fe1d173b21cef7869ed0
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-11-15 15:50:42 +01:00
hjk
045905fbbd Debugger: Fix unpinned tooltip expansion
True expansion was setting another WidgetContent to
an exististing Tooltip. Arguably wrong in the base
Tooltip handling, but avoidable on the debugger side,
too. This was visible only on Mac.

Change-Id: I2e5a3273b571658b4dd4200c9b3a0e9542a16015
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-11-15 14:10:10 +01:00
hjk
82268eb77c Debugger: Use line information to find matching scopes for tooltips
More robust to variations in tool chains than function names.
(e.g. GDB reports 'foo' and LLDB 'foo()')

Change-Id: I1e5a3273b571658b4dd4200c9b3a0e9542a16015
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-11-15 13:37:12 +01:00
hjk
51012b117d Debugger: Pinned LLDB tooltip stepping with out-of-source builds
Previously it "released" on step as the scope paths from the code
model and the debugger report "differed" ("a/b/../c" vs "a/c")

Change-Id: Ida094581cfaa53b00f9186495870854ca431f041
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2014-11-14 14:24:24 +01:00
hjk
011ddc09c4 Debugger: Fix async tooltip handling
For now, only the gdb engine can handle complex tooltips
requiring async re-evaluation, cdb and lldb will show
and expand only items that are available in the Locals view.

This patch disables also the save/restore feature for
pinned tooltips.

Task-number: QTCREATORBUG-13255
Task-number: QTCREATORBUG-13052
Change-Id: Ic25616fede0f5c4343a92b631f01e60bfc5e9d81
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2014-11-14 12:58:05 +01:00
hjk
a2ebc8adbd Debugger: Make most of tooltip label a handle for dragging.
Previously, the actual text, not the free space, was usable.

Change-Id: Ib33990def16e48826505c45b6b764dc4c9fbb314
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-11-10 16:00:56 +01:00
Orgad Shaneh
c00e69acbc Fix compilation with Qt 5.3
Functor override for QTimer::singleShow was introduced in 5.4

Change-Id: I8970c73a1d4b97c6cc588cddca8d617fdaa8bfa2
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-11-10 07:41:05 +01:00
hjk
ea029b4cb5 Debugger: Rename hide to hideAllToolTips in tooltipmanager.cpp
Easier to guess what gets hidden.

Change-Id: Ie7731dc6bb601bfa1ea6eb8cb69822e72bdfbd66
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-11-07 16:34:33 +01:00
hjk
897ca7a6f4 Debugger: Simplify debuggertooltipmanager.h
Change-Id: Iaa4204d374913c65e322b2a00831caeb1b3b1ccc
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-11-07 16:33:14 +01:00
hjk
4b57427ee1 Debugger: Expose WatchModel signals
This opens it up to be used with Qt5 connects in the
TooltipManager and simpler user code.

Change-Id: Ifc6fcc3a04d325437f5a2bdf1da463d28d650ee3
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-11-07 16:01:08 +01:00
hjk
9ba17acc80 Debugger: Replace debuggerCore() by equivalent free functions
One indirection less on the user code side, and easier to export
if needed (partially addressing QTCREATORBUG-13187)

Change-Id: I13ab9f471a3a34da7a6331aefc83f6d02413bfab
Reviewed-by: David Schulz <david.schulz@digia.com>
2014-10-23 14:12:33 +02:00
hjk
ce0fe84208 Debugger: Remove the special do-nothing-if-not-moved far enough
The problem are tooltips not triggering, not triggering too often.

Change-Id: I707f3c5014bde310e778c6c4d604aeb4e5b8f7c3
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-10-22 13:03:26 +02:00
Eike Ziller
ea27143239 Merge remote-tracking branch 'origin/3.2'
Conflicts:
	src/libs/utils/ipaddresslineedit.cpp
	src/libs/utils/logging.h
	src/plugins/analyzerbase/AnalyzerBase.pluginspec.in
	src/plugins/android/Android.pluginspec.in
	src/plugins/android/androiddeploystep.cpp
	src/plugins/android/androiddeploystep.h
	src/plugins/android/androiddeploystepfactory.cpp
	src/plugins/android/androiddeploystepwidget.cpp
	src/plugins/android/androidpackagecreationfactory.cpp
	src/plugins/android/androidpackagecreationstep.cpp
	src/plugins/android/androidpackagecreationstep.h
	src/plugins/android/androidpackagecreationwidget.cpp
	src/plugins/android/androidpackagecreationwidget.h
	src/plugins/android/javafilewizard.cpp
	src/plugins/autotoolsprojectmanager/AutotoolsProjectManager.pluginspec.in
	src/plugins/baremetal/BareMetal.pluginspec.in
	src/plugins/bazaar/Bazaar.pluginspec.in
	src/plugins/beautifier/Beautifier.pluginspec.in
	src/plugins/bineditor/BinEditor.pluginspec.in
	src/plugins/bookmarks/Bookmarks.pluginspec.in
	src/plugins/clangcodemodel/ClangCodeModel.pluginspec.in
	src/plugins/clangcodemodel/clanghighlightingsupport.cpp
	src/plugins/clangcodemodel/clangsymbolsearcher.cpp
	src/plugins/classview/ClassView.pluginspec.in
	src/plugins/clearcase/ClearCase.pluginspec.in
	src/plugins/cmakeprojectmanager/CMakeProjectManager.pluginspec.in
	src/plugins/cmakeprojectmanager/cmakeeditorfactory.cpp
	src/plugins/cmakeprojectmanager/cmakehighlighter.cpp
	src/plugins/coreplugin/Core.pluginspec.in
	src/plugins/cpaster/CodePaster.pluginspec.in
	src/plugins/cppeditor/CppEditor.pluginspec.in
	src/plugins/cppeditor/cppfilewizard.cpp
	src/plugins/cpptools/CppTools.pluginspec.in
	src/plugins/cpptools/cpphighlightingsupportinternal.cpp
	src/plugins/cpptools/cppmodelmanagerinterface.cpp
	src/plugins/cpptools/cppmodelmanagerinterface.h
	src/plugins/cvs/CVS.pluginspec.in
	src/plugins/debugger/Debugger.pluginspec.in
	src/plugins/designer/Designer.pluginspec.in
	src/plugins/diffeditor/DiffEditor.pluginspec.in
	src/plugins/emacskeys/EmacsKeys.pluginspec.in
	src/plugins/fakevim/FakeVim.pluginspec.in
	src/plugins/genericprojectmanager/GenericProjectManager.pluginspec.in
	src/plugins/git/Git.pluginspec.in
	src/plugins/git/gitorious/gitorious.cpp
	src/plugins/git/gitorious/gitorious.h
	src/plugins/git/gitorious/gitoriousclonewizard.cpp
	src/plugins/git/gitorious/gitorioushostwidget.cpp
	src/plugins/git/gitorious/gitorioushostwidget.h
	src/plugins/git/gitorious/gitorioushostwizardpage.cpp
	src/plugins/git/gitorious/gitoriousprojectwidget.cpp
	src/plugins/git/gitorious/gitoriousprojectwidget.h
	src/plugins/git/gitorious/gitoriousprojectwizardpage.cpp
	src/plugins/git/gitorious/gitoriousprojectwizardpage.h
	src/plugins/git/gitorious/gitoriousrepositorywizardpage.cpp
	src/plugins/git/gitorious/gitoriousrepositorywizardpage.h
	src/plugins/glsleditor/GLSLEditor.pluginspec.in
	src/plugins/glsleditor/glsleditorfactory.cpp
	src/plugins/glsleditor/glslfilewizard.cpp
	src/plugins/helloworld/HelloWorld.pluginspec.in
	src/plugins/help/Help.pluginspec.in
	src/plugins/imageviewer/ImageViewer.pluginspec.in
	src/plugins/ios/Ios.pluginspec.in
	src/plugins/macros/Macros.pluginspec.in
	src/plugins/mercurial/Mercurial.pluginspec.in
	src/plugins/perforce/Perforce.pluginspec.in
	src/plugins/projectexplorer/ProjectExplorer.pluginspec.in
	src/plugins/pythoneditor/PythonEditor.pluginspec.in
	src/plugins/pythoneditor/pythoneditorwidget.cpp
	src/plugins/pythoneditor/wizard/pythonfilewizard.cpp
	src/plugins/qbsprojectmanager/QbsProjectManager.pluginspec.in
	src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp
	src/plugins/qmakeprojectmanager/QmakeProjectManager.pluginspec.in
	src/plugins/qmakeprojectmanager/profileeditorfactory.cpp
	src/plugins/qmldesigner/QmlDesigner.pluginspec.in
	src/plugins/qmljseditor/QmlJSEditor.pluginspec.in
	src/plugins/qmljseditor/qmljseditorfactory.cpp
	src/plugins/qmljstools/QmlJSTools.pluginspec.in
	src/plugins/qmlprofiler/QmlProfiler.pluginspec.in
	src/plugins/qmlprojectmanager/QmlProjectManager.pluginspec.in
	src/plugins/qnx/Qnx.pluginspec.in
	src/plugins/qtsupport/QtSupport.pluginspec.in
	src/plugins/remotelinux/RemoteLinux.pluginspec.in
	src/plugins/resourceeditor/ResourceEditor.pluginspec.in
	src/plugins/resourceeditor/resourcewizard.h
	src/plugins/subversion/Subversion.pluginspec.in
	src/plugins/tasklist/TaskList.pluginspec.in
	src/plugins/texteditor/TextEditor.pluginspec.in
	src/plugins/texteditor/basetexteditor_p.h
	src/plugins/texteditor/basetextmark.cpp
	src/plugins/texteditor/codeassist/basicproposalitemlistmodel.h
	src/plugins/texteditor/codeassist/defaultassistinterface.h
	src/plugins/texteditor/codeassist/iassistproposalitem.cpp
	src/plugins/texteditor/itexteditor.cpp
	src/plugins/texteditor/itexteditor.h
	src/plugins/texteditor/itextmark.cpp
	src/plugins/texteditor/plaintexteditor.cpp
	src/plugins/texteditor/plaintexteditor.h
	src/plugins/texteditor/texteditoractionhandler.cpp
	src/plugins/todo/Todo.pluginspec.in
	src/plugins/updateinfo/UpdateInfo.pluginspec.in
	src/plugins/valgrind/Valgrind.pluginspec.in
	src/plugins/vcsbase/VcsBase.pluginspec.in
	src/plugins/welcome/Welcome.pluginspec.in
	src/plugins/winrt/WinRt.pluginspec.in
	tests/auto/debugger/temporarydir.h

Change-Id: I254af8be8119fe9855287909e17d4b8ca9d2fc2f
2014-10-14 15:36:16 +02:00
Eike Ziller
8295b503be License update
Change-Id: I3c22ef2685d7aa589f5d0ab74d693653a4c32082
Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
2014-10-09 11:41:44 +02:00
hjk
10c8d5f0ca TextEditor: Rename BaseTextEditorWidget to TextEditorWidget
... and some of the related implementation details

Change-Id: I1f03aa5acf2d3fb2cfc2a6a7845f3d3578b0408d
Reviewed-by: David Schulz <david.schulz@digia.com>
2014-09-29 14:54:32 +02:00
hjk
953cdb971f TextEditor: More BaseText* -> Text* renamings
*Document* and *Layout* classes, all basetext* files

Change-Id: I1c6e376733a434fcb5c7f19c6210dfa031eeafde
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-09-26 10:12:51 +02:00
hjk
e90a8a051c TextEditor: Only use tooltipOverrideRequested in *Widget
One signal less, one connection less, less indirection in user code.

Change-Id: Ie49d4a76982f2ff9d2b307ed541c33c6a7ea6480
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-09-19 16:51:36 +02:00
hjk
970264a88e Debugger: Operate tooltips on TextEditorWidgets, not TextEditor
Less indirection.

Change-Id: Ifbd7195e853d02bfd6562c817fc7f30079913faf
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-09-19 16:00:24 +02:00
hjk
74f24c96e1 Debugger: Show a "no valid expression" hint in tooltips
So far silently nothing happened, which can be annoying.

Change-Id: Ib0a20343b41a0737de82c2894d526e46a21400a4
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-09-19 16:00:00 +02:00
hjk
48bcb83c6f Debugger: Fix/adjust tooltip handling after editor changes
Change-Id: I67ac61619c13b6cec327e8a27b45e9acfa5905f5
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-09-02 16:51:16 +02:00
hjk
5ac407eecc Debugger: Reduce line noise
Move some function out of the DebuggerCore "namespace", to avoid one
indirection and removes clutter in the calling code.

Change-Id: I1c870d5c7eeade32fa63dedf581490fbb090cd6a
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-07-28 15:48:15 +02:00
hjk
bf5e43be94 TextEditor: Merge ITextEditor and BaseTextEditor
Adjust all callers, de-export BaseTextEditorAnimator

Change-Id: I2329d976c1398e2449844bb480a4d4ed29859506
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2014-07-25 13:45:55 +02:00
hjk
aef20d43e1 Debugger: More robust approach for DebuggerToolTipTreeView::computeSize
model() == 0 should not happen, but the bugreport indicates there
was something wrong at a time.

Task-number: QTCREATORBUG-12692
Change-Id: Ie850dfc1177d968c39ffae74af89ae1bab44703c
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-07-18 08:31:39 +02:00
hjk
f0b2d6535e Debugger: Rework editor tooltips handling
Fix expansion and updating.

Persistence and non-locals are still lacking.

Change-Id: I74e25199d50350516afc686a05836e239bfc8acb
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-07-11 12:19:01 +02:00
hjk
dbae15684f Debugger: Simplify tooltip interface
Change-Id: I7ce688e56fb516ef6e77ee2e4f56d9b56379918b
Reviewed-by: David Schulz <david.schulz@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-07-09 13:37:45 +02:00
hjk
eba095d22a Debugger: Fix tooltip expansion behavior
Task-number: QTCREATORBUG-11404
Change-Id: I7e08cd6b8216ff7dd0069c2a8718f6bb619ede07
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-07-09 10:39:23 +02:00
hjk
ecbf4c7786 Debugger: Replace two data members by local variables
Change-Id: I3db53587a752e6a62563b7130651e62fefd183c4
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-06-02 13:03:29 +02:00
hjk
6e584b5b49 DocumentModel: Make interface static
Move item model implementation to private, adjust user code.

Change-Id: Ifbe94e7c7b9b1e8be1b4c531958dbd7a9413af13
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-05-13 11:48:30 +02:00
Robert Loehning
746c5d8863 Incremented year in copyright info
Change-Id: Ib5423fdd064e4546f848c0b640b0ed0514c26d3a
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-01-08 08:29:47 +01:00
hjk
1650aaae38 Debugger: Fold GdbToolTipContext into DebuggerToolTipIndex
Change-Id: Iee9201daa8d42ee4231895b1c78387acbc7caaac
Reviewed-by: David Schulz <david.schulz@digia.com>
2013-10-14 15:42:43 +02:00
hjk
6f495a32f2 Debugger: Workaround rendering glitches in tooltips
Task-number: QTCREATORBUG-9852
Change-Id: I27a508540f7e9f79dc92297c76e6a723d9db496d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-10-14 12:17:54 +02:00
hjk
814c42764c Debugger: Simplify DebuggerToolTipEditor convenience structure
Change-Id: I0e86bb657a225cdf2d915b5d1f9526856064e92d
Reviewed-by: David Schulz <david.schulz@digia.com>
2013-10-14 09:19:23 +02:00
hjk
976c044696 Debugger: Apply static pattern to DebuggerToolTipManager
Change-Id: I49869c393b922da75572959973b917894f93f4ec
Reviewed-by: David Schulz <david.schulz@digia.com>
2013-10-14 09:19:02 +02:00
hjk
30045bee78 Debugger: Simplify Tooltip manager interface
The Editor itself is not really used.

Task-number: QTCREATORBUG-10358
Change-Id: I94620ed7b3b1d6b02c4eef2a359f991217b0a00b
Reviewed-by: David Schulz <david.schulz@digia.com>
2013-10-14 09:17:23 +02:00
Eike Ziller
63ff745213 Merge remote-tracking branch 'origin/2.8'
Conflicts:
	src/libs/extensionsystem/pluginmanager.cpp
	src/libs/extensionsystem/pluginspec.cpp
	src/plugins/coreplugin/basefilewizard.cpp
	src/plugins/coreplugin/coreplugin.pro
	src/plugins/coreplugin/coreplugin.qbs
	src/plugins/coreplugin/editormanager/ieditor.cpp
	src/plugins/coreplugin/externaltool.cpp
	src/plugins/coreplugin/icore.cpp
	src/plugins/cpptools/cppmodelmanager.cpp
	src/plugins/fakevim/fakevimhandler.cpp
	src/plugins/find/ifindfilter.cpp
	src/plugins/projectexplorer/buildstep.cpp
	src/plugins/projectexplorer/devicesupport/idevice.cpp
	src/plugins/projectexplorer/runconfiguration.cpp
	src/plugins/vcsbase/vcsbaseeditor.cpp
	tests/system/suite_debugger/tst_simple_analyze/test.py

Change-Id: I11dc9e60bfc14bad4f8af747d041fc7678a07c17
2013-09-27 10:44:32 +02:00
hjk
8098c085fe Utils: Cleanup of Tooltip interface
Change-Id: If4908e7a5d5ce749ff1e2efc7a026604821737be
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-09-13 11:35:22 +02:00
Leena Miettinen
2b573a6d82 Doc: edit debugger API docs
Remove \brief commands from function descriptions.
Use QDoc commands for notes and lists.
Write GDB in all caps.
Fix punctuation and style and grammar issues.

Change-Id: I7f5bf0f53ad643eb4e2981c0d4e39c453dff5558
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-09-09 12:55:15 +02:00
hjk
5e5d840b53 Debugger: Streamline settings access pattern
Change-Id: Ie73b8d9fa945ee9dcbab67177410cc782979c8ad
Reviewed-by: David Schulz <david.schulz@digia.com>
2013-09-05 11:07:00 +02:00
hjk
4a24df38a3 EditorManager: Use static pattern, adjust surrounding code
Change-Id: I3255a0150cd9a730336456c5a9f986eb74fefbff
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-08-30 11:22:56 +02:00
Friedemann Kleint
0c621dcdcf Reduce usage of QStringRef::toString() in debuggertooltipmanager.cpp.
Change-Id: I5236df01aec5a5a173ea81d50330f0255603acad
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-08-29 11:19:00 +02:00
hjk
53a49e3a64 Debugger: Minor re-organization in tooltip constructor
Change-Id: Ia8b1bf0f984c083a842c5814500ecb365a645280
Reviewed-by: David Schulz <david.schulz@digia.com>
2013-08-19 11:03:33 +02:00
Eike Ziller
871a8cd031 Work with documents instead of editors where possible in debugger
And where using editors is necessary, take *all* editors into account,
not a random set of what previously was called "original" editors (when
using splits).

Change-Id: Id6bbad08f3083b6744fc2edcf0b87ba504d3257b
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-07-12 11:58:24 +02:00
Eike Ziller
dd43d9908f Rename IDocument::fileName --> filePath
That is what it actually is, wrt how Qt API calls it.

Change-Id: Ied02055debf6aad75556b0d9d22e8ba2f72be555
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-07-09 13:51:42 +02:00
Leena Miettinen
41411165ba Doc: use standard wording in \brief commands
QDoc does some magic with the \class and \namespaces
and \brief commands, so the following wording must be used:
"The xxx class yyy ..."

Change-Id: Id231f30e8464898b776888d5423523de404aae34
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-06-20 11:22:47 +02:00