Commit Graph

605 Commits

Author SHA1 Message Date
Florian Bruhin
7a1dfebc6a Remove unused faulthandler import. 2014-10-14 21:23:07 +02:00
Florian Bruhin
dcad41c92e Never delete crash log file.
We also want to log to the crash log when segfaults happen during exit.
2014-10-14 20:48:21 +02:00
Florian Bruhin
cf6d303ad1 Improve crash log handling because of single-instance. 2014-10-14 20:47:06 +02:00
Florian Bruhin
f9eec48414 Set urgent hint when opening IPC tab - closes #185 2014-10-14 11:51:17 +02:00
Florian Bruhin
cfc5e80d3e ipc: Fix opening of new empty window. 2014-10-14 10:10:24 +02:00
Florian Bruhin
2e2070ef6e Rename ipc-open-target to new-instance-open-target. 2014-10-14 09:59:01 +02:00
Florian Bruhin
bcf8040041 Whitespace fixes. 2014-10-14 07:58:50 +02:00
Florian Bruhin
7c0a23b1b7 Fix IPC when there's no main window available. 2014-10-14 07:58:16 +02:00
Florian Bruhin
0e9177eb4f Rename ipc param to process_args to via_ipc.
This prevents shadowing of the module.
2014-10-14 07:57:42 +02:00
Florian Bruhin
817259f4f5 Add ipc-open-target config option. 2014-10-14 07:37:12 +02:00
Florian Bruhin
191b1dd240 Open new window for IPC args. 2014-10-13 23:14:24 +02:00
Florian Bruhin
a849901693 Shut down IPC cleanly on exit. 2014-10-13 20:36:23 +02:00
Florian Bruhin
6dc0bfa2d2 Convert IPCServer to a class and handle connections async. 2014-10-13 20:11:13 +02:00
Florian Bruhin
476dd09534 Actually start IPC server. 2014-10-13 07:42:06 +02:00
Florian Bruhin
fdb24ff597 Move IPC to its own file. 2014-10-13 07:06:57 +02:00
Florian Bruhin
86bb1f9890 Remove local server before connecting. 2014-10-11 11:39:02 +02:00
Florian Bruhin
1238f28833 Use a variable for socketname. 2014-10-11 11:38:03 +02:00
Florian Bruhin
f231f8815b QLocalsocket foo 2014-10-10 13:16:22 +02:00
Florian Bruhin
b42d701b0c debug-console: Only create when needed 2014-10-10 07:45:44 +02:00
Florian Bruhin
c6ccb56208 Handle exceptions while crash dialog is shown correctly. Fixes #168. 2014-10-09 06:56:04 +02:00
Florian Bruhin
cbdade6518 Fix saving geometry if mainwindow is closed on shutdown. Fixes #159. 2014-10-08 22:03:12 +02:00
Florian Bruhin
71308b45ac Add utils.qualname. Closes #169. 2014-10-08 21:11:04 +02:00
Florian Bruhin
b49b227c0d Add an init method for standarddir.
This is another preparation for #19 and #20.
2014-10-08 06:43:00 +02:00
Florian Bruhin
4abb5c8f36 Fix removing of eventfilter on shutdown if not present. 2014-10-08 06:38:03 +02:00
Florian Bruhin
0e7a60abf6 Move utils.get_standard_dir to its own file.
This is a preparation for #19 and #20 because there are too many functions
related to standarddir in utils.
2014-10-08 06:20:31 +02:00
Florian Bruhin
068cc89458 Only start timer to process args if init was successful.
This fixes an exception when there is a config error (now displays normal error
box again).
2014-10-07 07:34:03 +02:00
Florian Bruhin
ae44aa01a6 Set initial focused window correctly. 2014-10-06 22:29:18 +02:00
Florian Bruhin
dfc10a7d40 Revert "Fix opening of quickstart."
This reverts commit 202b5e2bb9.

