Hello,

As announced during the week-end. Committing now...

Abdel.
Index: BufferView.C
===================================================================
--- BufferView.C        (revision 15150)
+++ BufferView.C        (working copy)
@@ -60,12 +60,8 @@
 #include "insets/insettext.h"
 
 #include "frontends/Alert.h"
-#include "frontends/Clipboard.h"
-#include "frontends/Dialogs.h"
 #include "frontends/FileDialog.h"
 #include "frontends/font_metrics.h"
-#include "frontends/LyXView.h"
-#include "frontends/Selection.h"
 
 #include "graphics/Previews.h"
 
@@ -82,8 +78,6 @@
 #include <vector>
 
 
-using lyx::frontend::Clipboard;
-
 using lyx::docstring;
 using lyx::pos_type;
 
@@ -131,8 +125,8 @@
 } // anon namespace
 
 
-BufferView::BufferView(LyXView * owner)
-       : owner_(owner), buffer_(0), wh_(0),
+BufferView::BufferView()
+       : buffer_(0), wh_(0),
          cursor_(*this),
          multiparsel_cache_(false), anchor_ref_(0), offset_ref_(0),
          intl_(new Intl)
@@ -164,12 +158,6 @@
 }
 
 
-LyXView * BufferView::owner() const
-{
-       return owner_;
-}
-
-
 void BufferView::setBuffer(Buffer * b)
 {
        lyxerr[Debug::INFO] << BOOST_CURRENT_FUNCTION
Index: BufferView.h
===================================================================
--- BufferView.h        (revision 15150)
+++ BufferView.h        (working copy)
@@ -18,8 +18,6 @@
 #include "cursor.h"
 #include "metricsinfo.h"
 
-#include "frontends/LyXKeySym.h"
-
 #include "support/types.h"
 
 #include <boost/utility.hpp>
@@ -36,7 +34,6 @@
 class Language;
 class LCursor;
 class LyXText;
-class LyXView;
 class ParIterator;
 class ViewMetricsInfo;
 
@@ -88,11 +85,7 @@
  */
 class BufferView : boost::noncopyable {
 public:
-       /**
-        * Create a view with the given owner main window,
-        * of the given dimensions.
-        */
-       BufferView(LyXView * owner);
+       BufferView();
 
        ~BufferView();
 
@@ -101,9 +94,6 @@
        /// return the buffer being viewed
        Buffer * buffer() const;
 
-       /// return the owning main view
-       LyXView * owner() const;
-
        /// resize event has happened
        void resize();
 
@@ -233,6 +223,9 @@
        boost::signal<void(std::string name,
                std::string data)> updateDialog;
 
+       /// This signal is emitted when the layout at the cursor is changed.
+       boost::signal<void(std::string layout)> layoutChanged;
+
 private:
        ///
        bool multiParSel();
@@ -250,8 +243,6 @@
        ViewMetricsInfo metrics_info_;
 
        ///
-       LyXView * owner_;
-       ///
        Buffer * buffer_;
 
        /// Estimated average par height for scrollbar
Index: bufferview_funcs.C
===================================================================
--- bufferview_funcs.C  (revision 15150)
+++ bufferview_funcs.C  (working copy)
@@ -32,7 +32,6 @@
 #include "pariterator.h"
 
 #include "frontends/Alert.h"
-#include "frontends/LyXView.h"
 
 #include "insets/insetcommand.h"
 #include "insets/insettext.h"
Index: cursor.C
===================================================================
--- cursor.C    (revision 15150)
+++ cursor.C    (working copy)
@@ -43,7 +43,7 @@
 
 #include "support/limited_stack.h"
 
-#include "frontends/LyXView.h"
+#include "frontends/Application.h"
 #include "frontends/font_metrics.h"
 
 #include <boost/assert.hpp>
Index: CutAndPaste.C
===================================================================
--- CutAndPaste.C       (revision 15150)
+++ CutAndPaste.C       (working copy)
@@ -45,7 +45,7 @@
 
 #include "support/lstrings.h"
 
-#include "frontends/LyXView.h"
+#include "frontends/Application.h"
 #include "frontends/Clipboard.h"
 
 #include <boost/tuple/tuple.hpp>
Index: frontends/LyXView.C
===================================================================
--- frontends/LyXView.C (revision 15150)
+++ frontends/LyXView.C (working copy)
@@ -209,6 +209,7 @@
        timerConnection_.disconnect();
        readonlyConnection_.disconnect();
        closingConnection_.disconnect();
+       layout_changed_connection_.disconnect();
 }
 
 
@@ -222,6 +223,8 @@
                        boost::bind(&LyXView::showInsetDialog, this, _1, _2, 
_3));
        update_dialog_connection_ = bv.updateDialog.connect(
                        boost::bind(&LyXView::updateDialog, this, _1, _2));
+       layout_changed_connection_ = bv.layoutChanged.connect(
+                       boost::bind(&Toolbars::setLayout, toolbars_.get(), _1));
 }
 
 
@@ -283,12 +286,6 @@
 }
 
 
