]> git.lyx.org Git - lyx.git/blobdiff - src/BufferView_pimpl.C
update no.po
[lyx.git] / src / BufferView_pimpl.C
index 86621ce1499ff6388b2c7098221ce747a0ad7c08..ab27294eca517d1daf0a6210498f8cc2a97f0d30 100644 (file)
@@ -64,6 +64,7 @@
 
 #include <boost/bind.hpp>
 #include <boost/signals/connection.hpp>
+#include "BoostFormat.h"
 
 #include <unistd.h>
 #include <sys/wait.h>
@@ -153,7 +154,7 @@ Painter & BufferView::Pimpl::painter() const
 void BufferView::Pimpl::buffer(Buffer * b)
 {
        lyxerr[Debug::INFO] << "Setting buffer in BufferView ("
-                           << b << ")" << endl;
+                           << b << ')' << endl;
        if (buffer_) {
                buffer_->delUser(bv_);
 
@@ -297,6 +298,8 @@ int BufferView::Pimpl::resizeCurrentBuffer()
                        //      bv_->text->owner(bv_);
                        if (lyxerr.debugging())
                                textcache.show(lyxerr, "resizeCurrentBuffer");
+
+                       buffer_->resizeInsets(bv_);
                } else {
                        bv_->text = new LyXText(bv_);
                        bv_->text->init(bv_);
@@ -384,19 +387,26 @@ void BufferView::Pimpl::scrollDocView(int value)
 }
 
 
-int BufferView::Pimpl::scroll(long time)
+void BufferView::Pimpl::scroll(int lines)
 {
-       if (!buffer_)
-               return 0;
+       if (!buffer_) {
+               return;
+       }
 
        LyXText const * t = bv_->text;
+       int const line_height = t->defaultHeight();
+
+       // The new absolute coordinate
+       int new_first_y = t->first_y + lines * line_height;
 
-       double const diff = t->defaultHeight()
-               + double(time) * double(time) * 0.125;
+       // Restrict to a valid value
+       new_first_y = std::min(t->height - 4 * line_height, new_first_y);
+       new_first_y = std::max(0, new_first_y);
 
-       scrollDocView(int(diff));
+       scrollDocView(new_first_y);
+
+       // Update the scrollbar.
        workarea().setScrollbarParams(t->height, t->first_y, t->defaultHeight());
-       return 0;
 }
 
 
@@ -596,10 +606,6 @@ void BufferView::Pimpl::cursorToggle()
                return;
        }
 
-       /* FIXME */
-       extern void reapSpellchecker(void);
-       reapSpellchecker();
-
        if (!bv_->theLockingInset()) {
                screen().cursorToggle(bv_);
        } else {
@@ -634,8 +640,12 @@ void BufferView::Pimpl::savePosition(unsigned int i)
                                      bv_->text->cursor.pos());
        if (i > 0) {
                ostringstream str;
-               str << _("Saved bookmark") << ' ' << i;
-               owner_->message(str.str().c_str());
+#if USE_BOOST_FORMAT
+               str << boost::format(_("Saved bookmark %1$d")) % i;
+#else
+               str << _("Saved bookmark ") << i;
+#endif
+               owner_->message(STRCONV(str.str()));
        }
 }
 
@@ -666,8 +676,12 @@ void BufferView::Pimpl::restorePosition(unsigned int i)
        update(bv_->text, BufferView::SELECT | BufferView::FITCUR);
        if (i > 0) {
                ostringstream str;
-               str << _("Moved to bookmark") << ' ' << i;
-               owner_->message(str.str().c_str());
+#if USE_BOOST_FORMAT
+               str << boost::format(_("Moved to bookmark %1$d")) % i;
+#else
+               str << _("Moved to bookmark ") << i;
+#endif
+               owner_->message(STRCONV(str.str()));
        }
 }
 
@@ -852,7 +866,7 @@ void BufferView::Pimpl::MenuInsertLyXFile(string const & filen)
                                  string(AddPath(system_lyxdir, "examples"))));
 
                FileDialog::Result result =
-                       fileDlg.Select(initpath,
+                       fileDlg.open(initpath,
                                       _("*.lyx| LyX Documents (*.lyx)"));
 
                if (result.first == FileDialog::Later)
@@ -874,20 +888,29 @@ void BufferView::Pimpl::MenuInsertLyXFile(string const & filen)
        string const disp_fn(MakeDisplayPath(filename));
 
        ostringstream s1;
-       s1 << _("Inserting document") << ' '
-          << disp_fn << " ...";
-       owner_->message(s1.str().c_str());
+#if USE_BOOST_FORMAT
+       s1 << boost::format(_("Inserting document %1$s...")) % disp_fn;
+#else
+       s1 << _("Inserting document ") << disp_fn << _("...");
+#endif
+       owner_->message(STRCONV(s1.str()));
        bool const res = bv_->insertLyXFile(filename);
        if (res) {
                ostringstream str;
-               str << _("Document") << ' ' << disp_fn
-                   << ' ' << _("inserted.");
-               owner_->message(str.str().c_str());
+#if USE_BOOST_FORMAT
+               str << boost::format(_("Document %1$s inserted.")) % disp_fn;
+#else
+               str << _("Document ") << disp_fn << _(" inserted.");
+#endif
+               owner_->message(STRCONV(str.str()));
        } else {
                ostringstream str;
-               str << _("Could not insert document") << ' '
-                   << disp_fn;
-               owner_->message(str.str().c_str());
+#if USE_BOOST_FORMAT
+               str << boost::format(_("Could not insert document %1$s")) % disp_fn;
+#else
+               str << _("Could not insert document ") << disp_fn;
+#endif
+               owner_->message(STRCONV(str.str()));
        }
 }
 
@@ -895,17 +918,17 @@ void BufferView::Pimpl::MenuInsertLyXFile(string const & filen)
 bool BufferView::Pimpl::dispatch(FuncRequest const & ev)
 {
        lyxerr[Debug::ACTION] << "BufferView::Pimpl::Dispatch:"
-               << " action[" << ev.action <<"]"
-               << " arg[" << ev.argument << "]"
-               << " x[" << ev.x << "]"
-               << " y[" << ev.y << "]"
-               << " button[" << ev.button() << "]"
+               << " action[" << ev.action << ']'
+               << " arg[" << ev.argument << ']'
+               << " x[" << ev.x << ']'
+               << " y[" << ev.y << ']'
+               << " button[" << ev.button() << ']'
                << endl;
 
        // e.g. Qt mouse press when no buffer
        if (!buffer_)
                return false;
+
        LyXTextClass const & tclass = buffer_->params.getLyXTextClass();
 
        switch (ev.action) {
@@ -1119,8 +1142,11 @@ bool BufferView::Pimpl::dispatch(FuncRequest const & ev)
                InsetCitation * inset = new InsetCitation(p);
                if (!insertInset(inset))
                        delete inset;
-               else
+               else {
+                       inset->setLoadingBuffer(bv_->buffer(), false);
                        updateInset(inset, true);
+               }
+
        }
        break;
 
@@ -1169,7 +1195,7 @@ bool BufferView::Pimpl::dispatch(FuncRequest const & ev)
        {
                InsetBibtex * inset =
                        static_cast<InsetBibtex*>(getInsetByCode(Inset::BIBTEX_CODE));
-               if (inset) 
+               if (inset)
                        inset->setOptions(ev.argument);
        }
        break;