window='current' really should work properly.
2014-10-06 22:24:29 +02:00
Florian Bruhin
202b5e2bb9 Fix opening of quickstart. 2014-10-06 22:16:52 +02:00
Florian Bruhin
fbb45953db Split parsing of initial args into three functions. 2014-10-06 22:15:11 +02:00
Florian Bruhin
dfb4e283e3 Remove unused import. 2014-10-06 22:14:57 +02:00
Florian Bruhin
105c25bc5f Merge branch 'multiwin'
Conflicts:
	qutebrowser/app.py
	qutebrowser/browser/commands.py
	qutebrowser/browser/hints.py
	qutebrowser/keyinput/modeman.py
	qutebrowser/network/networkmanager.py
	qutebrowser/widgets/mainwindow.py
	qutebrowser/widgets/statusbar/command.py
	qutebrowser/widgets/statusbar/prompt.py
	qutebrowser/widgets/statusbar/prompter.py
	qutebrowser/widgets/tabbedbrowser.py
2014-10-06 22:03:58 +02:00
Florian Bruhin
fd9a3fc5e7 Clean up mainwindow import mess. 2014-10-06 21:24:07 +02:00
Florian Bruhin
b6393a1841 Get rid of meta registry 2014-10-05 21:50:14 +02:00
Florian Bruhin
22b48ad248 Open quickstart page on first start.
Fixes #4.
2014-10-03 08:39:33 +02:00
Florian Bruhin
d674b90240 Clean up FIXMEs and add github URLs 2014-10-01 22:23:27 +02:00
Florian Bruhin
2df276085c Process events before creating BrowserPage. 2014-09-30 08:07:45 +02:00
Florian Bruhin
ce8409feb2 Add multi window support to :restore/:restart. 2014-09-29 22:37:46 +02:00
Florian Bruhin
6aeecb3803 Fix lints/bugs 2014-09-29 20:36:53 +02:00
Florian Bruhin
0cf8abab7c Fix running of startup commands. 2014-09-29 19:56:13 +02:00
Florian Bruhin
24c48df988 Open about:blank if opening startpage fails. 2014-09-29 19:13:31 +02:00
Florian Bruhin
6e61f4c586 Support opening multiple windows via init args. 2014-09-29 18:50:46 +02:00
Florian Bruhin
b84eb6aeb0 Add missing utilcmds import. 2014-09-29 08:52:00 +02:00
Florian Bruhin
895f51083d Some more objreg fixes for multi-window. 2014-09-29 07:17:01 +02:00
Florian Bruhin
16c067e32d Simplify showing of main windows. 2014-09-28 22:46:37 +02:00
Florian Bruhin
dc7b32e460 Fix lint 2014-09-28 22:23:37 +02:00
Florian Bruhin
fb6cb62f93 First attempt at multi-window support. 2014-09-28 22:13:14 +02:00
Florian Bruhin
64a119afb2 Don't use signals for on_config_changed. 2014-09-28 11:27:52 +02:00
Florian Bruhin
8636562579 Move config init out of Application 2014-09-28 00:27:22 +02:00
Florian Bruhin
86fdf981e3 Refactor init 2014-09-28 00:18:57 +02:00
Florian Bruhin
36fd2e5c7f Improve __repr__ methods. 2014-09-26 15:48:24 +02:00
Florian Bruhin
f8f0c69d79 Fix shutdown before prompter is alive. 2014-09-25 22:56:22 +02:00
Florian Bruhin
c188c6986d Call on_mode_entered only once for hints. 2014-09-25 19:06:38 +02:00
Florian Bruhin
6b459f43f1 Improve :debug-all-objects output. 2014-09-25 18:17:52 +02:00
Florian Bruhin
7b8829286c Merge branch 'objreg' 2014-09-25 08:08:08 +02:00
Florian Bruhin
78949a8c1b Use object registry for hintmanager. 2014-09-25 07:49:45 +02:00
Florian Bruhin
df5ac3ab2f Use object registry for keyparsers. 2014-09-25 07:41:18 +02:00
Florian Bruhin
8421ff7ad0 Fix :restart when installed as Python egg with launcher 2014-09-25 07:07:27 +02:00
Florian Bruhin
4783df8c32 Avoid download_get signal. 2014-09-25 00:29:29 +02:00
Florian Bruhin
387622623d Detach meta object registry from application. 2014-09-24 07:27:32 +02:00
Florian Bruhin
b0a9ecf094 Detach object registry from application. 2014-09-24 07:13:53 +02:00
Florian Bruhin
aa646463b0 Also use objreg API in app 2014-09-24 07:10:17 +02:00
Florian Bruhin
3f02451828 Move object registry to its own file. 2014-09-24 07:06:45 +02:00
Florian Bruhin
908a69af18 Better __repr__s 2014-09-23 23:31:17 +02:00
Florian Bruhin
9aa65a2341 Fix lint and bugs 2014-09-23 23:17:36 +02:00
Florian Bruhin
2b60cdb64c Object names cleanup 2014-09-23 23:05:55 +02:00
Florian Bruhin
04be586bca Use object registry for keyconfig. 2014-09-23 22:37:41 +02:00
Florian Bruhin
fe5d9939b9 Move debug console from app to utilcmd 2014-09-23 22:31:26 +02:00
Florian Bruhin
90820126b4 Update comment 2014-09-23 22:29:03 +02:00
Florian Bruhin
953e50721c Use object registry for config. 2014-09-23 22:28:28 +02:00
Florian Bruhin
b818bc5896 Use object registry for downloadmanager. 2014-09-23 22:22:03 +02:00
Florian Bruhin
7a7b397c15 Use object registry for cmd-history. 2014-09-23 22:17:25 +02:00
Florian Bruhin
8af8e3530f Use object registry for args. 2014-09-23 22:13:10 +02:00
Florian Bruhin
37dbfde6ac Use object registry for app. 2014-09-23 22:06:46 +02:00
Florian Bruhin
a32ed36ba6 Use object registry for mainwindow. 2014-09-23 22:05:00 +02:00
Florian Bruhin
a76c4c8ba5 Use object registry for tabbedbrowser. 2014-09-23 22:01:46 +02:00
Florian Bruhin
487300f926 Use object registry for prompter. 2014-09-23 21:56:29 +02:00
Florian Bruhin
ffaf4f0cb0 Use object registry for completion. 2014-09-23 21:50:34 +02:00
Florian Bruhin
40812f81b6 Use object registry for status-cmd. 2014-09-23 21:50:34 +02:00
Florian Bruhin
9a3ceebf2e Use object registry for completer. 2014-09-23 21:39:42 +02:00
Florian Bruhin
5f45d3de60 Use object registry for modeman. 2014-09-23 20:02:48 +02:00
Florian Bruhin
d441471a17 Use object registry for app._timers. 2014-09-23 19:53:48 +02:00
Florian Bruhin
58be65f4f0 Use object registry for messagebridge. 2014-09-23 19:53:48 +02:00
Florian Bruhin
1d535ae300 Use object registry for stateconfig. 2014-09-23 19:53:48 +02:00
Florian Bruhin
21bdf517b7 Use object registry for searchrunner. 2014-09-23 19:53:48 +02:00
Florian Bruhin
68cfe499fc Use object registry for rl_bridge. 2014-09-23 19:53:48 +02:00
Florian Bruhin
10eb849ae7 Fix lint 2014-09-23 19:53:47 +02:00
Florian Bruhin
aa681f5ad2 Merge get_all_widgets into get_all_objects. 2014-09-23 19:53:47 +02:00
Florian Bruhin
30209f531e Improve get_all_objects output. 2014-09-23 19:53:47 +02:00
Florian Bruhin
9e5d8b2480 Add a meta-registry. 2014-09-23 19:53:47 +02:00
Florian Bruhin
dce5289b69 Rename global registry from obj to registry. 2014-09-23 19:53:47 +02:00
Florian Bruhin
dc7ad3e2de Use a normal UserDict for ObjectRegistry. 2014-09-23 19:53:46 +02:00
Florian Bruhin
ca2be960df Use object registry for cache/cookiejar. 2014-09-23 19:53:20 +02:00
Florian Bruhin
2694ab2e80 app: Make commandrunner/debugconsole private. 2014-09-23 19:51:52 +02:00
Florian Bruhin
097645ae8e app: Support object registry in get_all_objects. 2014-09-23 19:51:52 +02:00
Florian Bruhin
981604fc8b Add initial object registry. 2014-09-23 19:51:52 +02:00
Florian Bruhin
1ce1c91d69 app: Refactor get_all_objects. 2014-09-23 19:51:52 +02:00
Florian Bruhin
812a0fdd41 Merge branch 'newcmd'
Conflicts:
	.flake8
	pkg/PKGBUILD.qutebrowser-git
	qutebrowser/browser/commands.py
	qutebrowser/browser/hints.py
	qutebrowser/config/configdata.py
	qutebrowser/network/qutescheme.py
	qutebrowser/test/config/test_configtypes.py
	qutebrowser/utils/utils.py
