]> git.lyx.org Git - lyx.git/blobdiff - src/BufferView_pimpl.C
Minimal fix needed to give Qt a label dialog again.
[lyx.git] / src / BufferView_pimpl.C
index f29895c2ab0a428873f2fcc97bbe959b53455343..cac2fb0e59a4a7cb11d29fc71c422818989e4fbb 100644 (file)
@@ -165,9 +165,9 @@ void BufferView::Pimpl::buffer(Buffer * b)
        // set current buffer
        buffer_ = b;
 
-       // if we're quitting lyx, don't bother updating stuff 
+       // if we're quitting lyx, don't bother updating stuff
        if (quitting)
-               return; 
+               return;
 
        // if we are closing the buffer, use the first buffer as current
        if (!buffer_) {
@@ -261,7 +261,7 @@ int BufferView::Pimpl::resizeCurrentBuffer()
        bool mark_set  = false;
 
        owner_->busy(true);
+
        owner_->message(_("Formatting document..."));
 
        if (bv_->text) {
@@ -621,14 +621,14 @@ bool BufferView::Pimpl::available() const
 
 Change const BufferView::Pimpl::getCurrentChange()
 {
-       if (!bv_->buffer()->params.tracking_changes) 
+       if (!bv_->buffer()->params.tracking_changes)
                return Change(Change::UNCHANGED);
 
        LyXText * t(bv_->getLyXText());
+
        if (!t->selection.set())
                return Change(Change::UNCHANGED);
+
        LyXCursor const & cur(t->selection.start);
        return cur.par()->lookupChangeFull(cur.pos());
 }
@@ -941,7 +941,7 @@ void BufferView::Pimpl::trackChanges()
        } else {
                bv_->update(bv_->text, BufferView::SELECT | BufferView::FITCUR);
                bv_->text->setCursor(bv_, &(*buf->paragraphs.begin()), 0);
-#warning changes FIXME 
+#warning changes FIXME
                //moveCursorUpdate(false);
 
                bool found = lyxfind::findNextChange(bv_);
@@ -956,7 +956,7 @@ void BufferView::Pimpl::trackChanges()
                }
                buf->params.tracking_changes = false;
        }
+
        buf->redostack.clear();
 }
 
@@ -1090,9 +1090,15 @@ bool BufferView::Pimpl::dispatch(FuncRequest const & ev_in)
                owner_->getLyXFunc().setMessage(currentState(bv_));
                break;
 
-       case LFUN_INSERT_LABEL:
-               MenuInsertLabel(bv_, ev.argument);
-               break;
+       case LFUN_INSERT_LABEL: {
+               // Try and generate a valid label
+               string const contents = ev.argument.empty() ?
+                       getPossibleLabel(*bv_) : ev.argument;
+               InsetCommandParams icp("label", contents);
+               string data = InsetCommandMailer::params2string("label", icp);
+               owner_->getDialogs().show("label", data, 0);
+       }
+       break;
 
        case LFUN_BOOKMARK_SAVE:
                savePosition(strToUnsignedInt(ev.argument));
@@ -1172,14 +1178,14 @@ bool BufferView::Pimpl::dispatch(FuncRequest const & ev_in)
                string const name = ev.getArg(0);
 
                InsetBase * base = owner_->getDialogs().getOpenInset(name);
-               Inset * inset = 0;
                if (base) {
                        // This works both for 'original' and 'mathed' insets.
                        // Note that the localDispatch performs updateInset
                        // also.
-                       base->localDispatch(ev);
+                       FuncRequest fr(bv_, LFUN_INSET_MODIFY, ev.argument);
+                       base->localDispatch(fr);
                } else {
-                       inset = createInset(ev);
+                       Inset * inset = createInset(ev);
                        if (inset && insertInset(inset)) {
                                updateInset(inset, true);
                        } else {
@@ -1250,15 +1256,15 @@ bool BufferView::Pimpl::dispatch(FuncRequest const & ev_in)
        case LFUN_TRACK_CHANGES:
                trackChanges();
                break;
+
        case LFUN_MERGE_CHANGES:
                owner_->getDialogs().showMergeChanges();
                break;
+
        case LFUN_ACCEPT_ALL_CHANGES: {
                bv_->update(bv_->text, BufferView::SELECT | BufferView::FITCUR);
                bv_->text->setCursor(bv_, &(*bv_->buffer()->paragraphs.begin()), 0);
-#warning FIXME changes 
+#warning FIXME changes
                //moveCursorUpdate(false);
 
                while (lyxfind::findNextChange(bv_)) {
@@ -1268,11 +1274,11 @@ bool BufferView::Pimpl::dispatch(FuncRequest const & ev_in)
                        BufferView::SELECT | BufferView::FITCUR | BufferView::CHANGE);
                break;
        }
+
        case LFUN_REJECT_ALL_CHANGES: {
                bv_->update(bv_->text, BufferView::SELECT | BufferView::FITCUR);
                bv_->text->setCursor(bv_, &(*bv_->buffer()->paragraphs.begin()), 0);
-#warning FIXME changes 
+#warning FIXME changes
                //moveCursorUpdate(false);
 
                while (lyxfind::findNextChange(bv_)) {
@@ -1282,7 +1288,7 @@ bool BufferView::Pimpl::dispatch(FuncRequest const & ev_in)
                        BufferView::SELECT | BufferView::FITCUR | BufferView::CHANGE);
                break;
        }
+
        case LFUN_ACCEPT_CHANGE: {
                bv_->getLyXText()->acceptChange(bv_);
                update(bv_->text,
@@ -1296,7 +1302,7 @@ bool BufferView::Pimpl::dispatch(FuncRequest const & ev_in)
                        BufferView::SELECT | BufferView::FITCUR | BufferView::CHANGE);
                break;
        }
+
        case LFUN_UNKNOWN_ACTION:
                ev.errorMessage(N_("Unknown function!"));
                break;