mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-22 05:16:21 +00:00
Unify graphics-groups inside marked block functionality.
Fixes #11026. https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg203683.html
This commit is contained in:
parent
6e4e086900
commit
b88ed81e7f
@ -358,6 +358,7 @@ Menuset
|
||||
Item "Apply Last Text Style|A" "textstyle-apply"
|
||||
Submenu "Text Style|x" "edit_textstyles"
|
||||
Item "Paragraph Settings...|P" "layout-paragraph"
|
||||
OptItem "Unify Graphics Groups|U" "graphics-unify"
|
||||
LanguageSelector
|
||||
Separator
|
||||
Item "Fullscreen Mode" "ui-toggle fullscreen"
|
||||
|
@ -1151,6 +1151,10 @@ bool BufferView::getStatus(FuncRequest const & cmd, FuncStatus & flag)
|
||||
flag.setEnabled(true);
|
||||
break;
|
||||
|
||||
case LFUN_GRAPHICS_UNIFY:
|
||||
flag.setEnabled(cur.selection());
|
||||
break;
|
||||
|
||||
case LFUN_WORD_FINDADV: {
|
||||
FindAndReplaceOptions opt;
|
||||
istringstream iss(to_utf8(cmd.argument()));
|
||||
@ -1697,6 +1701,47 @@ void BufferView::dispatch(FuncRequest const & cmd, DispatchResult & dr)
|
||||
break;
|
||||
}
|
||||
|
||||
case LFUN_GRAPHICS_UNIFY: {
|
||||
|
||||
cur.recordUndoFullBuffer();
|
||||
|
||||
DocIterator from, to;
|
||||
from = cur.selectionBegin();
|
||||
to = cur.selectionEnd();
|
||||
|
||||
string newId = cmd.getArg(0);
|
||||
bool fetchId=newId.empty(); //if we wait for groupId from first graphics inset
|
||||
|
||||
InsetGraphicsParams grp_par;
|
||||
InsetGraphics::string2params(graphics::getGroupParams(buffer_, newId), buffer_, grp_par);
|
||||
|
||||
if (!from.nextInset()) //move to closest inset
|
||||
from.forwardInset();
|
||||
|
||||
while (!from.empty() && from < to) {
|
||||
Inset * inset = from.nextInset();
|
||||
if (!inset)
|
||||
break;
|
||||
if (inset->lyxCode() == GRAPHICS_CODE) {
|
||||
InsetGraphics * ig = inset->asInsetGraphics();
|
||||
if (!ig)
|
||||
break;
|
||||
InsetGraphicsParams inspar = ig->getParams();
|
||||
if (fetchId) {
|
||||
grp_par = inspar;
|
||||
fetchId = false;
|
||||
|
||||
} else {
|
||||
grp_par.filename = inspar.filename;
|
||||
ig->setParams(grp_par);
|
||||
}
|
||||
}
|
||||
from.forwardInset();
|
||||
}
|
||||
dr.screenUpdate(Update::Force); //needed if triggered from context menu
|
||||
break;
|
||||
}
|
||||
|
||||
case LFUN_STATISTICS: {
|
||||
DocIterator from, to;
|
||||
if (cur.selection()) {
|
||||
|
@ -476,7 +476,8 @@ enum FuncCode
|
||||
LFUN_DEVEL_MODE_TOGGLE, // lasgouttes 20170723
|
||||
//370
|
||||
LFUN_EXPORT_CANCEL, // rgh, 20171227
|
||||
LFUN_BUFFER_ANONYMIZE, // sanda, 20180201
|
||||
LFUN_BUFFER_ANONYMIZE, // sanda, 20180201
|
||||
LFUN_GRAPHICS_UNIFY, // sanda, 20180207
|
||||
LFUN_LASTACTION // end of the table
|
||||
};
|
||||
|
||||
|
@ -3555,6 +3555,17 @@ void LyXAction::init()
|
||||
*/
|
||||
{ LFUN_SET_GRAPHICS_GROUP, "set-graphics-group", Noop, Edit },
|
||||
|
||||
/*!
|
||||
* \var lyx::FuncCode lyx::LFUN_GRAPHICS_UNIFY
|
||||
* \li Action: Set the same group for all graphics insets in the marked block.
|
||||
* \li Syntax: graphics-unify [<GROUP>]
|
||||
* \li Params: <GROUP>: Id for an existing group. In case the Id is an empty string,
|
||||
the group Id from the first graphics inset will be used.
|
||||
* \li Origin: sanda, 7 Feb 2018
|
||||
* \endvar
|
||||
*/
|
||||
{ LFUN_GRAPHICS_UNIFY, "graphics-unify", Noop, Edit },
|
||||
|
||||
|
||||
/*!
|
||||
* \var lyx::FuncCode lyx::LFUN_SPACE_INSERT
|
||||
|
Loading…
Reference in New Issue
Block a user