2
Copyright (C) 2008-2010 Christian Dywan <christian@twotoasts.de>
4
This library is free software; you can redistribute it and/or
5
modify it under the terms of the GNU Lesser General Public
6
License as published by the Free Software Foundation; either
7
version 2.1 of the License, or (at your option) any later version.
9
See the file COPYING for the full license text.
12
#include "midori-websettings.h"
16
#include <glib/gi18n.h>
23
#if defined (G_OS_UNIX)
24
#include <sys/utsname.h>
27
struct _MidoriWebSettings
29
WebKitWebSettings parent_instance;
31
gboolean remember_last_window_size : 1;
32
MidoriWindowState last_window_state : 2;
33
gboolean show_menubar : 1;
34
gboolean show_navigationbar : 1;
35
gboolean show_bookmarkbar : 1;
36
gboolean show_panel : 1;
37
gboolean show_transferbar : 1;
38
gboolean show_statusbar : 1;
39
MidoriToolbarStyle toolbar_style : 3;
40
gboolean progress_in_location : 1;
41
gboolean search_engines_in_completion : 1;
42
gboolean compact_sidepanel : 1;
43
gboolean show_panel_controls : 1;
44
gboolean right_align_sidepanel : 1;
45
gboolean open_panels_in_windows : 1;
46
MidoriStartup load_on_startup : 2;
47
gboolean show_crash_dialog : 1;
48
gboolean speed_dial_in_new_tabs : 1;
49
gboolean ask_for_destination_folder : 1;
50
gboolean notify_transfer_completed : 1;
51
MidoriPreferredEncoding preferred_encoding : 3;
52
gboolean always_show_tabbar : 1;
53
gboolean close_buttons_on_tabs : 1;
54
MidoriNewPage open_new_pages_in : 2;
55
MidoriNewPage open_external_pages_in : 2;
56
gboolean middle_click_opens_selection : 1;
57
gboolean open_tabs_in_the_background : 1;
58
gboolean open_tabs_next_to_current : 1;
59
gboolean open_popups_in_tabs : 1;
60
gboolean zoom_text_and_images : 1;
61
gboolean find_while_typing : 1;
62
gboolean kinetic_scrolling : 1;
63
MidoriAcceptCookies accept_cookies : 2;
64
gboolean original_cookies_only : 1;
65
gboolean remember_last_visited_pages : 1;
66
gboolean remember_last_downloaded_files : 1;
67
MidoriProxy proxy_type : 2;
68
MidoriIdentity identify_as : 3;
70
gint last_window_width;
71
gint last_window_height;
72
gint last_panel_position;
75
gint maximum_cookie_age;
76
gint maximum_history_age;
80
gchar* download_folder;
81
gchar* download_manager;
83
gchar* news_aggregator;
84
gchar* location_entry_search;
86
gchar* http_accept_language;
89
gint clear_private_data;
92
struct _MidoriWebSettingsClass
94
WebKitWebSettingsClass parent_class;
97
G_DEFINE_TYPE (MidoriWebSettings, midori_web_settings, WEBKIT_TYPE_WEB_SETTINGS)
103
PROP_REMEMBER_LAST_WINDOW_SIZE,
104
PROP_LAST_WINDOW_WIDTH,
105
PROP_LAST_WINDOW_HEIGHT,
106
PROP_LAST_WINDOW_STATE,
107
PROP_LAST_PANEL_POSITION,
108
PROP_LAST_PANEL_PAGE,
109
PROP_LAST_WEB_SEARCH,
112
PROP_SHOW_NAVIGATIONBAR,
113
PROP_SHOW_BOOKMARKBAR,
115
PROP_SHOW_TRANSFERBAR,
119
PROP_PROGRESS_IN_LOCATION,
120
PROP_SEARCH_ENGINES_IN_COMPLETION,
122
PROP_COMPACT_SIDEPANEL,
123
PROP_SHOW_PANEL_CONTROLS,
124
PROP_RIGHT_ALIGN_SIDEPANEL,
125
PROP_OPEN_PANELS_IN_WINDOWS,
127
PROP_LOAD_ON_STARTUP,
129
PROP_SHOW_CRASH_DIALOG,
130
PROP_SPEED_DIAL_IN_NEW_TABS,
131
PROP_DOWNLOAD_FOLDER,
132
PROP_ASK_FOR_DESTINATION_FOLDER,
133
PROP_NOTIFY_TRANSFER_COMPLETED,
134
PROP_DOWNLOAD_MANAGER,
136
PROP_NEWS_AGGREGATOR,
137
PROP_LOCATION_ENTRY_SEARCH,
138
PROP_PREFERRED_ENCODING,
140
PROP_ALWAYS_SHOW_TABBAR,
141
PROP_CLOSE_BUTTONS_ON_TABS,
142
PROP_OPEN_NEW_PAGES_IN,
143
PROP_OPEN_EXTERNAL_PAGES_IN,
144
PROP_MIDDLE_CLICK_OPENS_SELECTION,
145
PROP_OPEN_TABS_IN_THE_BACKGROUND,
146
PROP_OPEN_TABS_NEXT_TO_CURRENT,
147
PROP_OPEN_POPUPS_IN_TABS,
149
PROP_AUTO_LOAD_IMAGES,
152
PROP_ENABLE_DEVELOPER_EXTRAS,
153
PROP_ENABLE_HTML5_DATABASE,
154
PROP_ENABLE_HTML5_LOCAL_STORAGE,
155
PROP_ENABLE_OFFLINE_WEB_APPLICATION_CACHE,
156
PROP_ENABLE_PAGE_CACHE,
157
PROP_ZOOM_TEXT_AND_IMAGES,
158
PROP_FIND_WHILE_TYPING,
159
PROP_KINETIC_SCROLLING,
161
PROP_MAXIMUM_COOKIE_AGE,
163
PROP_MAXIMUM_HISTORY_AGE,
164
PROP_REMEMBER_LAST_DOWNLOADED_FILES,
170
PROP_PREFERRED_LANGUAGES,
172
PROP_CLEAR_PRIVATE_DATA
176
midori_window_state_get_type (void)
178
static GType type = 0;
181
static const GEnumValue values[] = {
182
{ MIDORI_WINDOW_NORMAL, "MIDORI_WINDOW_NORMAL", "Normal" },
183
{ MIDORI_WINDOW_MINIMIZED, "MIDORI_WINDOW_MINIMIZED", "Minimized" },
184
{ MIDORI_WINDOW_MAXIMIZED, "MIDORI_WINDOW_MAXIMIZED", "Maximized" },
185
{ MIDORI_WINDOW_FULLSCREEN, "MIDORI_WINDOW_FULLSCREEN", "Fullscreen" },
188
type = g_enum_register_static ("MidoriWindowState", values);
194
midori_startup_get_type (void)
196
static GType type = 0;
199
static const GEnumValue values[] = {
200
{ MIDORI_STARTUP_BLANK_PAGE, "MIDORI_STARTUP_BLANK_PAGE", N_("Show Blank page") },
201
{ MIDORI_STARTUP_HOMEPAGE, "MIDORI_STARTUP_HOMEPAGE", N_("Show Homepage") },
202
{ MIDORI_STARTUP_LAST_OPEN_PAGES, "MIDORI_STARTUP_LAST_OPEN_PAGES", N_("Show last open tabs") },
203
{ MIDORI_STARTUP_DELAYED_PAGES, "MIDORI_STARTUP_DELAYED_PAGES", N_("Show last tabs without loading") },
206
type = g_enum_register_static ("MidoriStartup", values);
212
midori_preferred_encoding_get_type (void)
214
static GType type = 0;
217
static const GEnumValue values[] = {
218
{ MIDORI_ENCODING_CHINESE, "MIDORI_ENCODING_CHINESE", N_("Chinese (BIG5)") },
219
{ MIDORI_ENCODING_JAPANESE, "MIDORI_ENCODING_JAPANESE", N_("Japanese (SHIFT_JIS)") },
220
{ MIDORI_ENCODING_KOREAN, "MIDORI_ENCODING_KOREAN", N_("Korean (EUC-KR)") },
221
{ MIDORI_ENCODING_RUSSIAN, "MIDORI_ENCODING_RUSSIAN", N_("Russian (KOI8-R)") },
222
{ MIDORI_ENCODING_UNICODE, "MIDORI_ENCODING_UNICODE", N_("Unicode (UTF-8)") },
223
{ MIDORI_ENCODING_WESTERN, "MIDORI_ENCODING_WESTERN", N_("Western (ISO-8859-1)") },
224
{ MIDORI_ENCODING_CUSTOM, "MIDORI_ENCODING_CUSTOM", N_("Custom...") },
227
type = g_enum_register_static ("MidoriPreferredEncoding", values);
233
midori_new_page_get_type (void)
235
static GType type = 0;
238
static const GEnumValue values[] = {
239
{ MIDORI_NEW_PAGE_TAB, "MIDORI_NEW_PAGE_TAB", N_("New tab") },
240
{ MIDORI_NEW_PAGE_WINDOW, "MIDORI_NEW_PAGE_WINDOW", N_("New window") },
241
{ MIDORI_NEW_PAGE_CURRENT, "MIDORI_NEW_PAGE_CURRENT", N_("Current tab") },
244
type = g_enum_register_static ("MidoriNewPage", values);
250
midori_toolbar_style_get_type (void)
252
static GType type = 0;
255
static const GEnumValue values[] = {
256
{ MIDORI_TOOLBAR_DEFAULT, "MIDORI_TOOLBAR_DEFAULT", N_("Default") },
257
{ MIDORI_TOOLBAR_ICONS, "MIDORI_TOOLBAR_ICONS", N_("Icons") },
258
{ MIDORI_TOOLBAR_SMALL_ICONS, "MIDORI_TOOLBAR_SMALL_ICONS", N_("Small icons") },
259
{ MIDORI_TOOLBAR_TEXT, "MIDORI_TOOLBAR_TEXT", N_("Text") },
260
{ MIDORI_TOOLBAR_BOTH, "MIDORI_TOOLBAR_BOTH", N_("Icons and text") },
261
{ MIDORI_TOOLBAR_BOTH_HORIZ, "MIDORI_TOOLBAR_BOTH_HORIZ", N_("Text beside icons") },
264
type = g_enum_register_static ("MidoriToolbarStyle", values);
270
midori_proxy_get_type (void)
272
static GType type = 0;
275
static const GEnumValue values[] = {
276
{ MIDORI_PROXY_AUTOMATIC, "MIDORI_PROXY_AUTOMATIC", N_("Automatic (GNOME or environment)") },
277
{ MIDORI_PROXY_HTTP, "MIDORI_PROXY_HTTP", N_("HTTP proxy server") },
278
{ MIDORI_PROXY_NONE, "MIDORI_PROXY_NONE", N_("No proxy server") },
281
type = g_enum_register_static ("MidoriProxy", values);
287
midori_accept_cookies_get_type (void)
289
static GType type = 0;
292
static const GEnumValue values[] = {
293
{ MIDORI_ACCEPT_COOKIES_ALL, "MIDORI_ACCEPT_COOKIES_ALL", N_("All cookies") },
294
{ MIDORI_ACCEPT_COOKIES_SESSION, "MIDORI_ACCEPT_COOKIES_SESSION", N_("Session cookies") },
295
{ MIDORI_ACCEPT_COOKIES_NONE, "MIDORI_ACCEPT_COOKIES_NONE", N_("None") },
298
type = g_enum_register_static ("MidoriAcceptCookies", values);
304
midori_identity_get_type (void)
306
static GType type = 0;
309
static const GEnumValue values[] = {
310
{ MIDORI_IDENT_MIDORI, "MIDORI_IDENT_MIDORI", N_("Midori") },
311
{ MIDORI_IDENT_SAFARI, "MIDORI_IDENT_SAFARI", N_("Safari") },
312
{ MIDORI_IDENT_IPHONE, "MIDORI_IDENT_IPHONE", N_("iPhone") },
313
{ MIDORI_IDENT_FIREFOX, "MIDORI_IDENT_FIREFOX", N_("Firefox") },
314
{ MIDORI_IDENT_EXPLORER, "MIDORI_IDENT_EXPLORER", N_("Internet Explorer") },
315
{ MIDORI_IDENT_CUSTOM, "MIDORI_IDENT_CUSTOM", N_("Custom...") },
318
type = g_enum_register_static ("MidoriIdentity", values);
324
midori_web_settings_finalize (GObject* object);
327
midori_web_settings_set_property (GObject* object,
333
midori_web_settings_get_property (GObject* object,
339
midori_get_download_dir (void)
341
const gchar* dir = g_get_user_special_dir (G_USER_DIRECTORY_DOWNLOAD);
344
katze_mkdir_with_parents (dir, 0700);
347
return g_get_home_dir ();
351
midori_web_settings_class_init (MidoriWebSettingsClass* class)
353
GObjectClass* gobject_class;
356
gobject_class = G_OBJECT_CLASS (class);
357
gobject_class->finalize = midori_web_settings_finalize;
358
gobject_class->set_property = midori_web_settings_set_property;
359
gobject_class->get_property = midori_web_settings_get_property;
361
flags = G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS;
363
g_object_class_install_property (gobject_class,
364
PROP_REMEMBER_LAST_WINDOW_SIZE,
365
g_param_spec_boolean (
366
"remember-last-window-size",
367
_("Remember last window size"),
368
_("Whether to save the last window size"),
372
g_object_class_install_property (gobject_class,
373
PROP_LAST_WINDOW_WIDTH,
376
_("Last window width"),
377
_("The last saved window width"),
381
g_object_class_install_property (gobject_class,
382
PROP_LAST_WINDOW_HEIGHT,
384
"last-window-height",
385
_("Last window height"),
386
_("The last saved window height"),
391
* MidoriWebSettings:last-window-state:
393
* The last saved window state.
397
g_object_class_install_property (gobject_class,
398
PROP_LAST_WINDOW_STATE,
402
"The last saved window state",
403
MIDORI_TYPE_WINDOW_STATE,
404
MIDORI_WINDOW_NORMAL,
407
g_object_class_install_property (gobject_class,
408
PROP_LAST_PANEL_POSITION,
410
"last-panel-position",
411
_("Last panel position"),
412
_("The last saved panel position"),
416
g_object_class_install_property (gobject_class,
417
PROP_LAST_PANEL_PAGE,
420
/* i18n: The internal index of the last opened panel */
421
_("Last panel page"),
422
_("The last saved panel page"),
426
g_object_class_install_property (gobject_class,
427
PROP_LAST_WEB_SEARCH,
430
_("Last Web search"),
431
_("The last saved Web search"),
436
g_object_class_install_property (gobject_class,
438
g_param_spec_boolean (
441
_("Whether to show the menubar"),
445
g_object_class_install_property (gobject_class,
446
PROP_SHOW_NAVIGATIONBAR,
447
g_param_spec_boolean (
448
"show-navigationbar",
449
_("Show Navigationbar"),
450
_("Whether to show the navigationbar"),
454
g_object_class_install_property (gobject_class,
455
PROP_SHOW_BOOKMARKBAR,
456
g_param_spec_boolean (
458
_("Show Bookmarkbar"),
459
_("Whether to show the bookmarkbar"),
463
g_object_class_install_property (gobject_class,
465
g_param_spec_boolean (
468
_("Whether to show the panel"),
473
* MidoriWebSettings:show-transferbar:
475
* Whether to show the transferbar.
479
g_object_class_install_property (gobject_class,
480
PROP_SHOW_TRANSFERBAR,
481
g_param_spec_boolean (
483
_("Show Transferbar"),
484
_("Whether to show the transferbar"),
488
g_object_class_install_property (gobject_class,
490
g_param_spec_boolean (
493
_("Whether to show the statusbar"),
498
g_object_class_install_property (gobject_class,
503
_("The style of the toolbar"),
504
MIDORI_TYPE_TOOLBAR_STYLE,
505
MIDORI_TOOLBAR_DEFAULT,
509
* MidoriWebSettings:progress-in-location:
511
* Whether to show loading progress in the location entry.
515
g_object_class_install_property (gobject_class,
516
PROP_PROGRESS_IN_LOCATION,
517
g_param_spec_boolean (
518
"progress-in-location",
519
_("Show progress in location entry"),
520
_("Whether to show loading progress in the location entry"),
525
* MidoriWebSettings:search-engines-in-completion:
527
* Whether to show search engines in the location completion.
531
g_object_class_install_property (gobject_class,
532
PROP_SEARCH_ENGINES_IN_COMPLETION,
533
g_param_spec_boolean (
534
"search-engines-in-completion",
535
_("Search engines in location completion"),
536
_("Whether to show search engines in the location completion"),
540
g_object_class_install_property (gobject_class,
542
g_param_spec_string (
545
_("The items to show on the toolbar"),
546
"TabNew,Back,Forward,Next,ReloadStop,Location,Panel,Search,Trash",
549
g_object_class_install_property (gobject_class,
550
PROP_COMPACT_SIDEPANEL,
551
g_param_spec_boolean (
553
_("Compact Sidepanel"),
554
_("Whether to make the sidepanel compact"),
559
* MidoriWebSettings:show-panel-controls:
561
* Whether to show the operating controls of the panel.
565
g_object_class_install_property (gobject_class,
566
PROP_SHOW_PANEL_CONTROLS,
567
g_param_spec_boolean (
568
"show-panel-controls",
569
_("Show operating controls of the panel"),
570
_("Whether to show the operating controls of the panel"),
575
* MidoriWebSettings:right-sidepanel:
577
* Whether to align the sidepanel on the right.
581
g_object_class_install_property (gobject_class,
582
PROP_RIGHT_ALIGN_SIDEPANEL,
583
g_param_spec_boolean (
584
"right-align-sidepanel",
585
_("Align sidepanel on the right"),
586
_("Whether to align the sidepanel on the right"),
591
* MidoriWebSettings:open-panels-in-window:
593
* Whether to open panels in separate windows.
597
g_object_class_install_property (gobject_class,
598
PROP_OPEN_PANELS_IN_WINDOWS,
599
g_param_spec_boolean (
600
"open-panels-in-windows",
601
_("Open panels in separate windows"),
602
_("Whether to always open panels in separate windows"),
607
g_object_class_install_property (gobject_class,
608
PROP_LOAD_ON_STARTUP,
611
_("When Midori starts:"),
612
_("What to do when Midori starts"),
614
MIDORI_STARTUP_LAST_OPEN_PAGES,
617
g_object_class_install_property (gobject_class,
619
g_param_spec_string (
623
"http://www.google.com",
627
* MidoriWebSettings:show-crash-dialog:
629
* Show a dialog after Midori crashed.
633
g_object_class_install_property (gobject_class,
634
PROP_SHOW_CRASH_DIALOG,
635
g_param_spec_boolean (
637
_("Show crash dialog"),
638
_("Show a dialog after Midori crashed"),
643
* MidoriWebSettings:speed-dial-in-new-tabs:
645
* Show spee dial in newly opened tabs.
649
g_object_class_install_property (gobject_class,
650
PROP_SPEED_DIAL_IN_NEW_TABS,
651
g_param_spec_boolean (
652
"speed-dial-in-new-tabs",
653
/* i18n: Speed dial, webpage shortcuts, named for the phone function */
654
_("Show speed dial in new tabs"),
655
_("Show speed dial in newly opened tabs"),
659
g_object_class_install_property (gobject_class,
660
PROP_DOWNLOAD_FOLDER,
661
g_param_spec_string (
663
_("Save downloaded files to:"),
664
_("The folder downloaded files are saved to"),
665
midori_get_download_dir (),
666
#if WEBKIT_CHECK_VERSION (1, 1, 3)
669
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
673
* MidoriWebSettings:ask-for-destination-folder:
675
* Whether to ask for the destination folder when downloading a file.
677
* Note: Only since 0.2.0 is this value actually used.
681
g_object_class_install_property (gobject_class,
682
PROP_ASK_FOR_DESTINATION_FOLDER,
683
g_param_spec_boolean (
684
"ask-for-destination-folder",
685
_("Ask for the destination folder"),
686
_("Whether to ask for the destination folder when downloading a file"),
688
#if WEBKIT_CHECK_VERSION (1, 1, 15)
691
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
695
* MidoriWebSettings:notify-transfer-completed:
697
* Whether to show a notification when a transfer has been completed.
701
g_object_class_install_property (gobject_class,
702
PROP_NOTIFY_TRANSFER_COMPLETED,
703
g_param_spec_boolean (
704
"notify-transfer-completed",
705
_("Notify when a transfer has been completed"),
706
_("Whether to show a notification when a transfer has been completed"),
708
#if WEBKIT_CHECK_VERSION (1, 1, 3)
711
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
714
g_object_class_install_property (gobject_class,
715
PROP_DOWNLOAD_MANAGER,
716
g_param_spec_string (
718
_("Download Manager"),
719
_("An external download manager"),
723
g_object_class_install_property (gobject_class,
725
g_param_spec_string (
728
_("An external text editor"),
733
* MidoriWebSettings:news-aggregator:
735
* An external news aggregator.
739
g_object_class_install_property (gobject_class,
740
PROP_NEWS_AGGREGATOR,
741
g_param_spec_string (
743
_("News Aggregator"),
744
_("An external news aggregator"),
748
g_object_class_install_property (gobject_class,
749
PROP_LOCATION_ENTRY_SEARCH,
750
g_param_spec_string (
751
"location-entry-search",
752
_("Location entry Search"),
753
_("The search to perform inside the location entry"),
757
g_object_class_install_property (gobject_class,
758
PROP_PREFERRED_ENCODING,
760
"preferred-encoding",
761
_("Preferred Encoding"),
762
_("The preferred character encoding"),
763
MIDORI_TYPE_PREFERRED_ENCODING,
764
MIDORI_ENCODING_WESTERN,
768
g_object_class_install_property (gobject_class,
769
PROP_ALWAYS_SHOW_TABBAR,
770
g_param_spec_boolean (
771
"always-show-tabbar",
772
_("Always Show Tabbar"),
773
_("Always show the tabbar"),
777
g_object_class_install_property (gobject_class,
778
PROP_CLOSE_BUTTONS_ON_TABS,
779
g_param_spec_boolean (
780
"close-buttons-on-tabs",
781
_("Close Buttons on Tabs"),
782
_("Whether tabs have close buttons"),
786
g_object_class_install_property (gobject_class,
787
PROP_OPEN_NEW_PAGES_IN,
790
_("Open new pages in:"),
791
_("Where to open new pages"),
792
MIDORI_TYPE_NEW_PAGE,
796
g_object_class_install_property (gobject_class,
797
PROP_OPEN_EXTERNAL_PAGES_IN,
799
"open-external-pages-in",
800
_("Open external pages in:"),
801
_("Where to open externally opened pages"),
802
MIDORI_TYPE_NEW_PAGE,
806
g_object_class_install_property (gobject_class,
807
PROP_MIDDLE_CLICK_OPENS_SELECTION,
808
g_param_spec_boolean (
809
"middle-click-opens-selection",
810
_("Middle click opens Selection"),
811
_("Load an address from the selection via middle click"),
815
g_object_class_install_property (gobject_class,
816
PROP_OPEN_TABS_IN_THE_BACKGROUND,
817
g_param_spec_boolean (
818
"open-tabs-in-the-background",
819
_("Open tabs in the background"),
820
_("Whether to open new tabs in the background"),
824
g_object_class_install_property (gobject_class,
825
PROP_OPEN_TABS_NEXT_TO_CURRENT,
826
g_param_spec_boolean (
827
"open-tabs-next-to-current",
828
_("Open Tabs next to Current"),
829
_("Whether to open new tabs next to the current tab or after the last one"),
833
g_object_class_install_property (gobject_class,
834
PROP_OPEN_POPUPS_IN_TABS,
835
g_param_spec_boolean (
836
"open-popups-in-tabs",
837
_("Open popups in tabs"),
838
_("Whether to open popup windows in tabs"),
843
/* Override properties to localize them for preference proxies */
844
g_object_class_install_property (gobject_class,
845
PROP_AUTO_LOAD_IMAGES,
846
g_param_spec_boolean (
848
_("Load images automatically"),
849
_("Load and display images automatically"),
852
g_object_class_install_property (gobject_class,
854
g_param_spec_boolean (
857
_("Enable embedded scripting languages"),
860
g_object_class_install_property (gobject_class,
862
g_param_spec_boolean (
864
_("Enable Netscape plugins"),
865
_("Enable embedded Netscape plugin objects"),
868
/* Override properties to override defaults */
869
g_object_class_install_property (gobject_class,
870
PROP_ENABLE_DEVELOPER_EXTRAS,
871
g_param_spec_boolean (
872
"enable-developer-extras",
873
"Enable developer tools",
874
"Enable special extensions for developers",
877
#if WEBKIT_CHECK_VERSION (1, 1, 8)
878
g_object_class_install_property (gobject_class,
879
PROP_ENABLE_HTML5_DATABASE,
880
g_param_spec_boolean ("enable-html5-database",
881
_("Enable HTML5 database support"),
882
_("Whether to enable HTML5 database support"),
885
g_object_class_install_property (gobject_class,
886
PROP_ENABLE_HTML5_LOCAL_STORAGE,
887
g_param_spec_boolean ("enable-html5-local-storage",
888
_("Enable HTML5 local storage support"),
889
_("Whether to enable HTML5 local storage support"),
893
#if WEBKIT_CHECK_VERSION (1, 1, 13)
894
g_object_class_install_property (gobject_class,
895
PROP_ENABLE_OFFLINE_WEB_APPLICATION_CACHE,
896
g_param_spec_boolean ("enable-offline-web-application-cache",
897
_("Enable offline web application cache"),
898
_("Whether to enable offline web application cache"),
902
#if WEBKIT_CHECK_VERSION (1, 1, 18)
903
g_object_class_install_property (gobject_class,
904
PROP_ENABLE_PAGE_CACHE,
905
g_param_spec_boolean ("enable-page-cache",
907
"Whether the page cache should be used",
913
* MidoriWebSettings:zoom-text-and-images:
915
* Whether to zoom text and images.
919
g_object_class_install_property (gobject_class,
920
PROP_ZOOM_TEXT_AND_IMAGES,
921
g_param_spec_boolean (
922
"zoom-text-and-images",
923
_("Zoom Text and Images"),
924
_("Whether to zoom text and images"),
929
* MidoriWebSettings:find-while-typing:
931
* Whether to automatically find inline while typing something.
935
g_object_class_install_property (gobject_class,
936
PROP_FIND_WHILE_TYPING,
937
g_param_spec_boolean (
939
_("Find inline while typing"),
940
_("Whether to automatically find inline while typing"),
945
* MidoriWebSettings:kinetic-scrolling:
947
* Whether scrolling should kinetically move according to speed.
951
g_object_class_install_property (gobject_class,
952
PROP_KINETIC_SCROLLING,
953
g_param_spec_boolean (
955
_("Kinetic scrolling"),
956
_("Whether scrolling should kinetically move according to speed"),
960
g_object_class_install_property (gobject_class,
965
_("What type of cookies to accept"),
966
MIDORI_TYPE_ACCEPT_COOKIES,
967
MIDORI_ACCEPT_COOKIES_ALL,
970
g_object_class_install_property (gobject_class,
971
PROP_MAXIMUM_COOKIE_AGE,
973
"maximum-cookie-age",
974
_("Maximum cookie age"),
975
_("The maximum number of days to save cookies for"),
980
g_object_class_install_property (gobject_class,
981
PROP_MAXIMUM_HISTORY_AGE,
983
"maximum-history-age",
984
_("Maximum history age"),
985
_("The maximum number of days to save the history for"),
989
g_object_class_install_property (gobject_class,
990
PROP_REMEMBER_LAST_DOWNLOADED_FILES,
991
g_param_spec_boolean (
992
"remember-last-downloaded-files",
993
_("Remember last downloaded files"),
994
_("Whether the last downloaded files are saved"),
1001
* MidoriWebSettings:proxy-type:
1003
* The type of proxy server to use.
1007
g_object_class_install_property (gobject_class,
1012
_("The type of proxy server to use"),
1014
MIDORI_PROXY_AUTOMATIC,
1017
g_object_class_install_property (gobject_class,
1019
g_param_spec_string (
1021
_("HTTP Proxy Server"),
1022
_("The proxy server used for HTTP connections"),
1027
* MidoriWebSettings:identify-as:
1029
* What to identify as to web pages.
1033
g_object_class_install_property (gobject_class,
1037
/* i18n: This refers to an application, not the 'user agent' string */
1039
_("What to identify as to web pages"),
1040
MIDORI_TYPE_IDENTITY,
1041
MIDORI_IDENT_MIDORI,
1045
* MidoriWebSettings:user-agent:
1047
* The browser identification string.
1051
g_object_class_install_property (gobject_class,
1053
g_param_spec_string (
1055
_("Identification string"),
1056
_("The application identification string"),
1061
* MidoriWebSettings:preferred-languages:
1063
* A comma separated list of languages preferred for rendering multilingual webpages.
1067
g_object_class_install_property (gobject_class,
1068
PROP_PREFERRED_LANGUAGES,
1069
g_param_spec_string (
1070
"preferred-languages",
1071
_("Preferred languages"),
1072
_("A comma separated list of languages preferred for rendering multilingual webpages, for example \"de\", \"ru,nl\" or \"en-us;q=1.0, fr-fr;q=0.667\""),
1077
* MidoriWebSettings:clear-private-data:
1079
* The private data selected for deletion.
1083
g_object_class_install_property (gobject_class,
1084
PROP_CLEAR_PRIVATE_DATA,
1086
"clear-private-data",
1087
_("Clear private data"),
1088
_("The private data selected for deletion"),
1095
notify_default_encoding_cb (GObject* object,
1098
MidoriWebSettings* web_settings;
1100
const gchar* encoding;
1102
web_settings = MIDORI_WEB_SETTINGS (object);
1104
g_object_get (object, "default-encoding", &string, NULL);
1105
encoding = string ? string : "";
1106
if (!strcmp (encoding, "BIG5"))
1107
web_settings->preferred_encoding = MIDORI_ENCODING_CHINESE;
1108
else if (!strcmp (encoding, "SHIFT_JIS"))
1109
web_settings->preferred_encoding = MIDORI_ENCODING_JAPANESE;
1110
else if (!strcmp (encoding, "EUC-KR"))
1111
web_settings->preferred_encoding = MIDORI_ENCODING_KOREAN;
1112
else if (!strcmp (encoding, "KOI8-R"))
1113
web_settings->preferred_encoding = MIDORI_ENCODING_RUSSIAN;
1114
else if (!strcmp (encoding, "UTF-8"))
1115
web_settings->preferred_encoding = MIDORI_ENCODING_UNICODE;
1116
else if (!strcmp (encoding, "ISO-8859-1"))
1117
web_settings->preferred_encoding = MIDORI_ENCODING_WESTERN;
1119
web_settings->preferred_encoding = MIDORI_ENCODING_CUSTOM;
1121
g_object_notify (object, "preferred-encoding");
1125
midori_web_settings_init (MidoriWebSettings* web_settings)
1127
web_settings->notify_transfer_completed = TRUE;
1128
web_settings->download_folder = g_strdup (midori_get_download_dir ());
1129
web_settings->http_proxy = NULL;
1130
web_settings->show_panel_controls = TRUE;
1131
web_settings->open_popups_in_tabs = TRUE;
1132
web_settings->remember_last_downloaded_files = TRUE;
1133
web_settings->kinetic_scrolling = TRUE;
1135
g_signal_connect (web_settings, "notify::default-encoding",
1136
G_CALLBACK (notify_default_encoding_cb), NULL);
1140
midori_web_settings_finalize (GObject* object)
1142
MidoriWebSettings* web_settings;
1144
web_settings = MIDORI_WEB_SETTINGS (object);
1146
katze_assign (web_settings->toolbar_items, NULL);
1147
katze_assign (web_settings->homepage, NULL);
1148
katze_assign (web_settings->download_folder, NULL);
1149
katze_assign (web_settings->download_manager, NULL);
1150
katze_assign (web_settings->text_editor, NULL);
1151
katze_assign (web_settings->news_aggregator, NULL);
1152
katze_assign (web_settings->location_entry_search, NULL);
1153
katze_assign (web_settings->http_proxy, NULL);
1154
katze_assign (web_settings->ident_string, NULL);
1156
G_OBJECT_CLASS (midori_web_settings_parent_class)->finalize (object);
1159
#if defined (G_OS_UNIX) && !HAVE_OSX
1163
static gchar* sys_name = NULL;
1167
struct utsname name;
1168
if (uname (&name) != -1)
1169
sys_name = g_strdup(name.sysname);
1178
generate_ident_string (MidoriIdentity identify_as)
1180
const gchar* platform =
1181
#ifdef GDK_WINDOWING_X11
1183
#elif defined(GDK_WINDOWING_WIN32)
1185
#elif defined(GDK_WINDOWING_QUARTZ)
1187
#elif defined(GDK_WINDOWING_DIRECTFB)
1196
#elif defined (G_OS_UNIX)
1198
#elif defined (G_OS_WIN32)
1204
const gchar* appname = "Midori/"
1205
G_STRINGIFY (MIDORI_MAJOR_VERSION) "."
1206
G_STRINGIFY (MIDORI_MINOR_VERSION);
1208
const gchar* lang = pango_language_to_string (gtk_get_default_language ());
1210
#ifndef WEBKIT_USER_AGENT_MAJOR_VERSION
1211
#define WEBKIT_USER_AGENT_MAJOR_VERSION 532
1212
#define WEBKIT_USER_AGENT_MINOR_VERSION 1
1214
const int webcore_major = WEBKIT_USER_AGENT_MAJOR_VERSION;
1215
const int webcore_minor = WEBKIT_USER_AGENT_MINOR_VERSION;
1217
switch (identify_as)
1219
case MIDORI_IDENT_MIDORI:
1220
return g_strdup_printf ("%s (%s; %s; U; %s) WebKit/%d.%d+",
1221
appname, platform, os, lang, webcore_major, webcore_minor);
1222
case MIDORI_IDENT_SAFARI:
1223
return g_strdup_printf ("Mozilla/5.0 (%s; U; %s; %s) "
1224
"AppleWebKit/%d+ (KHTML, like Gecko) Safari/%d.%d+ %s",
1225
platform, os, lang, webcore_major, webcore_major, webcore_minor, appname);
1226
case MIDORI_IDENT_IPHONE:
1227
return g_strdup_printf ("Mozilla/5.0 (iPhone; U; %s; %s) "
1228
"AppleWebKit/532+ (KHTML, like Gecko) Version/3.0 Mobile/1A538b "
1231
case MIDORI_IDENT_FIREFOX:
1232
return g_strdup_printf ("Mozilla/5.0 (%s; U; %s; %s; rv:1.9.0.2) "
1233
"Gecko/2008092313 Firefox/3.8 %s",
1234
platform, os, lang, appname);
1235
case MIDORI_IDENT_EXPLORER:
1236
return g_strdup_printf ("Mozilla/4.0 (compatible; "
1237
"MSIE 6.0; Windows NT 5.1; %s) %s",
1240
return g_strdup_printf ("%s", appname);
1245
midori_web_settings_set_property (GObject* object,
1247
const GValue* value,
1250
MidoriWebSettings* web_settings = MIDORI_WEB_SETTINGS (object);
1254
case PROP_REMEMBER_LAST_WINDOW_SIZE:
1255
web_settings->remember_last_window_size = g_value_get_boolean (value);
1257
case PROP_LAST_WINDOW_WIDTH:
1258
web_settings->last_window_width = g_value_get_int (value);
1260
case PROP_LAST_WINDOW_HEIGHT:
1261
web_settings->last_window_height = g_value_get_int (value);
1263
case PROP_LAST_WINDOW_STATE:
1264
web_settings->last_window_state = g_value_get_enum (value);
1266
case PROP_LAST_PANEL_POSITION:
1267
web_settings->last_panel_position = g_value_get_int (value);
1269
case PROP_LAST_PANEL_PAGE:
1270
web_settings->last_panel_page = g_value_get_int (value);
1272
case PROP_LAST_WEB_SEARCH:
1273
web_settings->last_web_search = g_value_get_int (value);
1276
case PROP_SHOW_MENUBAR:
1277
web_settings->show_menubar = g_value_get_boolean (value);
1279
case PROP_SHOW_NAVIGATIONBAR:
1280
web_settings->show_navigationbar = g_value_get_boolean (value);
1282
case PROP_SHOW_BOOKMARKBAR:
1283
web_settings->show_bookmarkbar = g_value_get_boolean (value);
1285
case PROP_SHOW_PANEL:
1286
web_settings->show_panel = g_value_get_boolean (value);
1288
case PROP_SHOW_TRANSFERBAR:
1289
web_settings->show_transferbar = g_value_get_boolean (value);
1291
case PROP_SHOW_STATUSBAR:
1292
web_settings->show_statusbar = g_value_get_boolean (value);
1295
case PROP_TOOLBAR_STYLE:
1296
web_settings->toolbar_style = g_value_get_enum (value);
1298
case PROP_PROGRESS_IN_LOCATION:
1299
web_settings->progress_in_location = g_value_get_boolean (value);
1301
case PROP_SEARCH_ENGINES_IN_COMPLETION:
1302
web_settings->search_engines_in_completion = g_value_get_boolean (value);
1304
case PROP_TOOLBAR_ITEMS:
1305
katze_assign (web_settings->toolbar_items, g_value_dup_string (value));
1307
case PROP_COMPACT_SIDEPANEL:
1308
web_settings->compact_sidepanel = g_value_get_boolean (value);
1310
case PROP_SHOW_PANEL_CONTROLS:
1311
web_settings->show_panel_controls = g_value_get_boolean (value);
1313
case PROP_RIGHT_ALIGN_SIDEPANEL:
1314
web_settings->right_align_sidepanel = g_value_get_boolean (value);
1316
case PROP_OPEN_PANELS_IN_WINDOWS:
1317
web_settings->open_panels_in_windows = g_value_get_boolean (value);
1320
case PROP_LOAD_ON_STARTUP:
1321
web_settings->load_on_startup = g_value_get_enum (value);
1324
katze_assign (web_settings->homepage, g_value_dup_string (value));
1326
case PROP_SHOW_CRASH_DIALOG:
1327
web_settings->show_crash_dialog = g_value_get_boolean (value);
1329
case PROP_SPEED_DIAL_IN_NEW_TABS:
1330
web_settings->speed_dial_in_new_tabs = g_value_get_boolean (value);
1332
case PROP_DOWNLOAD_FOLDER:
1333
katze_assign (web_settings->download_folder, g_value_dup_string (value));
1335
case PROP_ASK_FOR_DESTINATION_FOLDER:
1336
web_settings->ask_for_destination_folder = g_value_get_boolean (value);
1338
case PROP_NOTIFY_TRANSFER_COMPLETED:
1339
web_settings->notify_transfer_completed = g_value_get_boolean (value);
1341
case PROP_DOWNLOAD_MANAGER:
1342
katze_assign (web_settings->download_manager, g_value_dup_string (value));
1344
case PROP_TEXT_EDITOR:
1345
katze_assign (web_settings->text_editor, g_value_dup_string (value));
1347
case PROP_NEWS_AGGREGATOR:
1348
katze_assign (web_settings->news_aggregator, g_value_dup_string (value));
1350
case PROP_LOCATION_ENTRY_SEARCH:
1351
katze_assign (web_settings->location_entry_search, g_value_dup_string (value));
1353
case PROP_PREFERRED_ENCODING:
1354
web_settings->preferred_encoding = g_value_get_enum (value);
1355
switch (web_settings->preferred_encoding)
1357
case MIDORI_ENCODING_CHINESE:
1358
g_object_set (object, "default-encoding", "BIG5", NULL);
1360
case MIDORI_ENCODING_JAPANESE:
1361
g_object_set (object, "default-encoding", "SHIFT_JIS", NULL);
1363
case MIDORI_ENCODING_KOREAN:
1364
g_object_set (object, "default-encoding", "EUC-KR", NULL);
1366
case MIDORI_ENCODING_RUSSIAN:
1367
g_object_set (object, "default-encoding", "KOI8-R", NULL);
1369
case MIDORI_ENCODING_UNICODE:
1370
g_object_set (object, "default-encoding", "UTF-8", NULL);
1372
case MIDORI_ENCODING_WESTERN:
1373
g_object_set (object, "default-encoding", "ISO-8859-1", NULL);
1375
case MIDORI_ENCODING_CUSTOM:
1376
g_object_set (object, "default-encoding", "", NULL);
1380
case PROP_ALWAYS_SHOW_TABBAR:
1381
web_settings->always_show_tabbar = g_value_get_boolean (value);
1383
case PROP_CLOSE_BUTTONS_ON_TABS:
1384
web_settings->close_buttons_on_tabs = g_value_get_boolean (value);
1386
case PROP_OPEN_NEW_PAGES_IN:
1387
web_settings->open_new_pages_in = g_value_get_enum (value);
1389
case PROP_OPEN_EXTERNAL_PAGES_IN:
1390
web_settings->open_external_pages_in = g_value_get_enum (value);
1392
case PROP_MIDDLE_CLICK_OPENS_SELECTION:
1393
web_settings->middle_click_opens_selection = g_value_get_boolean (value);
1395
case PROP_OPEN_TABS_IN_THE_BACKGROUND:
1396
web_settings->open_tabs_in_the_background = g_value_get_boolean (value);
1398
case PROP_OPEN_TABS_NEXT_TO_CURRENT:
1399
web_settings->open_tabs_next_to_current = g_value_get_boolean (value);
1401
case PROP_OPEN_POPUPS_IN_TABS:
1402
web_settings->open_popups_in_tabs = g_value_get_boolean (value);
1405
case PROP_AUTO_LOAD_IMAGES:
1406
g_object_set (web_settings, "WebKitWebSettings::auto-load-images",
1407
g_value_get_boolean (value), NULL);
1409
case PROP_ENABLE_SCRIPTS:
1410
g_object_set (web_settings, "WebKitWebSettings::enable-scripts",
1411
g_value_get_boolean (value), NULL);
1413
case PROP_ENABLE_PLUGINS:
1414
g_object_set (web_settings, "WebKitWebSettings::enable-plugins",
1415
g_value_get_boolean (value), NULL);
1417
case PROP_ENABLE_DEVELOPER_EXTRAS:
1418
g_object_set (web_settings, "WebKitWebSettings::enable-developer-extras",
1419
g_value_get_boolean (value), NULL);
1421
#if WEBKIT_CHECK_VERSION (1, 1, 8)
1422
case PROP_ENABLE_HTML5_DATABASE:
1423
g_object_set (web_settings, "WebKitWebSettings::enable-html5-database",
1424
g_value_get_boolean (value), NULL);
1426
case PROP_ENABLE_HTML5_LOCAL_STORAGE:
1427
g_object_set (web_settings, "WebKitWebSettings::enable-html5-local-storage",
1428
g_value_get_boolean (value), NULL);
1431
#if WEBKIT_CHECK_VERSION (1, 1, 13)
1432
case PROP_ENABLE_OFFLINE_WEB_APPLICATION_CACHE:
1433
g_object_set (web_settings, "WebKitWebSettings::enable-offline-web-application-cache",
1434
g_value_get_boolean (value), NULL);
1437
#if WEBKIT_CHECK_VERSION (1, 1, 18)
1438
case PROP_ENABLE_PAGE_CACHE:
1439
g_object_set (web_settings, "WebKitWebSettings::enable-page-cache",
1440
g_value_get_boolean (value), NULL);
1443
case PROP_ZOOM_TEXT_AND_IMAGES:
1444
web_settings->zoom_text_and_images = g_value_get_boolean (value);
1446
case PROP_FIND_WHILE_TYPING:
1447
web_settings->find_while_typing = g_value_get_boolean (value);
1449
case PROP_KINETIC_SCROLLING:
1450
web_settings->kinetic_scrolling = g_value_get_boolean (value);
1452
case PROP_ACCEPT_COOKIES:
1453
web_settings->accept_cookies = g_value_get_enum (value);
1455
case PROP_MAXIMUM_COOKIE_AGE:
1456
web_settings->maximum_cookie_age = g_value_get_int (value);
1459
case PROP_MAXIMUM_HISTORY_AGE:
1460
web_settings->maximum_history_age = g_value_get_int (value);
1462
case PROP_REMEMBER_LAST_DOWNLOADED_FILES:
1463
web_settings->remember_last_downloaded_files = g_value_get_boolean (value);
1466
case PROP_PROXY_TYPE:
1467
web_settings->proxy_type = g_value_get_enum (value);
1469
case PROP_HTTP_PROXY:
1470
katze_assign (web_settings->http_proxy, g_value_dup_string (value));
1472
case PROP_IDENTIFY_AS:
1473
web_settings->identify_as = g_value_get_enum (value);
1474
if (web_settings->identify_as != MIDORI_IDENT_CUSTOM)
1476
gchar* string = generate_ident_string (web_settings->identify_as);
1477
katze_assign (web_settings->ident_string, string);
1478
#if WEBKIT_CHECK_VERSION (1, 1, 11)
1479
g_object_set (web_settings, "user-agent", string, NULL);
1481
g_object_notify (object, "user-agent");
1485
case PROP_USER_AGENT:
1486
if (web_settings->identify_as == MIDORI_IDENT_CUSTOM)
1487
katze_assign (web_settings->ident_string, g_value_dup_string (value));
1488
#if WEBKIT_CHECK_VERSION (1, 1, 11)
1489
g_object_set (web_settings, "WebKitWebSettings::user-agent",
1490
web_settings->ident_string, NULL);
1493
case PROP_PREFERRED_LANGUAGES:
1494
katze_assign (web_settings->http_accept_language, g_value_dup_string (value));
1496
case PROP_CLEAR_PRIVATE_DATA:
1497
web_settings->clear_private_data = g_value_get_int (value);
1500
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
1506
midori_web_settings_get_property (GObject* object,
1511
MidoriWebSettings* web_settings = MIDORI_WEB_SETTINGS (object);
1515
case PROP_REMEMBER_LAST_WINDOW_SIZE:
1516
g_value_set_boolean (value, web_settings->remember_last_window_size);
1518
case PROP_LAST_WINDOW_WIDTH:
1519
g_value_set_int (value, web_settings->last_window_width);
1521
case PROP_LAST_WINDOW_HEIGHT:
1522
g_value_set_int (value, web_settings->last_window_height);
1524
case PROP_LAST_WINDOW_STATE:
1525
g_value_set_enum (value, web_settings->last_window_state);
1527
case PROP_LAST_PANEL_POSITION:
1528
g_value_set_int (value, web_settings->last_panel_position);
1530
case PROP_LAST_PANEL_PAGE:
1531
g_value_set_int (value, web_settings->last_panel_page);
1533
case PROP_LAST_WEB_SEARCH:
1534
g_value_set_int (value, web_settings->last_web_search);
1537
case PROP_SHOW_MENUBAR:
1538
g_value_set_boolean (value, web_settings->show_menubar);
1540
case PROP_SHOW_NAVIGATIONBAR:
1541
g_value_set_boolean (value, web_settings->show_navigationbar);
1543
case PROP_SHOW_BOOKMARKBAR:
1544
g_value_set_boolean (value, web_settings->show_bookmarkbar);
1546
case PROP_SHOW_PANEL:
1547
g_value_set_boolean (value, web_settings->show_panel);
1549
case PROP_SHOW_TRANSFERBAR:
1550
g_value_set_boolean (value, web_settings->show_transferbar);
1552
case PROP_SHOW_STATUSBAR:
1553
g_value_set_boolean (value, web_settings->show_statusbar);
1556
case PROP_TOOLBAR_STYLE:
1557
g_value_set_enum (value, web_settings->toolbar_style);
1559
case PROP_PROGRESS_IN_LOCATION:
1560
g_value_set_boolean (value, web_settings->progress_in_location);
1562
case PROP_SEARCH_ENGINES_IN_COMPLETION:
1563
g_value_set_boolean (value, web_settings->search_engines_in_completion);
1565
case PROP_TOOLBAR_ITEMS:
1566
g_value_set_string (value, web_settings->toolbar_items);
1568
case PROP_COMPACT_SIDEPANEL:
1569
g_value_set_boolean (value, web_settings->compact_sidepanel);
1571
case PROP_SHOW_PANEL_CONTROLS:
1572
g_value_set_boolean (value, web_settings->show_panel_controls);
1574
case PROP_RIGHT_ALIGN_SIDEPANEL:
1575
g_value_set_boolean (value, web_settings->right_align_sidepanel);
1577
case PROP_OPEN_PANELS_IN_WINDOWS:
1578
g_value_set_boolean (value, web_settings->open_panels_in_windows);
1581
case PROP_LOAD_ON_STARTUP:
1582
g_value_set_enum (value, web_settings->load_on_startup);
1585
g_value_set_string (value, web_settings->homepage);
1587
case PROP_SHOW_CRASH_DIALOG:
1588
g_value_set_boolean (value, web_settings->show_crash_dialog);
1590
case PROP_SPEED_DIAL_IN_NEW_TABS:
1591
g_value_set_boolean (value, web_settings->speed_dial_in_new_tabs);
1593
case PROP_DOWNLOAD_FOLDER:
1594
g_value_set_string (value, web_settings->download_folder);
1596
case PROP_ASK_FOR_DESTINATION_FOLDER:
1597
g_value_set_boolean (value, web_settings->ask_for_destination_folder);
1599
case PROP_NOTIFY_TRANSFER_COMPLETED:
1600
g_value_set_boolean (value, web_settings->notify_transfer_completed);
1602
case PROP_DOWNLOAD_MANAGER:
1603
g_value_set_string (value, web_settings->download_manager);
1605
case PROP_TEXT_EDITOR:
1606
g_value_set_string (value, web_settings->text_editor);
1608
case PROP_NEWS_AGGREGATOR:
1609
g_value_set_string (value, web_settings->news_aggregator);
1611
case PROP_LOCATION_ENTRY_SEARCH:
1612
g_value_set_string (value, web_settings->location_entry_search);
1614
case PROP_PREFERRED_ENCODING:
1615
g_value_set_enum (value, web_settings->preferred_encoding);
1618
case PROP_ALWAYS_SHOW_TABBAR:
1619
g_value_set_boolean (value, web_settings->always_show_tabbar);
1621
case PROP_CLOSE_BUTTONS_ON_TABS:
1622
g_value_set_boolean (value, web_settings->close_buttons_on_tabs);
1624
case PROP_OPEN_NEW_PAGES_IN:
1625
g_value_set_enum (value, web_settings->open_new_pages_in);
1627
case PROP_OPEN_EXTERNAL_PAGES_IN:
1628
g_value_set_enum (value, web_settings->open_external_pages_in);
1630
case PROP_MIDDLE_CLICK_OPENS_SELECTION:
1631
g_value_set_boolean (value, web_settings->middle_click_opens_selection);
1633
case PROP_OPEN_TABS_IN_THE_BACKGROUND:
1634
g_value_set_boolean (value, web_settings->open_tabs_in_the_background);
1636
case PROP_OPEN_TABS_NEXT_TO_CURRENT:
1637
g_value_set_boolean (value, web_settings->open_tabs_next_to_current);
1639
case PROP_OPEN_POPUPS_IN_TABS:
1640
g_value_set_boolean (value, web_settings->open_popups_in_tabs);
1643
case PROP_AUTO_LOAD_IMAGES:
1644
g_value_set_boolean (value, katze_object_get_boolean (web_settings,
1645
"WebKitWebSettings::auto-load-images"));
1647
case PROP_ENABLE_SCRIPTS:
1648
g_value_set_boolean (value, katze_object_get_boolean (web_settings,
1649
"WebKitWebSettings::enable-scripts"));
1651
case PROP_ENABLE_PLUGINS:
1652
g_value_set_boolean (value, katze_object_get_boolean (web_settings,
1653
"WebKitWebSettings::enable-plugins"));
1655
case PROP_ENABLE_DEVELOPER_EXTRAS:
1656
g_value_set_boolean (value, katze_object_get_boolean (web_settings,
1657
"WebKitWebSettings::enable-developer-extras"));
1659
#if WEBKIT_CHECK_VERSION (1, 1, 8)
1660
case PROP_ENABLE_HTML5_DATABASE:
1661
g_value_set_boolean (value, katze_object_get_boolean (web_settings,
1662
"WebKitWebSettings::enable-html5-database"));
1664
case PROP_ENABLE_HTML5_LOCAL_STORAGE:
1665
g_value_set_boolean (value, katze_object_get_boolean (web_settings,
1666
"WebKitWebSettings::enable-html5-local-storage"));
1669
#if WEBKIT_CHECK_VERSION (1, 1, 13)
1670
case PROP_ENABLE_OFFLINE_WEB_APPLICATION_CACHE:
1671
g_value_set_boolean (value, katze_object_get_boolean (web_settings,
1672
"WebKitWebSettings::enable-offline-web-application-cache"));
1675
#if WEBKIT_CHECK_VERSION (1, 1, 18)
1676
case PROP_ENABLE_PAGE_CACHE:
1677
g_value_set_boolean (value, katze_object_get_boolean (web_settings,
1678
"WebKitWebSettings::enable-page-cache"));
1681
case PROP_ZOOM_TEXT_AND_IMAGES:
1682
g_value_set_boolean (value, web_settings->zoom_text_and_images);
1684
case PROP_FIND_WHILE_TYPING:
1685
g_value_set_boolean (value, web_settings->find_while_typing);
1687
case PROP_KINETIC_SCROLLING:
1688
g_value_set_boolean (value, web_settings->kinetic_scrolling);
1690
case PROP_ACCEPT_COOKIES:
1691
g_value_set_enum (value, web_settings->accept_cookies);
1693
case PROP_MAXIMUM_COOKIE_AGE:
1694
g_value_set_int (value, web_settings->maximum_cookie_age);
1697
case PROP_MAXIMUM_HISTORY_AGE:
1698
g_value_set_int (value, web_settings->maximum_history_age);
1700
case PROP_REMEMBER_LAST_DOWNLOADED_FILES:
1701
g_value_set_boolean (value, web_settings->remember_last_downloaded_files);
1704
case PROP_PROXY_TYPE:
1705
g_value_set_enum (value, web_settings->proxy_type);
1707
case PROP_HTTP_PROXY:
1708
g_value_set_string (value, web_settings->http_proxy);
1710
case PROP_IDENTIFY_AS:
1711
g_value_set_enum (value, web_settings->identify_as);
1713
case PROP_USER_AGENT:
1714
if (!g_strcmp0 (web_settings->ident_string, ""))
1716
gchar* string = generate_ident_string (web_settings->identify_as);
1717
katze_assign (web_settings->ident_string, string);
1719
g_value_set_string (value, web_settings->ident_string);
1721
case PROP_PREFERRED_LANGUAGES:
1722
g_value_set_string (value, web_settings->http_accept_language);
1724
case PROP_CLEAR_PRIVATE_DATA:
1725
g_value_set_int (value, web_settings->clear_private_data);
1728
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
1734
* midori_web_settings_new:
1736
* Creates a new #MidoriWebSettings instance with default values.
1738
* You will typically want to assign this to a #MidoriWebView or #MidoriBrowser.
1740
* Return value: a new #MidoriWebSettings
1743
midori_web_settings_new (void)
1745
MidoriWebSettings* web_settings = g_object_new (MIDORI_TYPE_WEB_SETTINGS,
1748
return web_settings;