mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-22 01:59:02 +00:00
Implement and bind buffer-move-{next,previous}
Control + Shift + PgDn now moves a tab to the right. Control + Shift + PgUp now moves a tab to the left. These keybindings are consistent with Chromium, Firefox, Nautilus, and gnome-terminal. Note that I allow for wrapping. This is consistent with allowing wrapping for buffer-{next,previous}, but there might be reasons to disable it in the future.
This commit is contained in:
parent
34eadf5d49
commit
6cf81782dd
@ -29,6 +29,12 @@ The following new LyX functions have been introduced in 2.2:
|
|||||||
- buffer-view-cache
|
- buffer-view-cache
|
||||||
Opens the last previewed output of the buffer, if it exists.
|
Opens the last previewed output of the buffer, if it exists.
|
||||||
|
|
||||||
|
- buffer-move-next
|
||||||
|
Moves the current tab one spot to the right.
|
||||||
|
|
||||||
|
- buffer-move-previous
|
||||||
|
Moves the current tab one spot to the left.
|
||||||
|
|
||||||
|
|
||||||
The following LyX functions have been changed in 2.2:
|
The following LyX functions have been changed in 2.2:
|
||||||
|
|
||||||
@ -36,6 +42,9 @@ The following LyX functions have been changed in 2.2:
|
|||||||
|
|
||||||
The following LyX key bindings have been changed in 2.2:
|
The following LyX key bindings have been changed in 2.2:
|
||||||
|
|
||||||
|
- For bindings where Control + {PgDn, PgUp} switches to the
|
||||||
|
{next, previous} tab, Control + Shift + {PgDn, PgUp} moves the current
|
||||||
|
tab to the {next, previous} tab.
|
||||||
|
|
||||||
|
|
||||||
The following LyX documents have been moved in 2.2:
|
The following LyX documents have been moved in 2.2:
|
||||||
|
@ -187,8 +187,8 @@ Format 2
|
|||||||
\bind "S-KP_Next" "screen-down-select"
|
\bind "S-KP_Next" "screen-down-select"
|
||||||
\bind "S-C-KP_Home" "buffer-begin-select"
|
\bind "S-C-KP_Home" "buffer-begin-select"
|
||||||
\bind "S-C-KP_End" "buffer-end-select"
|
\bind "S-C-KP_End" "buffer-end-select"
|
||||||
\bind "S-C-KP_Prior" "buffer-begin-select"
|
\bind "S-C-KP_Prior" "buffer-move-previous"
|
||||||
\bind "S-C-KP_Next" "buffer-end-select"
|
\bind "S-C-KP_Next" "buffer-move-next"
|
||||||
\bind "C-KP_Insert" "copy"
|
\bind "C-KP_Insert" "copy"
|
||||||
\bind "S-KP_Insert" "paste"
|
\bind "S-KP_Insert" "paste"
|
||||||
\bind "S-KP_Delete" "cut"
|
\bind "S-KP_Delete" "cut"
|
||||||
|
@ -252,8 +252,8 @@ Format 2
|
|||||||
\bind "S-KP_Next" "screen-down-select"
|
\bind "S-KP_Next" "screen-down-select"
|
||||||
\bind "S-C-KP_Home" "buffer-begin-select"
|
\bind "S-C-KP_Home" "buffer-begin-select"
|
||||||
\bind "S-C-KP_End" "buffer-end-select"
|
\bind "S-C-KP_End" "buffer-end-select"
|
||||||
\bind "S-C-KP_Prior" "buffer-begin-select"
|
\bind "S-C-KP_Prior" "buffer-move-previous"
|
||||||
\bind "S-C-KP_Next" "buffer-end-select"
|
\bind "S-C-KP_Next" "buffer-move-next"
|
||||||
\bind "M-h" "inset-select-all"
|
\bind "M-h" "inset-select-all"
|
||||||
\bind "C-KP_Insert" "copy"
|
\bind "C-KP_Insert" "copy"
|
||||||
\bind "S-KP_Insert" "paste"
|
\bind "S-KP_Insert" "paste"
|
||||||
|
@ -314,8 +314,8 @@ Format 2
|
|||||||
\bind "S-KP_Next" "screen-down-select"
|
\bind "S-KP_Next" "screen-down-select"
|
||||||
\bind "S-C-KP_Home" "buffer-begin-select"
|
\bind "S-C-KP_Home" "buffer-begin-select"
|
||||||
\bind "S-C-KP_End" "buffer-end-select"
|
\bind "S-C-KP_End" "buffer-end-select"
|
||||||
\bind "S-C-KP_Prior" "buffer-begin-select"
|
\bind "S-C-KP_Prior" "buffer-move-previous"
|
||||||
\bind "S-C-KP_Next" "buffer-end-select"
|
\bind "S-C-KP_Next" "buffer-move-next"
|
||||||
\bind "C-KP_Insert" "copy"
|
\bind "C-KP_Insert" "copy"
|
||||||
\bind "S-KP_Insert" "paste"
|
\bind "S-KP_Insert" "paste"
|
||||||
\bind "S-KP_Delete" "cut"
|
\bind "S-KP_Delete" "cut"
|
||||||
|
@ -249,8 +249,8 @@ Format 2
|
|||||||
\bind "S-C-KP_Down" "paragraph-down-select"
|
\bind "S-C-KP_Down" "paragraph-down-select"
|
||||||
\bind "S-KP_Home" "line-begin-select"
|
\bind "S-KP_Home" "line-begin-select"
|
||||||
\bind "S-KP_End" "line-end-select"
|
\bind "S-KP_End" "line-end-select"
|
||||||
\bind "S-KP_Prior" "screen-up-select"
|
\bind "S-KP_Prior" "buffer-move-previous"
|
||||||
\bind "S-KP_Next" "screen-down-select"
|
\bind "S-KP_Next" "buffer-move-next"
|
||||||
\bind "S-C-KP_Home" "buffer-begin-select"
|
\bind "S-C-KP_Home" "buffer-begin-select"
|
||||||
\bind "S-C-KP_End" "buffer-end-select"
|
\bind "S-C-KP_End" "buffer-end-select"
|
||||||
\bind "S-C-KP_Prior" "buffer-begin-select"
|
\bind "S-C-KP_Prior" "buffer-begin-select"
|
||||||
|
@ -460,6 +460,9 @@ enum FuncCode
|
|||||||
LFUN_SEPARATOR_INSERT, // ef 20140502
|
LFUN_SEPARATOR_INSERT, // ef 20140502
|
||||||
LFUN_SERVER_GET_STATISTICS, // brokenclock 20141010
|
LFUN_SERVER_GET_STATISTICS, // brokenclock 20141010
|
||||||
LFUN_BUFFER_VIEW_CACHE, // skostysh 20150401
|
LFUN_BUFFER_VIEW_CACHE, // skostysh 20150401
|
||||||
|
LFUN_BUFFER_MOVE_NEXT, // skostysh 20150408
|
||||||
|
// 340
|
||||||
|
LFUN_BUFFER_MOVE_PREVIOUS, // skostysh 20150408
|
||||||
LFUN_LASTACTION // end of the table
|
LFUN_LASTACTION // end of the table
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -3289,6 +3289,13 @@ void LyXAction::init()
|
|||||||
* \endvar
|
* \endvar
|
||||||
*/
|
*/
|
||||||
{ LFUN_BUFFER_NEXT, "buffer-next", ReadOnly, Buffer },
|
{ LFUN_BUFFER_NEXT, "buffer-next", ReadOnly, Buffer },
|
||||||
|
/*!
|
||||||
|
* \var lyx::FuncCode lyx::LFUN_BUFFER_MOVE_NEXT
|
||||||
|
* \li Action: Moves the current tab one spot to the right.
|
||||||
|
* \li Syntax: buffer-move-next
|
||||||
|
* \endvar
|
||||||
|
*/
|
||||||
|
{ LFUN_BUFFER_MOVE_NEXT, "buffer-move-next", ReadOnly, Buffer },
|
||||||
/*!
|
/*!
|
||||||
* \var lyx::FuncCode lyx::LFUN_BUFFER_PREVIOUS
|
* \var lyx::FuncCode lyx::LFUN_BUFFER_PREVIOUS
|
||||||
* \li Action: Switch to the previous opened document.
|
* \li Action: Switch to the previous opened document.
|
||||||
@ -3296,6 +3303,13 @@ void LyXAction::init()
|
|||||||
* \endvar
|
* \endvar
|
||||||
*/
|
*/
|
||||||
{ LFUN_BUFFER_PREVIOUS, "buffer-previous", ReadOnly, Buffer },
|
{ LFUN_BUFFER_PREVIOUS, "buffer-previous", ReadOnly, Buffer },
|
||||||
|
/*!
|
||||||
|
* \var lyx::FuncCode lyx::LFUN_BUFFER_MOVE_PREVIOUS
|
||||||
|
* \li Action: Moves the current tab one spot to the left.
|
||||||
|
* \li Syntax: buffer-move-previous
|
||||||
|
* \endvar
|
||||||
|
*/
|
||||||
|
{ LFUN_BUFFER_MOVE_PREVIOUS, "buffer-move-previous", ReadOnly, Buffer },
|
||||||
/*!
|
/*!
|
||||||
* \var lyx::FuncCode lyx::LFUN_MASTER_BUFFER_UPDATE
|
* \var lyx::FuncCode lyx::LFUN_MASTER_BUFFER_UPDATE
|
||||||
* \li Action: Update (export) the document built from the master buffer,
|
* \li Action: Update (export) the document built from the master buffer,
|
||||||
|
@ -1921,6 +1921,9 @@ bool GuiView::getStatus(FuncRequest const & cmd, FuncStatus & flag)
|
|||||||
enable = doc_buffer;
|
enable = doc_buffer;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case LFUN_BUFFER_MOVE_NEXT:
|
||||||
|
case LFUN_BUFFER_MOVE_PREVIOUS:
|
||||||
|
// we do not cycle when moving
|
||||||
case LFUN_BUFFER_NEXT:
|
case LFUN_BUFFER_NEXT:
|
||||||
case LFUN_BUFFER_PREVIOUS:
|
case LFUN_BUFFER_PREVIOUS:
|
||||||
// because we cycle, it doesn't matter whether on first or last
|
// because we cycle, it doesn't matter whether on first or last
|
||||||
@ -2917,7 +2920,7 @@ bool GuiView::inOtherView(Buffer & buf)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GuiView::gotoNextOrPreviousBuffer(NextOrPrevious np)
|
void GuiView::gotoNextOrPreviousBuffer(NextOrPrevious np, bool const move)
|
||||||
{
|
{
|
||||||
if (!documentBufferView())
|
if (!documentBufferView())
|
||||||
return;
|
return;
|
||||||
@ -2932,7 +2935,10 @@ void GuiView::gotoNextOrPreviousBuffer(NextOrPrevious np)
|
|||||||
next_index = (i == nwa - 1 ? 0 : i + 1);
|
next_index = (i == nwa - 1 ? 0 : i + 1);
|
||||||
else
|
else
|
||||||
next_index = (i == 0 ? nwa - 1 : i - 1);
|
next_index = (i == 0 ? nwa - 1 : i - 1);
|
||||||
setBuffer(&workArea(next_index)->bufferView().buffer());
|
if (move)
|
||||||
|
twa->moveTab(i, next_index);
|
||||||
|
else
|
||||||
|
setBuffer(&workArea(next_index)->bufferView().buffer());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3546,11 +3552,19 @@ void GuiView::dispatch(FuncRequest const & cmd, DispatchResult & dr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
case LFUN_BUFFER_NEXT:
|
case LFUN_BUFFER_NEXT:
|
||||||
gotoNextOrPreviousBuffer(NEXTBUFFER);
|
gotoNextOrPreviousBuffer(NEXTBUFFER, false);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case LFUN_BUFFER_MOVE_NEXT:
|
||||||
|
gotoNextOrPreviousBuffer(NEXTBUFFER, true);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LFUN_BUFFER_PREVIOUS:
|
case LFUN_BUFFER_PREVIOUS:
|
||||||
gotoNextOrPreviousBuffer(PREVBUFFER);
|
gotoNextOrPreviousBuffer(PREVBUFFER, false);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case LFUN_BUFFER_MOVE_PREVIOUS:
|
||||||
|
gotoNextOrPreviousBuffer(PREVBUFFER, true);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LFUN_COMMAND_EXECUTE: {
|
case LFUN_COMMAND_EXECUTE: {
|
||||||
|
@ -421,7 +421,7 @@ private:
|
|||||||
PREVBUFFER
|
PREVBUFFER
|
||||||
};
|
};
|
||||||
///
|
///
|
||||||
void gotoNextOrPreviousBuffer(NextOrPrevious np);
|
void gotoNextOrPreviousBuffer(NextOrPrevious np, bool const move);
|
||||||
|
|
||||||
/// Is the dialog currently visible?
|
/// Is the dialog currently visible?
|
||||||
bool isDialogVisible(std::string const & name) const;
|
bool isDialogVisible(std::string const & name) const;
|
||||||
|
@ -218,6 +218,8 @@ public Q_SLOTS:
|
|||||||
/// close the tab given by \c index
|
/// close the tab given by \c index
|
||||||
void closeTab(int index);
|
void closeTab(int index);
|
||||||
///
|
///
|
||||||
|
void moveTab(int fromIndex, int toIndex);
|
||||||
|
///
|
||||||
void updateTabTexts();
|
void updateTabTexts();
|
||||||
|
|
||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
@ -226,8 +228,6 @@ private Q_SLOTS:
|
|||||||
///
|
///
|
||||||
void showContextMenu(const QPoint & pos);
|
void showContextMenu(const QPoint & pos);
|
||||||
///
|
///
|
||||||
void moveTab(int fromIndex, int toIndex);
|
|
||||||
///
|
|
||||||
void mouseDoubleClickEvent(QMouseEvent * event);
|
void mouseDoubleClickEvent(QMouseEvent * event);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
Loading…
Reference in New Issue
Block a user