2014-09-22 19:09:48 +02:00
Florian Bruhin
5eef6d422d Better exception formatting and handling. 2014-09-16 08:20:19 +02:00
Florian Bruhin
f5ecba0d07 Move exit logging to app.py for Python2 compatibility. 2014-09-15 21:55:38 +02:00
Florian Bruhin
ab0e600977 Error if unknown sections are in the config. 2014-09-12 17:53:27 +02:00
Florian Bruhin
4fde56a942 Allow binding keys. 2014-09-09 23:05:28 +02:00
Florian Bruhin
e3d16f3bbe Full read-write support for key config. 2014-09-09 22:18:00 +02:00
Florian Bruhin
414ab88a0e Fix lint 2014-09-09 18:32:18 +02:00
Florian Bruhin
6f03f08111 Make new key config work (readonly) 2014-09-09 07:43:27 +02:00
Florian Bruhin
a811f8cb07 Start initial newcmd stuff. 2014-09-08 07:36:17 +02:00
Florian Bruhin
71796e9528 Fix statusbar text when entering insert mode via hints.
Before, hints cleaned the statusbar text delayed, clearing the "==== INSERT
MODE ====" in the statusbar.

Now we only reset the text if it wasn't changed.
2014-09-03 11:51:24 +02:00
Florian Bruhin
ccfc0b3c19 Get rid of most @property's.
They were problematic because they're executing hidden code, and also PyQt
hides exceptions happening inside them.
2014-09-02 23:37:47 +02:00
Florian Bruhin
428d70c746 Add a network disk cache. 2014-09-01 19:42:21 +02:00
Florian Bruhin
6d2acc244c Use an LRU cache for stylesheets 2014-08-28 20:14:40 +02:00
Florian Bruhin
562388fe52 Rename config.conftypes to config.configtypes. 2014-08-26 21:41:41 +02:00
Florian Bruhin
ce4a5affa4 Rename commands.utils to commands.cmdutils. 2014-08-26 20:48:39 +02:00
Florian Bruhin
5adf48ed3d Rename utils.url to utils.urlutils. 2014-08-26 20:33:41 +02:00
Florian Bruhin
8bd64382bd Rename utils.qt to utils.qtutils. 2014-08-26 20:25:11 +02:00
Florian Bruhin
d9a8cbe7ad Rename utils.misc to utils.utils 2014-08-26 20:20:17 +02:00
Florian Bruhin
e04b31eb90 Remove qt_ prefix from qtutils functions. 2014-08-26 19:23:06 +02:00
Florian Bruhin
d625cde28c Clean up imports 2014-08-26 19:10:14 +02:00
Florian Bruhin
17dd4732ae Add explicit encoding to open() calls. 2014-08-20 20:33:14 +02:00
Florian Bruhin
2a40002c2d Add instance for :debug-console command. 2014-08-13 05:15:21 +02:00
Florian Bruhin
07fda5818c Add broken debugging console. 2014-08-13 00:13:32 +02:00
Florian Bruhin
5a88028738 Rename qutebrowser.commands.managers module to .runners. 2014-08-06 15:58:08 +02:00
Florian Bruhin
aebce80b2b Rename {Command,Search}Manager to ...Runner 2014-08-06 15:38:25 +02:00
Florian Bruhin
4e200653a0 Enable python warnings with --debug 2014-08-05 22:33:08 +02:00
Florian Bruhin
ee1b136807 Clean up pylint/noqa comments. 2014-08-04 03:47:09 +02:00
Florian Bruhin
de2f267607 Fix restarting/exceptions with URLs with spaces. 2014-08-02 19:49:15 +02:00
Florian Bruhin
b707987be0 Better logging on exit. 2014-08-02 19:40:24 +02:00
Florian Bruhin
3307c5f518 Shut down correctly while being asked a question. 2014-08-02 19:38:02 +02:00
Florian Bruhin
157975b0d4 widgets.webview: Add a cur_url property so the initial URL is available immediately. 2014-08-02 02:35:38 +02:00
Florian Bruhin
f6b26f0d56 Improve interrupt docs 2014-08-02 01:53:27 +02:00
Florian Bruhin
b0cfb281f4 shutdown correctly before mainwindow exists. 2014-08-02 01:12:05 +02:00
Florian Bruhin
2dfc599e3c Interrupt more forcefully with 3 times Ctrl+C. 2014-08-02 00:57:32 +02:00
Florian Bruhin
cdde060135 Call shutdown via a singleShot QTimer. 2014-08-02 00:53:30 +02:00
Florian Bruhin
df0558fb47 Add a --nowindow argument. 2014-08-02 00:47:04 +02:00
Florian Bruhin
9dd688095c Move late shutdown logging out of QApplication. 2014-08-01 23:45:12 +02:00
Florian Bruhin
246cff63ed Use singleShot timer to call QApplication.exit. 2014-08-01 23:26:33 +02:00
Florian Bruhin
b6cd0dd600 Use sys.__stderr__ for faulthandler. 2014-08-01 00:55:18 +02:00
Florian Bruhin
ad1ba4c1f7 Remove eventfilter on shutdown 2014-07-31 23:09:59 +02:00
Florian Bruhin
c27f8b69d6 Trace lines on shutdown with --debug. 2014-07-31 21:21:07 +02:00
Florian Bruhin
682a395936 Shut down tabs while quitting 2014-07-31 20:40:21 +02:00
Florian Bruhin
2358ed7d4c Remove 'Good bye' log 2014-07-31 01:07:43 +02:00
Florian Bruhin
6859ca9301 Fix lint 2014-07-30 18:56:01 +02:00
Florian Bruhin
377706ec54 Handle not found crashlog gracefully 2014-07-30 18:45:56 +02:00
Florian Bruhin
36c4e8940e Remove print we accidentally added. 2014-07-30 18:22:13 +02:00
Florian Bruhin
77ca7db46a Handle early shutdown better 2014-07-30 18:21:40 +02:00
Florian Bruhin
8c78806e1c Shutdown correctly if config is not initialized yet 2014-07-30 18:13:36 +02:00
Florian Bruhin
276315483d Add some more logging to shutdown. 2014-07-30 18:11:35 +02:00
Florian Bruhin
19d0f832ad Handle SIGTERM/SIGINT gracefully. 2014-07-30 18:11:22 +02:00
Florian Bruhin
17220d8ef5 Fix signal imports 2014-07-30 17:50:12 +02:00
Florian Bruhin
11ea911940 Clean up after removing shutdown code 2014-07-30 17:12:20 +02:00
Florian Bruhin
db51a51e5a Add utilcmds and :later command. 2014-07-30 17:05:52 +02:00
Florian Bruhin
cb8af1de31 Merge branch 'shutdown'
Conflicts:
	qutebrowser/widgets/webview.py
