mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-22 13:18:28 +00:00
Make "paste recent" accessible from toolbar
via button menu
This commit is contained in:
parent
154b4fdece
commit
9495ff665d
@ -79,7 +79,7 @@ ToolbarSet
|
||||
Item "Redo" "redo"
|
||||
Item "Cut" "cut"
|
||||
Item "Copy" "copy"
|
||||
Item "Paste" "paste"
|
||||
DynamicMenu "paste" "Paste"
|
||||
Item "Find and replace" "dialog-show findreplace"
|
||||
Item "Find and replace (advanced)" "dialog-toggle findreplaceadv"
|
||||
Item "Navigate back" "bookmark-goto 0"
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include "BufferParams.h"
|
||||
#include "BufferView.h"
|
||||
#include "Cursor.h"
|
||||
#include "CutAndPaste.h"
|
||||
#include "FuncRequest.h"
|
||||
#include "FuncStatus.h"
|
||||
#include "GuiApplication.h"
|
||||
@ -43,6 +44,7 @@
|
||||
|
||||
#include "support/convert.h"
|
||||
#include "support/debug.h"
|
||||
#include "support/docstring_list.h"
|
||||
#include "support/gettext.h"
|
||||
#include "support/lstrings.h"
|
||||
|
||||
@ -321,7 +323,8 @@ bool DynamicMenuButton::isMenuType(string const & s)
|
||||
{
|
||||
return s == "dynamic-custom-insets"
|
||||
|| s == "dynamic-char-styles"
|
||||
|| s == "dynamic-freefonts";
|
||||
|| s == "dynamic-freefonts"
|
||||
|| s == "paste";
|
||||
}
|
||||
|
||||
|
||||
@ -385,6 +388,32 @@ void DynamicMenuButton::updateTriggered()
|
||||
}
|
||||
setPopupMode(QToolButton::DelayedPopup);
|
||||
setEnabled(lyx::getStatus(FuncRequest(LFUN_TEXTSTYLE_APPLY)).enabled());
|
||||
} else if (menutype == "paste") {
|
||||
m->clear();
|
||||
docstring_list const sel = cap::availableSelections(&bv->buffer());
|
||||
|
||||
docstring_list::const_iterator cit = sel.begin();
|
||||
docstring_list::const_iterator end = sel.end();
|
||||
|
||||
Action * default_act = nullptr;
|
||||
for (unsigned int index = 0; cit != end; ++cit, ++index) {
|
||||
docstring const s = *cit;
|
||||
FuncRequest func(LFUN_PASTE, convert<docstring>(index),
|
||||
FuncRequest::TOOLBAR);
|
||||
docstring const lb = char_type('&') + convert<docstring>(index)
|
||||
+ from_ascii(". ") + s ;
|
||||
Action * act = new Action(func, QIcon(), toqstr(lb), toqstr(s), this);
|
||||
m->addAction(act);
|
||||
// The most recent one is the default
|
||||
if (index == 0)
|
||||
default_act = act;
|
||||
}
|
||||
Action * default_action = new Action(FuncRequest(LFUN_PASTE),
|
||||
getIcon(FuncRequest(LFUN_PASTE), false),
|
||||
qt_("Paste"), qt_("Paste"), this);
|
||||
QToolButton::setDefaultAction(default_action);
|
||||
setPopupMode(QToolButton::DelayedPopup);
|
||||
setEnabled(lyx::getStatus(FuncRequest(LFUN_PASTE)).enabled());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -87,6 +87,7 @@ protected Q_SLOTS:
|
||||
/// dynamic-custom-insets
|
||||
/// dynamic-char-styles
|
||||
/// dynamic-freefonts
|
||||
/// paste
|
||||
/// To add a new one of these, you must add a routine, like
|
||||
/// loadFlexInsets, that will populate the menu, and call it from
|
||||
/// updateTriggered. Make sure to add the new type to isMenuType().
|
||||
|
Loading…
Reference in New Issue
Block a user