Browse Source

Do heavy lifting in constructed

Matthias Vogelgesang 7 years ago
parent
commit
dfda41ff50
1 changed files with 41 additions and 45 deletions
  1. 41 45
      src/iridium-window.c

+ 41 - 45
src/iridium-window.c

@@ -365,10 +365,51 @@ static void
 iridium_window_constructed (GObject *object)
 {
   IridiumWindow *self;
+  g_autoptr(GtkSourceLanguageManager) manager;
+  g_autoptr(GtkStyleProvider) provider;
+  g_autoptr(GBytes) style_data;
+  WebKitUserContentManager *content_manager;
+  WebKitUserStyleSheet *stylesheet;
+
+  static GActionEntry entries[] = {
+    { "search",     NULL,   NULL, "false",  search_toggled },
+    { "preview",    NULL,   NULL, "false",  preview_toggled },
+  };
 
   self = IRIDIUM_WINDOW (object);
+
+  self->preferences = g_settings_new ("net.bloerg.iridium.preferences");
+  self->window_state = g_settings_new ("net.bloerg.iridium.window-state");
+  self->width = g_settings_get_int (self->window_state, "width");
+  self->height = g_settings_get_int (self->window_state, "height");
+
   gtk_window_set_default_size (GTK_WINDOW (self), self->width, self->height);
 
+  self->markdown = iridium_markdown_new ();
+  self->client = iridium_standard_file_new ();
+  self->source_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (self->source_view));
+
+  style_data = g_resources_lookup_data ("/net/bloerg/Iridium/iridium-theme.css", G_RESOURCE_LOOKUP_FLAGS_NONE, NULL);
+  content_manager = webkit_web_view_get_user_content_manager (self->html_view);
+  stylesheet = webkit_user_style_sheet_new ((const gchar *) g_bytes_get_data (style_data, NULL),
+    WEBKIT_USER_CONTENT_INJECT_ALL_FRAMES, WEBKIT_USER_STYLE_LEVEL_AUTHOR, NULL, NULL);
+  webkit_user_content_manager_add_style_sheet (content_manager, stylesheet);
+
+  g_action_map_add_action_entries (G_ACTION_MAP (self), entries, G_N_ELEMENTS (entries), self);
+
+  gtk_search_bar_connect_entry (self->search_bar, GTK_ENTRY (self->search_entry));
+
+  manager = gtk_source_language_manager_get_default ();
+  gtk_source_buffer_set_language (GTK_SOURCE_BUFFER (self->source_buffer),
+                                  gtk_source_language_manager_get_language (manager, "markdown"));
+
+  provider = GTK_STYLE_PROVIDER (gtk_css_provider_get_default ());
+  gtk_css_provider_load_from_resource (GTK_CSS_PROVIDER (provider), "/net/bloerg/Iridium/iridium.css");
+  gtk_style_context_add_provider_for_screen (gtk_window_get_screen (GTK_WINDOW (self)), provider, GTK_STYLE_PROVIDER_PRIORITY_USER);
+
+  gtk_list_box_set_filter_func (self->note_list, (GtkListBoxFilterFunc) note_visible, self, NULL);
+  gtk_list_box_set_sort_func (self->note_list, (GtkListBoxSortFunc) note_date_cmp, NULL, NULL);
+
   G_OBJECT_CLASS (iridium_window_parent_class)->constructed (object);
 }
 
@@ -422,54 +463,9 @@ iridium_window_class_init (IridiumWindowClass *klass)
 static void
 iridium_window_init (IridiumWindow *self)
 {
-  GtkSourceLanguageManager *manager;
-  GtkStyleProvider *provider;
-  GtkSourceBuffer *buffer;
-  GBytes *style_data;
-  WebKitUserContentManager *content_manager;
-  WebKitUserStyleSheet *stylesheet;
-  GError *error = NULL;
-
-  static GActionEntry entries[] = {
-    { "search",     NULL,   NULL, "false",  search_toggled },
-    { "preview",    NULL,   NULL, "false",  preview_toggled },
-  };
-
   gtk_widget_init_template (GTK_WIDGET (self));
 
-  self->preferences = g_settings_new ("net.bloerg.iridium.preferences");
-  self->window_state = g_settings_new ("net.bloerg.iridium.window-state");
-  self->width = g_settings_get_int (self->window_state, "width");
-  self->height = g_settings_get_int (self->window_state, "height");
-
   self->title_binding = NULL;
   self->content_binding = NULL;
-  self->markdown = iridium_markdown_new ();
-  self->client = iridium_standard_file_new ();
   self->compile_handler = 0;
-  self->source_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (self->source_view));
-
-  style_data = g_resources_lookup_data ("/net/bloerg/Iridium/iridium-theme.css", 
-    G_RESOURCE_LOOKUP_FLAGS_NONE, &error);
-  content_manager = webkit_web_view_get_user_content_manager (self->html_view);
-  stylesheet = webkit_user_style_sheet_new ((const gchar *) g_bytes_get_data (style_data, NULL),
-    WEBKIT_USER_CONTENT_INJECT_ALL_FRAMES, WEBKIT_USER_STYLE_LEVEL_AUTHOR, NULL, NULL);
-  webkit_user_content_manager_add_style_sheet (content_manager, stylesheet);
-  g_bytes_unref (style_data);
-
-  g_action_map_add_action_entries (G_ACTION_MAP (self), entries, G_N_ELEMENTS (entries), self);
-
-  gtk_search_bar_connect_entry (self->search_bar, GTK_ENTRY (self->search_entry));
-
-  manager = gtk_source_language_manager_get_default ();
-  buffer = GTK_SOURCE_BUFFER (gtk_text_view_get_buffer (GTK_TEXT_VIEW (self->source_view)));
-  gtk_source_buffer_set_language (buffer, gtk_source_language_manager_get_language (manager, "markdown"));
-  g_object_unref (manager);
-
-  provider = GTK_STYLE_PROVIDER (gtk_css_provider_get_default ());
-  gtk_css_provider_load_from_resource (GTK_CSS_PROVIDER (provider), "/net/bloerg/Iridium/iridium.css");
-  gtk_style_context_add_provider_for_screen (gtk_window_get_screen (GTK_WINDOW (self)), provider, GTK_STYLE_PROVIDER_PRIORITY_USER);
-
-  gtk_list_box_set_filter_func (self->note_list, (GtkListBoxFilterFunc) note_visible, self, NULL);
-  gtk_list_box_set_sort_func (self->note_list, (GtkListBoxSortFunc) note_date_cmp, NULL, NULL);
 }