Christian Dywan
d3e5d1af23
Connect overflow toolbar bookmark items for nested folder menus
2009-11-17 19:18:14 +01:00
Christian Dywan
7d3b68d797
Set tool button labels to "" to avoid a regression in GTK+
2009-11-16 23:46:03 +01:00
Christian Dywan
8471e76f6a
Follow up preferences refactoring for Mac OSX build
2009-11-16 23:33:32 +01:00
Christian Dywan
e98731de8a
Re-implement g_icon_to_string for Glib 2.20, second attempt
2009-11-16 23:32:02 +01:00
Christian Dywan
8f8a7634e0
Copy g_icon_to_string_tokenized for GIO < 2.20 and include gio.h
2009-11-16 17:52:03 +01:00
Christian Dywan
e686b8655b
Remove unused function katze_preferences_add_option
2009-11-13 23:20:38 +01:00
Christian Dywan
c41d293b9a
Show custom identification/ encoding in tooltip and prefill the entry
2009-11-10 00:36:48 +01:00
Christian Dywan
1c0d18bc06
Implement enumeration proxies with custom entries as well
2009-11-03 18:01:22 +01:00
Christian Dywan
ab4fb18487
Provide an entry for "custom" options in preference proxies
2009-11-03 01:51:21 +01:00
Christian Dywan
219872aa8f
Recognize custom commands with "application" preference proxies
...
Entering commands isn't possible yet but existing commands are
preserved and shown in the combo box.
2009-11-02 22:02:16 +01:00
Christian Dywan
e29e7f62d2
Fix the size of hildon picker buttons to have the correct height
2009-10-31 05:03:20 +01:00
Christian Dywan
8b27f16590
Never span check or picker buttons, only indent them
2009-10-29 00:04:02 +01:00
Christian Dywan
c541a75ae1
Omit property labels if the proxy would have it included already
...
Picker buttons in Hildon contain the label.
2009-10-28 23:57:27 +01:00
Christian Dywan
6a297dd4b3
Introduce MIDORI_TOUCHSCREEN and katze_widget_has_touchscreen_mode
2009-10-28 21:07:13 +01:00
Christian Dywan
cba3abdce9
Generate Hildon picker button or check button proxies as needed
2009-10-27 23:49:12 +01:00
Christian Dywan
0c3609ac14
Don't span preferences from different categories
2009-10-27 23:47:11 +01:00
Christian Dywan
55d735fcf6
Layout preferences with a scrolled and no tabs on Hildon
2009-10-25 19:48:12 +01:00
Christian Dywan
ef67f2539a
Don't shadow type variable in katze_property_proxy
2009-10-22 23:27:58 +02:00
Alexander Butenko
90a4acfc6e
Check the non-existence of folders before creating them
2009-10-20 18:24:24 +02:00
Christian Dywan
cef6532429
Refactor MidoriPreferences into KatzePreferences base class
...
The goal is to get rid of detailed table setups in favour of
automatic alignment with few hints as well as abstracting away
the exact layout to allow reimplementing it in a different form.
2009-10-19 23:15:44 +02:00
Christian Dywan
47c5f15684
Implement combos for choosing applications
2009-10-18 17:25:13 +02:00
Christian Dywan
3fec0a0265
Adjust katze_(foo_)assign to work inside one-line if's
2009-10-16 20:41:35 +02:00
Christian Dywan
c64a4334f6
Only setup drag scrolling events if touchscreen mode is set
...
We assume that touchscreen mode is ususally always set or never set,
so we can avoid the overhead.
2009-10-15 23:47:00 +02:00
Christian Dywan
41385a9e5e
Implement katze_array_find_uri for finding duplicates
2009-10-02 21:27:31 +02:00
Christian Dywan
7a5329a1e0
Count font names added to the list, to fix font combo boxes
2009-09-29 00:08:22 +02:00
Christian Dywan
96093d9067
Implement drag (finger) and kinetic scrolling with KatzeScrolled
...
The feature is primarily interesting for mobile devices and
by default enabled with gtk-touchscreen-mode.
2009-09-28 22:12:41 +02:00
Christian Dywan
19b7271ed1
Disconnect request-queued properly to avoid lots of dialog callbacks
...
The wrong user data argument passed when disconnecting request-queued
would lead to the callback not being disconnected, which led to a
number of dialogs relative to the number of opened websites being spawned.
2009-09-25 22:51:18 +02:00
Christian Dywan
0711bdf64e
Add a check box Remember password to authentication dialogs
2009-09-18 00:51:41 +02:00
Christian Dywan
06bd549cb1
Lookup page icons via javascript
2009-09-16 03:06:09 +02:00
Christian Dywan
668f19c216
Only list variable-/ fixed-width fonts in either combo box
...
Optimize the code a little while we are at it.
2009-09-14 18:26:35 +02:00
Christian Dywan
6ee9436db4
Save logins in a text file instead of a keyring
...
This means GNOME keyring isn't required for saving logins.
2009-09-09 00:33:34 +02:00
Christian Dywan
ccc76f3fc6
libsoup 2.27.91 is good enough for GNOME password manager
2009-09-06 00:58:23 +02:00
Christian Dywan
af86796eab
Use GNOME proxy resolver and GNOME password manager optionally
2009-08-30 04:22:55 +02:00
Christian Dywan
b478db85ab
Enforce icons for webpage menu items and search menu items
2009-07-25 23:06:17 +02:00
Christian Dywan
7192fa38f9
Implement "minimized" views, with a context menu option
...
The flag is saved as meta data of the proxy item. A new signal
meta-data-changed is implemented in KatzeItem to allow the view
to update the tab state as the meta data value is changed.
2009-07-22 01:49:09 +02:00
Christian Dywan
d450e55668
Interprete metadata integer value of -1 as unset also when setting
2009-07-18 16:40:40 +02:00
Christian Dywan
25da412215
Add katze_strip_mnemonics (formerly known as elide_underscores)
2009-07-17 21:29:57 +02:00
Christian Dywan
34c26da9f0
Fix label alignment of tool items created for bookmarks
2009-07-17 17:34:54 +02:00
Christian Dywan
3e80ed6581
Use G_GINT64_FORMAT to convert gint64 to a string
2009-07-09 18:43:08 +01:00
Christian Dywan
7ca782ec54
Implement namespace:key syntax for KatzeItem metadata
2009-07-06 18:53:22 +01:00
Christian Dywan
967b080680
Require meta keys to be non-NULL
2009-07-06 18:30:53 +01:00
Christian Dywan
5d674f9779
Add katze_item_set_meta_string
2009-07-06 18:28:28 +01:00
Christian Dywan
5f4e9ef079
Implement meta data in KatzeItem
...
Now KatzeItem can store arbitrary integers and strings as meta data.
2009-07-05 00:14:09 +01:00
Enrico Tröger
c182e4f788
Disconnect boolean and string property proxy callbacks on destroy
...
This fixes critical warnings seen when opening and closing
multiple windows, which led notification callbacks to be invoked
on invalid widgets.
2009-06-01 03:43:36 +02:00
Christian Dywan
ae945c4269
Create "toggle" property proxies as GtkCheckButton
2009-06-01 02:45:38 +02:00
Christian Dywan
551843da1d
Ensure we remove all items in katze_array_clear
...
Apparently looping through 'all' items isn't sufficient, so now
we remove the very first item until the list is empty.
2009-05-22 02:40:02 +02:00
Christian Dywan
9569a3c060
Provide custom overflow menu items to support middle click
2009-05-15 01:55:11 +02:00
Enrico Tröger
05f403bd54
Fix missing keyboard events for bookmark menu items
2009-05-14 20:52:55 +02:00
Enrico Tröger
ae23ae0583
Implement middle click on array actions, ie. bookmark menu items
...
Add a new signal activate-item-alt to KatzeArrayAction which has
a button argument specifying the mouse button that was pressed. If
this signal is handled one can special case middle or right
clicks, and return TRUE to suppress the emission of activate-item.
The browser utilizes this to open new tabs when middle clicking
on bookmark menu items.
2009-05-03 12:42:47 +02:00
Christian Dywan
44b1590100
Fix saving changes to the Download folder
2009-04-30 01:17:57 +02:00
Dale Whittaker
ffd58a06a8
Implement katze_strv_assign
2009-04-25 16:01:28 +02:00
Christian Dywan
ad82a73ab8
Show only image buttons in Statusbar Features in statusbar
2009-04-17 03:16:37 +02:00
Christian Dywan
eed273b35e
Fix memory leaks in a number of places
2009-04-05 23:46:15 +02:00
Enrico Tröger
529aadc648
Always use WebKit's session in KatzeNet
...
This fixes corruption of expiration dates.
2009-03-31 18:20:31 +02:00
Christian Dywan
fb37688db3
Optimize list iterations in KatzeArray
2009-03-31 03:25:48 +02:00
Christian Dywan
ed2a35d70b
Don't expressly use libkatze in extensions to avoid -fPIC problem
2009-03-30 00:14:43 +02:00
Christian Dywan
32d17cf2c2
Add "move-item" and katze_array_move_item
2009-03-24 23:53:50 +01:00
Christian Dywan
a75a94c388
Merge KatzeArray and KatzeList, we only ever use the array
2009-03-24 01:55:46 +01:00
Christian Dywan
15790565e8
Create cookie jar on startup instead of waiting for an HTTP request
2009-03-24 01:10:15 +01:00
Christian Dywan
530542f07d
Use libSoup unconditionally in KatzeNet
2009-03-16 23:54:45 +01:00
Christian Dywan
a6ac02daf3
Drop libSoup guards in KatzeHTTPAuth and Katze HTTPCookies
2009-03-16 02:20:58 +01:00
Christian Dywan
bc3e1408b7
Check for and link with libm
2009-03-12 18:20:14 +01:00
Christian Dywan
aa181a4a6f
Make the proxy insensitive if the array is unset
2009-03-07 13:58:32 +01:00
Christian Dywan
ff9085b400
Disable WebKit's authentication dialog if needed
...
We need to handle WebKit possibly having an authentication
dialog more expressly. Obviously we only ever want to
see one dialog and we choose our own simply because it
is localized.
2009-02-28 23:46:41 +01:00
Christian Dywan
f2d5d6e29d
Fix build running with libSoup < 2.25.2
2009-02-20 00:53:21 +01:00
Christian Dywan
5aaff908cb
Only add the Auth feature if WebKit didn't already
2009-02-17 18:34:27 +01:00
Christian Dywan
79ed3a06c3
Factor persistent cookies into a soup feature
2009-02-14 04:14:01 +01:00
Christian Dywan
e87f5f2455
Factor HTTP authentication into a soup feature
2009-02-14 02:34:56 +01:00
Christian Dywan
a89a178a05
Implement KatzeSeparatorAction
2009-01-29 00:52:27 +01:00
Christian Dywan
7d3ac8fa37
Move {sokoke,katze}_tree_view_get_selected_iter proper
2009-01-28 01:08:51 +01:00
Christian Dywan
3e18b780ac
Implement katze_item_copy and a virtual method for subclasses
2009-01-26 03:41:12 +01:00
Christian Dywan
5b5e6bd71a
Spare a separate g_file_test, let GdkPixbuf handle missing files
2009-01-23 21:45:40 +01:00
Christian Dywan
c5070bfcac
Correct documentation of katze_object_get_string and _get_enum
2009-01-23 21:41:15 +01:00
Christian Dywan
b7a9d724b0
Add a function to obtain the session from a net
2009-01-15 03:26:15 +01:00
Enrico Tröger
3520fff923
Fix signal prototypes and translation typos
2009-01-12 21:17:38 +01:00
Nick Schermer
b6e33e5399
Implement 'full' debug-level and fix according warnings
2009-01-09 23:56:00 +01:00
Christian Dywan
2c1b05913a
Propagate mime icons from views to proxy items
2009-01-06 02:09:35 +01:00
Christian Dywan
8370b2f2c9
Add a missing return in KatzeNet to fix a crasher
2009-01-06 00:23:09 +01:00
Christian Dywan
aebd813c68
Update Waf to 1.5.2 and update build scripts accordingly
2009-01-05 20:23:56 +01:00
Christian Dywan
ee9e8d77e5
Update Waf to 1.5.1 and update build scripts accordingly
2009-01-04 21:38:06 +01:00
Christian Dywan
6821cb4bd6
Allow for a NULL widget in katze_net_load_icon
2009-01-02 01:38:23 +01:00
Christian Dywan
770b6d9e11
Optimize KatzeArray a little
2008-12-24 04:44:02 +01:00
Christian Dywan
7c3cb9a1bd
Add "parent" property to KatzeItem
2008-12-24 04:07:08 +01:00
James Turner
517e67cc0a
Allow for loading of https favicon files
2008-12-17 22:23:24 +01:00
Christian Dywan
94cb65d6ad
Make proxies for string and boolean properties truly synchronous
2008-12-09 01:23:35 +01:00
Christian Dywan
191a613fc8
Share one session among all KatzeNet instances
2008-12-07 21:36:42 +01:00
Christian Dywan
e1ca9028c7
Remove autotooled build system once and for all
2008-12-04 02:03:11 +01:00
Christian Dywan
8da012bac1
Use blurb as tooltip in katze_property_proxy
2008-12-01 23:39:19 +01:00
Christian Dywan
5806954562
Add katze_object_has_property
2008-12-01 23:33:47 +01:00
Enrico Tröger
417493caa3
Don't use grep in sokoke_get_desktop and fix memory leaks
2008-11-29 00:16:57 +01:00
Christian Dywan
2bc42bfd8d
Remove the page holder from the core
2008-11-25 23:55:54 +01:00
Christian Dywan
03ffd05e0a
Do not load icons other than in tabs
2008-11-20 01:41:58 +01:00
Brian Vuyk
dc59d66eb9
Print file saving errors to the standard output
2008-11-18 23:18:53 +01:00
Christian Dywan
1e6c22d94a
Add more katze_object_get_foo functions
2008-11-18 23:06:02 +01:00
Christian Dywan
3cd50f419b
Introduce a C extension interface
2008-11-18 02:07:53 +01:00
Christian Dywan
d60166aa02
Add katze_get_object
2008-11-18 01:57:33 +01:00
Christian Dywan
4e8236c95c
Use gint64 instead of goffset, the latter is too new
2008-11-18 01:55:49 +01:00
Enrico Tröger
c49ed67ab0
Correct usage of datatypes in a number of places
2008-11-16 01:04:12 +01:00
Enrico Tröger
744f9ce56f
Save files with permissions of 0700 instead of 0755
2008-11-16 00:21:22 +01:00
Brian Vuyk
e019c677bb
Arrange file saving for error handling to fix warnings
2008-11-16 00:10:39 +01:00
Christian Dywan
0c093cb335
Do not load icons automatically everywhere
...
KatzeNet won't attempt to load icons that are not
cached unless the caller provides an icon callback.
For the moment, this means much less loading
for items that are not actually visible, but for
visiting pages or looking at bookmark menus.
2008-11-08 03:24:02 +01:00
Dale Whittaker
0246eeb124
Implement sorting location items by the number of visits
...
For the moment, a define in the code decides whether items
are sorted based on when they were added or how often
a page was visited. The 'visits' property and respective
database column is unused (we keep it for compatibility).
It turns out it's enough to store that information in
the tree model.
The visit based sorting is not enabled because it is
simply delaying startup incredibly. It will have to be
decided whether to introduce a preference, or always use
a visited based sorting once the startup delay is fixed.
History items are also deleted from the tree model now
if they are too old, according to the preference.
2008-11-08 02:39:45 +01:00
Christian Dywan
d1b64e6d48
Fix tab icon alignment and hiding throbber fallback when needed
2008-10-30 22:17:19 +01:00
Christian Dywan
27d5b35f1d
Ellipsize bookmarkbar items reasonably
2008-10-29 04:07:37 +01:00
Enrico Tröger
86af851d4c
Don't doublicate the "." in cached filenames
2008-10-27 22:36:41 +01:00
Christian Dywan
0ca873cb08
Cache icons in memory and fix a redirection crasher bug
2008-10-27 03:03:20 +01:00
Christian Dywan
dc8e8891e7
Correct a missing differentiation between proxy widgets
2008-10-27 03:01:52 +01:00
Christian Dywan
23e784922e
Revamp bookmarkbar items based on KatzeArrayAction
...
Some refactoring in KatzeArrayAction and the addition
of a function to create arbitrary bookmark tool items
allows us to easily revamp the bookmarkbar so that
it finally reflectls changes to the bookmarks,
including adding and removing items.
2008-10-26 22:22:26 +01:00
Christian Dywan
cefcb42eef
Recognize favicons in domains with no trailing slash
2008-10-25 16:16:48 +02:00
Christian Dywan
b53a2ebb37
Finish soup messaging cleanly and free private data
2008-10-24 19:58:58 +02:00
Christian Dywan
5c69e0269d
Implement KatzeNet as a generic URI loader
...
KatzeNet can from now on be used where
URIs are handled and one would have used
libSoup and/ or local file handling as
appropriate, whereas KatzeNet does both.
Since we are displaying icons in several
places KatzeNet also provides an icon
loader that saves us from doublicating
even more code.
All bookmarks and also history items have
icons now, since KatzeNet makes that
incredibly easy.
Search engines are also using favicons
now, and right now custom icons don't
work, we still need to fix that.
Note that only icons are cached, nothing
else and the code is known to have a
hidden, hard to reproduce crasher which
may appear when an icon is newly loaded.
2008-10-24 00:09:12 +02:00
Christian Dywan
53c5bd3c9c
Use fallback stock icon if there is no throbber animation
2008-10-22 00:46:53 +02:00
Christian Dywan
ee3b7a3b51
Finish essential KatzeArrayAction functionality
2008-10-17 23:14:21 +02:00
Christian Dywan
a12f3d10e0
Hitting Return or Enter in a Preferences entry applies it
2008-10-16 20:36:42 +02:00
Dale Whittaker
49a4b00b71
Implement number of days history is saved
...
Note that this will 'break' any existing history
and all dates will suddenly jump the beginning
of the unix epoch.
2008-10-16 01:31:47 +02:00
Christian Dywan
58255d19aa
Do not localize object properties, except WebSettings
...
Property name localization is only useful if the
strings are meant to be used in a user interface,
such as is the case with WebSettings, or for
graphical interface builders, which are not of
our concern, since we don't use Glade and friends
and nobody else is going to use our widgets.
In short, make translation work much easier.
2008-10-15 03:32:11 +02:00
Christian Dywan
c1aff9030f
Add license note to lots of files and add EXPAT file.
2008-10-11 07:27:52 +02:00
Christian Dywan
e1b828edf2
Finish refactoring the toolbar to use only actions
...
Finally the trash, which was the last item that
needed to be implemented as an action, is an
action, a KatzeArrayAction to be exact.
This simplifies more code and also makes Window
and RecentlyVisited generically implementable.
Incidentally this change also fixes a bug where
the browser tried to add a new tab when the last
one was closed, even while destroying itself.
Furthermore sokoke_image_menu_item_ellipsized
and sokoke_widget_popup were promoted to Katze.
We're still keeping the old functions for now.
2008-10-10 22:31:37 +02:00
Christian Dywan
63fc20b6f4
Assign KatzeItem property strings properly
2008-10-07 03:24:27 +02:00
Dale Whittaker
d445745787
Implement navigation history backed by sqlite
...
The implementation relies on KatzeArray for the
most part and only does the storage with sqlite
behind the scenes. The change includes a working
History panel. Changes to the database are
committed in realtime.
2008-10-07 02:19:33 +02:00
Christian Dywan
fb320cc0b6
Finally obsolete KatzeXbelItem
2008-10-01 04:00:16 +02:00
Christian Dywan
4d4df1ed09
Make spin buttons smaller
2008-09-11 01:49:50 +02:00
Arnaud Renevier
cecce23061
Fix doc domment for katze_array_remove_item
2008-09-07 20:31:09 +02:00
Christian Dywan
1d047c4ab5
Factor out katze_xbel_folder_from_data_dirs and _to_data
2008-09-04 00:35:15 +02:00
Christian Dywan
efab194b63
First move towards superseding KatzeXbelItem by KatzeItem
...
The idea is, since we have KatzeItem, KatzeList and KatzeArray
now, except for KatzeXbelItem's loading and saving XBEL the
interface is obsolete.
As a bonus, we actually save the trash again.
2008-08-31 20:48:13 +02:00
Christian Dywan
bf28e1097b
Rework MidoriWebList into KatzeList and KatzeArray
2008-08-26 01:19:38 +02:00
Christian Dywan
af2e90a4b1
Rename MidoriWebItem to KatzeItem
2008-08-23 18:32:53 +02:00
Christian Dywan
a41a0e008e
Move MidoriWebList and MidoriWebItem to Katze
2008-08-05 05:03:05 +02:00
Christian Dywan
f210b90ff9
Tidy up redrawing and notifications in KatzeThrobber
2008-08-02 04:21:38 +02:00
Christian Dywan
970be0bc83
Sort the font combo by font name
2008-07-19 06:15:47 +02:00
Christian Dywan
74dcc3c4db
Fix file choosers for GTk+ < 2.12
2008-07-15 20:01:46 +02:00
Christian Dywan
8600c2591d
Turn KatzeXbelItem into a gobject
2008-06-24 21:47:41 +02:00
Christian Dywan
f9fdf1af63
Merge KatzeThrobberPrivate with KatzeThrobber and hide it
2008-06-12 23:44:34 +02:00
Christian Dywan
13f8171e24
Add Zoom Stepping Value to Preferences
2008-06-08 18:42:39 +02:00
Christian Dywan
95cbba2548
First attempt at a waf build system
2008-05-31 12:04:52 +02:00
Christian Dywan
944defafeb
Use value-changed instead of changed for spin buttons
2008-05-07 19:25:43 +02:00
Christian Dywan
133cd688b9
Initial addon panel feature, only userscripts for now.
2008-04-28 22:38:57 +02:00
Christian Dywan
62cbafe12a
Attempt to fix handling of background and foreground tabs.
2008-04-25 00:20:43 +02:00
Arnaud Renevier
a2aa737677
Add string allocations to avoid freeing of constant strings.
2008-04-24 00:42:41 +02:00
Christian Dywan
1264eb0667
Implement a font combobox and use it for Default Font Family.
2008-04-20 18:13:20 +02:00
Christian Dywan
f98b652996
Fix background tabs, strings and new tab focus.
2008-04-18 02:40:53 +02:00
Christian Dywan
fae6058c26
Focus the web view when opening an URL via the location
2008-04-17 01:58:02 +02:00
Christian Dywan
a9eb81a016
Implement property proxy widget creation.
...
The functions katze_property_proxy and katze_propery_label
can intelligently create widgets that represent properties
of a particular object. This allows for building up a
configuration interface with few to no code dealing with
specific settings.
2008-04-13 21:21:39 +02:00
Christian Dywan
e91d077a84
Enhance Web Settings greatly with new properties.
...
A lot of new properties are added, which are going to
be the basis of the coming configuration replacement.
Also a little cleanup is done in a few places.
2008-04-13 11:36:42 +02:00
Christian Dywan
be89221aea
Implement localization via Gettext.
...
Based on the implementation of localization via Gettext
contributed by Enrico Tröger, a few adjustments were made
to allow Midori to be properly localized. Initially
German is fully supported.
2008-03-22 03:38:23 +01:00
Christian Dywan
e1f62329f1
Initial refactoring work, regressions expected
...
The 'browser' struct is superseded by MidoriBrowser, which actually
represents a window that holds pages, i.e. tabs. The tabs are currently
of the type MidoriWebView, which is a slightly enhanced WebView. Also
MidoriWebSettings is introduced to hold additional settings that Midori
needs.
The other two new classes are MidoriTrash, representing closed tabs and
windows and MidoriPanel, representing the side panel.
The refactoring allows for several features to be much more easily
implemented, such as full support for multiple windows and instant
saving of modified files, such as bookmarks or the session. Regressions
are expected and not everything is done yet.
2008-03-10 22:26:09 +01:00
Christian Dywan
22b277d94b
Implement Add Bookmark and a small panel toolbar
...
Initially new bookmarks can be added. The panel gains a small
toolbar to Add, Edit and Delete items.
Besides a serious bug in the XBEL implementation is fixed and
a number of error checks is added..
2008-01-20 23:07:01 +01:00
Christian Dywan
e94d8c74e8
Cleanup and WebKit API update
2008-01-20 18:05:16 +01:00
Sven Herzberg
2c08ccbef5
Fixed the header of the KatzeThrobber
2008-01-07 16:25:58 +01:00
Christian Dywan
d5a4f4cfd7
Move XBEL implementation to katze.
...
The implementation of XBEL is moved to katze, including the
appropriate api prefix and coding style changes. All relevant
uses are updated.
2008-01-06 01:44:37 +01:00
Christian Dywan
e2328a4bfc
Implement a throbber widget.
...
The throbber is used in the menubar and individual tabs.
Clean infrastructure for private G* extensions is added.
2008-01-05 06:24:38 +01:00