]> git.lyx.org Git - features.git/commitdiff
That commit replaces the Buffer::message() signal emissions from within "BufferView_p...
authorAbdelrazak Younes <younes@lyx.org>
Thu, 24 Aug 2006 14:10:22 +0000 (14:10 +0000)
committerAbdelrazak Younes <younes@lyx.org>
Thu, 24 Aug 2006 14:10:22 +0000 (14:10 +0000)
* BufferView.h: new message boost signal.

* BufferView_pimpl.C: replace Buffer::message() with BufferView::message() signal emission.

* lyxfind.C: ditto.

* WorkArea:
  - displayMessage(): new private method that calls LyXView::message().
  - messageConnection_: new signal connection.
  - setBufferView(): handle BufferView connection/disconnection.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14831 a592a061-630c-0410-9148-cb99ea01b6c8

src/BufferView.h
src/BufferView_pimpl.C
src/frontends/WorkArea.C
src/frontends/WorkArea.h
src/lyxfind.C

index fdc9181ab2cf0a4d64df01a4c904fd55570358e5..dfa5c9de41c70d9598707e818307d5bf1aa893a0 100644 (file)
@@ -22,6 +22,7 @@
 #include "support/types.h"
 
 #include <boost/utility.hpp>
+#include <boost/signal.hpp>
 
 #include <string>
 
@@ -218,6 +219,9 @@ public:
        ///
        void updateMetrics(bool singlepar = false);
 
+       /// This signal is emitted when some message shows up.
+       boost::signal<void(std::string)> message;
+
 private:
        ///
        class Pimpl;
index 72e85937c80148171ddee3b4c77a9ea9378222d3..4ce72760de54ee9c252f68bc31b8534503c088c3 100644 (file)
@@ -631,7 +631,7 @@ void BufferView::Pimpl::savePosition(unsigned int i)
                                      cursor_.pos());
        if (i > 0)
                // emit message signal.
-               buffer_->message(bformat(_("Saved bookmark %1$d"), i));
+               bv_->message(bformat(_("Saved bookmark %1$d"), i));
 }
 
 
@@ -665,7 +665,7 @@ void BufferView::Pimpl::restorePosition(unsigned int i)
 
        if (i > 0)
                // emit message signal.
-               buffer_->message(bformat(_("Moved to bookmark %1$d"), i));
+               bv_->message(bformat(_("Moved to bookmark %1$d"), i));
 }
 
 
@@ -755,7 +755,7 @@ void BufferView::Pimpl::menuInsertLyXFile(string const & filenm)
                // check selected filename
                if (filename.empty()) {
                        // emit message signal.
-                       buffer_->message(_("Canceled."));
+                       bv_->message(_("Canceled."));
                        return;
                }
        }
@@ -766,7 +766,7 @@ void BufferView::Pimpl::menuInsertLyXFile(string const & filenm)
 
        string const disp_fn = makeDisplayPath(filename);
        // emit message signal.
-       buffer_->message(bformat(_("Inserting document %1$s..."), disp_fn));
+       bv_->message(bformat(_("Inserting document %1$s..."), disp_fn));
 
        string res;
        Buffer buf("", false);
@@ -781,7 +781,7 @@ void BufferView::Pimpl::menuInsertLyXFile(string const & filenm)
                res = _("Could not insert document %1$s");
 
        // emit message signal.
-       buffer_->message(bformat(res, disp_fn));
+       bv_->message(bformat(res, disp_fn));
        buffer_->errors("Parse");
        resizeCurrentBuffer();
 }
index b47fae73d918449c18b83c3ed3c0e985332c5b1d..b2ada8e48a496937563d170f89258652e6444ce1 100644 (file)
@@ -49,7 +49,6 @@
 #include <boost/utility.hpp>
 #include <boost/bind.hpp>
 #include <boost/current_function.hpp>
-#include <boost/signals/trackable.hpp>
 
 using lyx::support::libFileSearch;
 using lyx::support::ForkedcallsController;
@@ -160,9 +159,15 @@ WorkArea::WorkArea(LyXView & lyx_view)
 
 void WorkArea::setBufferView(BufferView * buffer_view)
 {
+       if (buffer_view_)
+               message_connection_.disconnect();
+
        hideCursor();
        buffer_view_ = buffer_view;
        toggleCursor();
+
+       message_connection_ = buffer_view_->message.connect(
+                       boost::bind(&WorkArea::displayMessage, this, _1));
 }
 
 
@@ -406,5 +411,11 @@ void WorkArea::toggleCursor()
        cursor_timeout_.restart();
 }
 
+
+void WorkArea::displayMessage(std::string const & message)
+{
+       lyx_view_.message(message);
+}
+
 } // namespace frontend
 } // namespace lyx
index 49e5b0c946872d8652a744870828ae40c679d1ee..6f6d3607738dcdfa9433fd8fbf5a158f44c2dba8 100644 (file)
@@ -34,6 +34,7 @@ int const CursorShape = CursorShape;
 #include "frontends/LyXKeySym.h"
 #include "frontends/Timeout.h"
 
+#include <boost/signals/trackable.hpp>
 
 class BufferView;
 class FuncRequest;
@@ -61,7 +62,7 @@ enum CursorShape {
  * It works in concert with the BaseScreen class to update the
  * widget view of a document.
  */
-class WorkArea {
+class WorkArea : public boost::signals::trackable {
 public:
        WorkArea(LyXView & lyx_view);
 
@@ -143,6 +144,10 @@ private:
        void updateScrollbar();
        ///
        void checkAndGreyOut();
+       ///
+       void displayMessage(std::string const &);
+       /// buffer messages signal connection
+       boost::signals::connection message_connection_;
 
        ///
        bool greyed_out_;
index 61517f69e6f9f737e99c33d952ee684bb663b9ac..5c61a0ff9528a945ff78634c73621d2c270d62c9 100644 (file)
@@ -289,7 +289,7 @@ void find(BufferView * bv, FuncRequest const & ev)
 
        if (!found)
                // emit message signal.
-               bv->buffer()->message(_("String not found!"));
+               bv->message(_("String not found!"));
 }