]> git.lyx.org Git - lyx.git/blobdiff - src/BufferView_pimpl.C
minimal effort implementation of:
[lyx.git] / src / BufferView_pimpl.C
index 629ebee4fbf52b75ed2bb4246a5b36656baa6573..a1fc04b408b4608db3e96008a0fb279cb3f44de3 100644 (file)
@@ -12,6 +12,7 @@
  * \author André Pönitz
  * \author Dekel Tsur
  * \author Jürgen Vigna
+ * \author Abdelrazak Younes
  *
  * Full author contact details are available in file CREDITS.
  */
@@ -231,12 +232,6 @@ bool BufferView::Pimpl::loadLyXFile(string const & filename, bool tolastfiles)
 }
 
 
-lyx::frontend::Gui & BufferView::Pimpl::gui() const
-{
-       return owner_->gui();
-}
-
-
 int BufferView::Pimpl::width() const
 {
        return width_;
@@ -265,6 +260,12 @@ void BufferView::Pimpl::setBuffer(Buffer * b)
                        boost::tie(cursor_.pit(), cursor_.pos()) );
        }
 
+       // If we're quitting lyx, don't bother updating stuff
+       if (quitting) {
+               buffer_ = 0;
+               return;
+       }
+
        // If we are closing current buffer, switch to the first in
        // buffer list.
        if (!b) {
@@ -272,7 +273,6 @@ void BufferView::Pimpl::setBuffer(Buffer * b)
                                    << " No Buffer!" << endl;
                // We are closing the buffer, use the first buffer as current
                buffer_ = bufferlist.first();
-               owner_->getDialogs().hideBufferDependent();
        } else {
                // Set current buffer
                buffer_ = b;
@@ -283,11 +283,6 @@ void BufferView::Pimpl::setBuffer(Buffer * b)
        anchor_ref_ = 0;
        offset_ref_ = 0;
 
-
-       // If we're quitting lyx, don't bother updating stuff
-       if (quitting)
-               return;
-
        if (buffer_) {
                lyxerr[Debug::INFO] << BOOST_CURRENT_FUNCTION
                                    << "Buffer addr: " << buffer_ << endl;
@@ -303,11 +298,6 @@ void BufferView::Pimpl::setBuffer(Buffer * b)
                        cursor_.setCursor(buffer_->getCursor().asDocIterator(&(buffer_->inset())));
                        cursor_.setSelection();
                }
-
-               // Buffer-dependent dialogs should be updated or
-               // hidden. This should go here because some dialogs (eg ToC)
-               // require bv_->text.
-               owner_->getDialogs().updateBufferDependent(true);
        }
 
        update();
@@ -316,34 +306,10 @@ void BufferView::Pimpl::setBuffer(Buffer * b)
                lyx::graphics::Previews::get().generateBufferPreviews(*buffer_);
 }
 
-string BufferView::Pimpl::firstLayout()
-{
-       string firstlayout;
-
-       // This is done after the layout combox has been populated
-       if (buffer_) {
-               size_t i = cursor_.depth() - 1;
-               // we know we'll eventually find a paragraph
-               while (true) {
-                       CursorSlice const & slice = cursor_[i];
-                       if (!slice.inset().inMathed()) {
-                               LyXLayout_ptr const layout = slice.paragraph().layout();
-                               firstlayout = layout->name();
-                               break;
-                       }
-                       BOOST_ASSERT(i>0);
-                       --i;
-               }
-       }
-       return firstlayout;
-}
-
 
 void BufferView::Pimpl::resizeCurrentBuffer()
 {
        lyxerr[Debug::DEBUG] << BOOST_CURRENT_FUNCTION << endl;
-       owner_->busy(true);
-       owner_->message(_("Formatting document..."));
 
        LyXText * text = bv_->text();
        if (!text)
@@ -351,12 +317,7 @@ void BufferView::Pimpl::resizeCurrentBuffer()
 
        text->init(bv_);
        update();
-
        switchKeyMap();
-       owner_->busy(false);
-
-       // Reset the "Formatting..." message
-       owner_->clearMessage();
 }
 
 
@@ -441,10 +402,12 @@ void BufferView::Pimpl::scrollDocView(int value)
        t.redoParagraph(anchor_ref_);
        int const h = t.getPar(anchor_ref_).height();
        offset_ref_ = int((bar * t.paragraphs().size() - anchor_ref_) * h);
-       update();
+}
 
-       if (!lyxrc.cursor_follows_scrollbar)
-               return;
+
+void BufferView::Pimpl::setCursorFromScrollbar()
+{
+       LyXText & t = *bv_->text();
 
        int const height = 2 * defaultRowHeight();
        int const first = height;
@@ -470,7 +433,6 @@ void BufferView::Pimpl::scrollDocView(int value)
                        t.setCursorFromCoordinates(cur, 0, newy);
                }
        }
