[latexila] MainWindowBuildTools: add widgets later



commit 99669c46678fad33809727ea1695da017a479d39
Author: SÃbastien Wilmet <swilmet src gnome org>
Date:   Thu Aug 2 01:48:11 2012 +0200

    MainWindowBuildTools: add widgets later
    
    In the MainWindow we can initialize the widgets (the file browser and
    the build view) later.

 src/main_window.vala             |    6 +++---
 src/main_window_build_tools.vala |   26 ++++++++++++++++++--------
 2 files changed, 21 insertions(+), 11 deletions(-)
---
diff --git a/src/main_window.vala b/src/main_window.vala
index cc23811..3905a73 100644
--- a/src/main_window.vala
+++ b/src/main_window.vala
@@ -162,11 +162,13 @@ public class MainWindow : Window
 
         _main_window_edit = new MainWindowEdit (this, _ui_manager);
         _main_window_file = new MainWindowFile (this, _ui_manager);
+        _main_window_build_tools = new MainWindowBuildTools (this, _ui_manager);
         _main_window_documents = new MainWindowDocuments (this, _ui_manager,
             _documents_panel);
 
         // File browser
         FileBrowser file_browser = new FileBrowser (this);
+        _main_window_build_tools.set_file_browser (file_browser);
 
         // Symbols
         _symbols = new SymbolsView (this);
@@ -177,9 +179,7 @@ public class MainWindow : Window
 
         // Bottom panel
         BuildView build_view = new BuildView (this);
-
-        _main_window_build_tools = new MainWindowBuildTools (this, _ui_manager,
-            build_view, file_browser);
+        _main_window_build_tools.set_build_view (build_view);
 
         Toolbar build_toolbar = _ui_manager.get_widget ("/BuildToolbar") as Toolbar;
         build_toolbar.set_style (ToolbarStyle.ICONS);
diff --git a/src/main_window_build_tools.vala b/src/main_window_build_tools.vala
index 58b0ca0..a529526 100644
--- a/src/main_window_build_tools.vala
+++ b/src/main_window_build_tools.vala
@@ -63,15 +63,10 @@ public class MainWindowBuildTools
     private uint _menu_ui_id;
     private BuildToolRunner _build_tool_runner;
 
-    public MainWindowBuildTools (MainWindow main_window, UIManager ui_manager,
-        BuildView build_view, FileBrowser file_browser)
+    public MainWindowBuildTools (MainWindow main_window, UIManager ui_manager)
     {
         _main_window = main_window;
         _ui_manager = ui_manager;
-        _build_view = build_view;
-
-        // TODO It would be better if the file browser could detect file updates.
-        _file_browser = file_browser;
 
         /* Static Gtk.Actions */
         _static_action_group = new Gtk.ActionGroup ("BuildMenuActionGroup");
@@ -82,8 +77,6 @@ public class MainWindowBuildTools
         Gtk.Action stop_exec = _static_action_group.get_action ("BuildStopExecution");
         stop_exec.sensitive = false;
 
-        connect_toggle_actions ();
-
         ui_manager.insert_action_group (_static_action_group, 0);
 
         /* Dynamic Gtk.Actions (the placeholder) */
@@ -98,6 +91,18 @@ public class MainWindowBuildTools
         default_build_tools.modified.connect (() => update_menu ());
     }
 
+    public void set_build_view (BuildView build_view)
+    {
+        _build_view = build_view;
+        connect_toggle_actions ();
+    }
+
+    public void set_file_browser (FileBrowser file_browser)
+    {
+        // TODO It would be better if the file browser could detect files updates.
+        _file_browser = file_browser;
+    }
+
     public void update_sensitivity ()
     {
         Gtk.Action clean_action = _static_action_group.get_action ("BuildClean");
@@ -294,6 +299,8 @@ public class MainWindowBuildTools
     private void activate_dynamic_action (Gtk.Action action)
     {
         return_if_fail (_main_window.active_tab != null);
+        return_if_fail (_build_view != null);
+        return_if_fail (_file_browser != null);
 
         BuildTool? tool = get_build_tool_from_name (action.name);
         return_if_fail (tool != null);
@@ -353,6 +360,8 @@ public class MainWindowBuildTools
 
     private void connect_toggle_actions ()
     {
+        return_if_fail (_build_view != null);
+
         GLib.Settings settings = new GLib.Settings ("org.gnome.latexila.preferences.ui");
 
         /* Show details */
@@ -400,6 +409,7 @@ public class MainWindowBuildTools
     public void on_clean ()
     {
         return_if_fail (_main_window.active_tab != null);
+        return_if_fail (_file_browser != null);
 
         CleanBuildFiles build_files = new CleanBuildFiles (_main_window,
             _main_window.active_document);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]