-void LyXView::setLayout(string const & layout)
-{
-       toolbars_->setLayout(layout);
-}
-
-
 void LyXView::updateToolbars()
 {
        bool const math = work_area_->bufferView().cursor().inMathed();
Index: frontends/LyXView.h
===================================================================
--- frontends/LyXView.h (revision 15150)
+++ frontends/LyXView.h (working copy)
@@ -123,8 +123,6 @@
        /// set a buffer to the current workarea
        void setBuffer(Buffer * b);
 
-       /// sets the layout in the toolbar layout selection
-       void setLayout(std::string const & layout);
        /// updates the possible layouts selectable
        void updateLayoutChoice();
 
@@ -232,6 +230,7 @@
        boost::signals::connection show_dialog_with_data_connection_;
        boost::signals::connection show_inset_dialog_connection_;
        boost::signals::connection update_dialog_connection_;
+       boost::signals::connection layout_changed_connection_;
        //@}
 
        /// Bind methods for BufferView messages signal connection
Index: frontends/qt4/GuiImplementation.C
===================================================================
--- frontends/qt4/GuiImplementation.C   (revision 15150)
+++ frontends/qt4/GuiImplementation.C   (working copy)
@@ -66,7 +66,7 @@
        work_areas_[id].reset(new GuiWorkArea(w, h, *view));
 
        // FIXME BufferView creation should be independant of WorkArea creation
-       buffer_views_[id].reset(new BufferView(view));
+       buffer_views_[id].reset(new BufferView());
        work_areas_[id]->setBufferView(buffer_views_[id].get());
        view->setWorkArea(work_areas_[id].get());
 
Index: frontends/WorkArea.C
===================================================================
--- frontends/WorkArea.C        (revision 15150)
+++ frontends/WorkArea.C        (working copy)
@@ -264,6 +264,7 @@
        // Skip these when selecting
        if (cmd0.action != LFUN_MOUSE_MOTION) {
                lyx_view_.updateLayoutChoice();
+               lyx_view_.updateMenubar();
                lyx_view_.updateToolbars();
        }
 
Index: insets/insetcollapsable.C
===================================================================
--- insets/insetcollapsable.C   (revision 15150)
+++ insets/insetcollapsable.C   (working copy)
@@ -28,7 +28,6 @@
 
 #include "frontends/font_metrics.h"
 #include "frontends/Painter.h"
-#include "frontends/LyXView.h"
 
 using lyx::docstring;
 using lyx::graphics::PreviewLoader;
Index: insets/insetert.C
===================================================================
--- insets/insetert.C   (revision 15150)
+++ insets/insetert.C   (working copy)
@@ -32,7 +32,6 @@
 #include "paragraph.h"
 
 #include "frontends/Alert.h"
-#include "frontends/LyXView.h"
 
 #include <sstream>
 
Index: insets/insetexternal.C
===================================================================
--- insets/insetexternal.C      (revision 15150)
+++ insets/insetexternal.C      (working copy)
@@ -32,7 +32,6 @@
 #include "outputparams.h"
 
 #include "frontends/lyx_gui.h"
-#include "frontends/LyXView.h"
 
 #include "graphics/PreviewLoader.h"
 
Index: insets/insetgraphics.C
===================================================================
--- insets/insetgraphics.C      (revision 15150)
+++ insets/insetgraphics.C      (working copy)
@@ -73,7 +73,6 @@
 #include "sgml.h"
 
 #include "frontends/Alert.h"
-#include "frontends/LyXView.h"
 
 #include "support/convert.h"
 #include "support/filetools.h"
Index: insets/insetinclude.C
===================================================================
--- insets/insetinclude.C       (revision 15150)
+++ insets/insetinclude.C       (working copy)
@@ -32,7 +32,6 @@
 #include "outputparams.h"
 
 #include "frontends/Alert.h"
-#include "frontends/LyXView.h"
 #include "frontends/Painter.h"
 
 #include "graphics/PreviewImage.h"
Index: insets/insetlabel.C
===================================================================
--- insets/insetlabel.C (revision 15150)
+++ insets/insetlabel.C (working copy)
@@ -22,8 +22,6 @@
 #include "pariterator.h"
 #include "sgml.h"
 
-#include "frontends/LyXView.h"
-
 #include "support/lstrings.h"
 #include "support/lyxalgo.h"
 #include "support/std_ostream.h"
Index: insets/insetref.C
===================================================================
--- insets/insetref.C   (revision 15150)
+++ insets/insetref.C   (working copy)
@@ -21,7 +21,7 @@
 #include "outputparams.h"
 #include "sgml.h"
 
-#include "frontends/LyXView.h"
+#include "frontends/Application.h"
 
 #include "support/lstrings.h"
 
Index: insets/insettabular.C
===================================================================
--- insets/insettabular.C       (revision 15150)
+++ insets/insettabular.C       (working copy)
@@ -37,8 +37,8 @@
 #include "support/convert.h"
 
 #include "frontends/Alert.h"
+#include "frontends/Application.h"
 #include "frontends/font_metrics.h"
-#include "frontends/LyXView.h"
 #include "frontends/Clipboard.h"
 #include "frontends/Painter.h"
 #include "frontends/Selection.h"
Index: insets/mailinset.C
===================================================================
--- insets/mailinset.C  (revision 15150)
+++ insets/mailinset.C  (working copy)
@@ -16,7 +16,6 @@
 #include "debug.h"
 
 #include "frontends/Dialogs.h"
-#include "frontends/LyXView.h"
 
 using std::string;
 
Index: lyxfind.C
===================================================================
--- lyxfind.C   (revision 15150)
+++ lyxfind.C   (working copy)
@@ -28,7 +28,6 @@
 #include "undo.h"
 
 #include "frontends/Alert.h"
-#include "frontends/LyXView.h"
 
 #include "support/convert.h"
 
Index: mathed/InsetMathHull.C
===================================================================
--- mathed/InsetMathHull.C      (revision 15150)
+++ mathed/InsetMathHull.C      (working copy)
@@ -50,9 +50,6 @@
 #include "insets/render_preview.h"
 #include "insets/insetlabel.h"
 
-#include "frontends/Dialogs.h"
-#include "frontends/LyXView.h"
-
 #include "graphics/PreviewImage.h"
 #include "graphics/PreviewLoader.h"
 
Index: mathed/InsetMathNest.C
===================================================================
--- mathed/InsetMathNest.C      (revision 15150)
+++ mathed/InsetMathNest.C      (working copy)
@@ -49,8 +49,7 @@
 
 #include "support/lstrings.h"
 
-#include "frontends/Dialogs.h"
-#include "frontends/LyXView.h"
+#include "frontends/Application.h"
 #include "frontends/Painter.h"
 #include "frontends/Selection.h"
 #include "frontends/nullpainter.h"
Index: mathed/InsetMathRef.C
===================================================================
--- mathed/InsetMathRef.C       (revision 15150)
+++ mathed/InsetMathRef.C       (working copy)
@@ -26,15 +26,11 @@
 #include "outputparams.h"
 #include "sgml.h"
 
-#include "frontends/LyXView.h"
-#include "frontends/Dialogs.h"
-
 using std::string;
 using std::auto_ptr;
 using std::endl;
 
 
-
 RefInset::RefInset()
        : CommandInset("ref")
 {}
Index: ParagraphParameters.C
===================================================================
--- ParagraphParameters.C       (revision 15150)
+++ ParagraphParameters.C       (working copy)
@@ -25,8 +25,6 @@
 #include "paragraph.h"
 #include "tex-strings.h"
 
-#include "frontends/LyXView.h"
-
 #include "support/lstrings.h"
 
 #include <sstream>
Index: rowpainter.C
===================================================================
--- rowpainter.C        (revision 15150)
+++ rowpainter.C        (working copy)
@@ -34,8 +34,6 @@
 
 #include "frontends/font_metrics.h"
 #include "frontends/nullpainter.h"
-#include "frontends/LyXView.h"
-#include "frontends/WorkArea.h"
 #include "frontends/Painter.h"
 
 #include "insets/insettext.h"
Index: text.C
===================================================================
--- text.C      (revision 15150)
+++ text.C      (working copy)
@@ -52,7 +52,6 @@
 #include "WordLangTuple.h"
 
 #include "frontends/font_metrics.h"
-#include "frontends/LyXView.h"
 #include "frontends/Painter.h"
 
 #include "insets/insettext.h"
Index: text2.C
===================================================================
--- text2.C     (revision 15150)
+++ text2.C     (working copy)
@@ -46,8 +46,8 @@
 #include "undo.h"
 #include "vspace.h"
 
+#include "frontends/Application.h"
 #include "frontends/font_metrics.h"
-#include "frontends/LyXView.h"
 
 #include "insets/insetenv.h"
 
Index: text3.C
===================================================================
--- text3.C     (revision 15150)
+++ text3.C     (working copy)
@@ -47,8 +47,7 @@
 #include "vspace.h"
 #include "pariterator.h"
 
-#include "frontends/Dialogs.h"
-#include "frontends/LyXView.h"
+#include "frontends/Application.h"
 #include "frontends/Clipboard.h"
 #include "frontends/Selection.h"
 
@@ -874,7 +873,8 @@
                if (change_layout) {
                        current_layout = layout;
                        setLayout(cur, layout);
-                       bv->owner()->setLayout(layout);
+                       // inform the GUI that the layout has changed.
+                       bv->layoutChanged(layout);
                        bv->switchKeyMap();
                }
                break;
@@ -1048,8 +1048,6 @@
                        theApp->selection().haveSelection(cur.selection());
 
                bv->switchKeyMap();
-               bv->owner()->updateMenubar();
-               bv->owner()->updateToolbars();
                break;
        }
 
Index: toc.C
===================================================================
--- toc.C       (revision 15150)
+++ toc.C       (working copy)
@@ -24,8 +24,6 @@
 #include "debug.h"
 #include "undo.h"
 
-#include "frontends/LyXView.h"
-
 #include "insets/insetfloat.h"
 #include "insets/insetoptarg.h"
 #include "insets/insetwrap.h"

Reply via email to