-       owner_->updateLayoutChoice();
 }
 
 
@@ -496,13 +458,6 @@ void BufferView::Pimpl::scroll(int /*lines*/)
 }
 
 
-void BufferView::Pimpl::workAreaKeyPress(LyXKeySymPtr key,
-                                        key_modifier::state state)
-{
-       owner_->getLyXFunc().processKeySym(key, state);
-}
-
-
 void BufferView::Pimpl::selectionRequested()
 {
        static string sel;
@@ -550,14 +505,12 @@ void BufferView::Pimpl::workAreaResize(int width, int height)
        height_ = height;
 
        if (buffer_ && widthChange) {
-               // The visible LyXView need a resize
+               // The WorkArea content needs a resize
                resizeCurrentBuffer();
        }
 
        if (widthChange || heightChange)
                update();
-
-       owner_->updateLayoutChoice();
 }
 
 
@@ -655,7 +608,8 @@ void BufferView::Pimpl::savePosition(unsigned int i)
                                      cursor_.paragraph().id(),
                                      cursor_.pos());
        if (i > 0)
-               owner_->message(bformat(_("Saved bookmark %1$d"), i));
+               // emit message signal.
+               bv_->message(bformat(_("Saved bookmark %1$d"), i));
 }
 
 
@@ -688,7 +642,8 @@ void BufferView::Pimpl::restorePosition(unsigned int i)
        bv_->setCursor(makeDocIterator(par, min(par->size(), saved_positions[i].par_pos)));
 
        if (i > 0)
-               owner_->message(bformat(_("Moved to bookmark %1$d"), i));
+               // emit message signal.
+               bv_->message(bformat(_("Moved to bookmark %1$d"), i));
 }
 
 
@@ -777,7 +732,8 @@ void BufferView::Pimpl::menuInsertLyXFile(string const & filenm)
 
                // check selected filename
                if (filename.empty()) {
-                       owner_->message(_("Canceled."));
+                       // emit message signal.
+                       bv_->message(_("Canceled."));
                        return;
                }
        }
@@ -787,7 +743,8 @@ void BufferView::Pimpl::menuInsertLyXFile(string const & filenm)
        filename = fileSearch(string(), filename, "lyx");
 
        string const disp_fn = makeDisplayPath(filename);
-       owner_->message(bformat(_("Inserting document %1$s..."), disp_fn));
+       // emit message signal.
+       bv_->message(bformat(_("Inserting document %1$s..."), disp_fn));
 
        string res;
        Buffer buf("", false);
@@ -801,7 +758,8 @@ void BufferView::Pimpl::menuInsertLyXFile(string const & filenm)
        } else
                res = _("Could not insert document %1$s");
 
-       owner_->message(bformat(res, disp_fn));
+       // emit message signal.
+       bv_->message(bformat(res, disp_fn));
        buffer_->errors("Parse");
        resizeCurrentBuffer();
 }
@@ -845,12 +803,6 @@ bool BufferView::Pimpl::workAreaDispatch(FuncRequest const & cmd0)
        // LFUN_FILE_OPEN generated by drag-and-drop.
        FuncRequest cmd = cmd0;
 
-       // Handle drag&drop
-       if (cmd.action == LFUN_FILE_OPEN) {
-               owner_->dispatch(cmd);
-               return true;
-       }
-
        if (!buffer_)
                return false;
 
@@ -899,16 +851,6 @@ bool BufferView::Pimpl::workAreaDispatch(FuncRequest const & cmd0)
                        update(Update::FitCursor | Update::MultiParSel);
        }
 
-       // Skip these when selecting
-       if (cmd.action != LFUN_MOUSE_MOTION) {
-               owner_->updateLayoutChoice();
-               owner_->updateToolbars();
-       }
-
-       // Slight hack: this is only called currently when we
-       // clicked somewhere, so we force through the display
-       // of the new status here.
-       owner_->clearMessage();
        return true;
 }
 
@@ -940,7 +882,6 @@ FuncStatus BufferView::Pimpl::getStatus(FuncRequest const & cmd)
        case LFUN_OUTLINE_DOWN:
        case LFUN_OUTLINE_IN:
        case LFUN_OUTLINE_OUT:
-       case LFUN_ERROR_NEXT:
        case LFUN_NOTE_NEXT:
        case LFUN_REFERENCE_NEXT:
        case LFUN_WORD_FIND:
@@ -1121,10 +1062,6 @@ bool BufferView::Pimpl::dispatch(FuncRequest const & cmd)
                updateLabels(*buffer_);
                break;
 
-       case LFUN_ERROR_NEXT:
-               bv_funcs::gotoInset(bv_, InsetBase::ERROR_CODE, false);
-               break;
-
        case LFUN_NOTE_NEXT:
                bv_funcs::gotoInset(bv_, InsetBase::NOTE_CODE, false);
                break;