2014-07-30 16:39:01 +02:00
Florian Bruhin
425a7fd7c4 Simplify userscript running. 2014-07-29 02:05:15 +02:00
Florian Bruhin
7c8f9bec0f Use enum for keyboard modes. 2014-07-29 00:19:35 +02:00
Florian Bruhin
f86458a3b9 Remove shutdown code 2014-07-27 20:56:42 +02:00
Florian Bruhin
f7304298ab Separate docstrings into command/documentation parts. 2014-07-16 20:09:41 +02:00
Florian Bruhin
4114308193 Log exception on invalid config 2014-07-10 22:39:24 +02:00
Florian Bruhin
0705d6087c Don't catch every ValueError to get failed interpolations 2014-07-10 22:38:09 +02:00
Florian Bruhin
fad22c63d9 Go back to using one NetworkManager per tab 2014-07-10 06:42:52 +02:00
Florian Bruhin
4aab32cc5d Move asking of questions away from Prompt widget 2014-07-02 07:07:03 +02:00
Florian Bruhin
92ff957543 Clean up message API 2014-06-26 07:58:00 +02:00
Florian Bruhin
a083fe69db Add a :report command 2014-06-25 22:22:30 +02:00
Florian Bruhin
f3f04b6f21 Make restart work when frozen 2014-06-24 06:52:49 +02:00
Florian Bruhin
65353773d1 First fix for :restart 2014-06-24 06:43:52 +02:00
Florian Bruhin
b1f9139fd7 Fix lint 2014-06-23 20:33:41 +02:00
Florian Bruhin
81990f792f Avoid using QApplication for downloads 2014-06-23 17:30:28 +02:00
Florian Bruhin
8a8ca0c34f Split utils.misc into utils.{qt,misc} 2014-06-23 07:45:04 +02:00
Florian Bruhin
3443364de1 Fix lint 2014-06-23 07:12:19 +02:00
Florian Bruhin
2690891cbe Better init logging 2014-06-23 06:37:47 +02:00
Florian Bruhin
c21fad491a Don't shut down before crash dialog 2014-06-22 23:57:48 +02:00
Florian Bruhin
bf9e829d4d Don't use .warn on loggers, use .warning instead. 2014-06-22 23:30:44 +02:00
Florian Bruhin
a64775a0f9 Improve logging messages 2014-06-21 22:40:31 +02:00
Florian Bruhin
0dc2ecef46 Check QUrl objects for validity 2014-06-20 23:57:52 +02:00
Florian Bruhin
113221c731 Log some exceptions 2014-06-20 23:26:19 +02:00
Florian Bruhin
03b69c5527 Print debug information if config saving failed. 2014-06-20 22:56:29 +02:00
Florian Bruhin
0fd64419da Remove urlutils.{urlstring,qurl}.
The idea of treating an URL-string and a QUrl as essentially the same data type
got us into all kinds of problems. Now we use QUrl everywhere except at the
borders to the user interface.
2014-06-20 16:33:01 +02:00
Florian Bruhin
d65587128f Add vim modelines to all files. 2014-06-19 09:04:37 +02:00
Florian Bruhin
2b5a1cc322 Add wiget/object list to crash dialog 2014-06-17 23:04:58 +02:00
Florian Bruhin
6cc178aa52 Do some emergency shutdown on an exception. 2014-06-17 22:37:06 +02:00
Florian Bruhin
2388874e82 Delete question if download as cancelled 2014-06-17 11:26:45 +02:00
Florian Bruhin
61e8940ccb Clean up debug methods 2014-06-17 11:12:55 +02:00
Florian Bruhin
1fef2d02b9 Add an :all-objects command and __repr__s 2014-06-17 11:03:42 +02:00
Florian Bruhin
fe99cbc331 Fix crashes after parent-child cleanup. 2014-06-17 10:20:15 +02:00
Florian Bruhin
af9e4ae072 Fix parent/child relationships 2014-06-17 07:17:21 +02:00
Florian Bruhin
17cd86d564 Add an :all-widgets command and useful __repr__s 2014-06-17 06:37:56 +02:00
Florian Bruhin
177e2945b6 Use currying instead of self.sender() where applicable 2014-06-16 22:49:22 +02:00
Florian Bruhin
d76226626f Add debug argument for commands 2014-06-16 09:44:11 +02:00
Florian Bruhin
2114f0cd73 Start adding download model/view 2014-06-12 08:02:44 +02:00
Florian Bruhin
7dd5b1b94e First debugging implementation of downloads 2014-06-10 22:11:17 +02:00
Florian Bruhin
d495ea4644 Move get_qt_args to utils.misc 2014-06-10 11:54:14 +02:00
Florian Bruhin
2f1cd43f9c Change lists to tuples for immutable values 2014-06-06 17:21:35 +02:00
Florian Bruhin
1dbd84b963 Simplify _get_qt_args 2014-06-06 16:44:55 +02:00
Florian Bruhin
1179d84ee8 Process Qt args via argparse 2014-06-06 16:32:57 +02:00
Florian Bruhin
cd8f9e6232 Fix lint 2014-06-05 00:08:08 +02:00
Florian Bruhin
30ce2c98e9 Disable broken :restart for now 2014-06-04 23:17:22 +02:00
Florian Bruhin
da624d54c8 Nicer logging for :restart 2014-06-04 23:09:46 +02:00
Florian Bruhin
af19e6d2e5 Move init to own file qutebrowser.py 2014-06-04 14:11:55 +02:00
Florian Bruhin
104564f6be Init log before creating QApplication 2014-06-04 13:55:46 +02:00
Florian Bruhin
512338d567 Move _parse_args and crash out of Application 2014-06-04 13:51:47 +02:00
Florian Bruhin
57d261ee85 Add a main function to app.py 2014-06-04 13:38:53 +02:00
Florian Bruhin
346ef4ac3d Re-add command argument which was accidentally removed. 2014-06-04 13:37:42 +02:00