mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-23 21:40:19 +00:00
Introducing LFUN_SPLIT_VIEW
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23084 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
f9963f83c8
commit
9d40f89b58
@ -1140,6 +1140,8 @@ void LyXAction::init()
|
||||
{ LFUN_WINDOW_NEW, "window-new", NoBuffer, Buffer },
|
||||
{ LFUN_WINDOW_CLOSE, "window-close", NoBuffer, Buffer },
|
||||
|
||||
{ LFUN_SPLIT_VIEW, "split-view", ReadOnly, Buffer },
|
||||
|
||||
{ LFUN_DIALOG_SHOW, "dialog-show", NoBuffer, Edit },
|
||||
{ LFUN_DIALOG_SHOW_NEW_INSET, "dialog-show-new-inset", Noop, Edit },
|
||||
{ LFUN_DIALOG_UPDATE, "dialog-update", NoBuffer, Edit },
|
||||
|
@ -452,6 +452,7 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
|
||||
case LFUN_INSET_APPLY:
|
||||
case LFUN_BUFFER_WRITE:
|
||||
case LFUN_BUFFER_WRITE_AS:
|
||||
case LFUN_SPLIT_VIEW:
|
||||
if (lyx_view_)
|
||||
return lyx_view_->getStatus(cmd);
|
||||
enable = false;
|
||||
|
@ -706,23 +706,21 @@ GuiWorkArea * GuiView::workArea(Buffer & buffer)
|
||||
|
||||
GuiWorkArea * GuiView::addWorkArea(Buffer & buffer)
|
||||
{
|
||||
|
||||
// Automatically create a TabWorkArea if there are none yet.
|
||||
if (!d.splitter_->count())
|
||||
addTabWorkArea();
|
||||
|
||||
TabWorkArea * tab_widget = d.currentTabWorkArea();
|
||||
TabWorkArea * tab_widget = d.splitter_->count()
|
||||
? d.currentTabWorkArea() : addTabWorkArea();
|
||||
return tab_widget->addWorkArea(buffer, *this);
|
||||
}
|
||||
|
||||
|
||||
void GuiView::addTabWorkArea()
|
||||
TabWorkArea * GuiView::addTabWorkArea()
|
||||
{
|
||||
TabWorkArea * twa = new TabWorkArea;
|
||||
QObject::connect(twa, SIGNAL(currentWorkAreaChanged(GuiWorkArea *)),
|
||||
this, SLOT(on_currentWorkAreaChanged(GuiWorkArea *)));
|
||||
d.splitter_->addWidget(twa);
|
||||
d.stack_widget_->setCurrentWidget(d.splitter_);
|
||||
return twa;
|
||||
}
|
||||
|
||||
|
||||
@ -967,6 +965,10 @@ FuncStatus GuiView::getStatus(FuncRequest const & cmd)
|
||||
enable = buf;
|
||||
break;
|
||||
|
||||
case LFUN_SPLIT_VIEW:
|
||||
enable = buf;
|
||||
break;
|
||||
|
||||
case LFUN_TOOLBAR_TOGGLE:
|
||||
flag.setOnOff(d.toolbars_->visible(cmd.getArg(0)));
|
||||
break;
|
||||
@ -1814,6 +1816,15 @@ bool GuiView::dispatch(FuncRequest const & cmd)
|
||||
setFocus();
|
||||
break;
|
||||
|
||||
case LFUN_SPLIT_VIEW:
|
||||
if (Buffer * buf = buffer()) {
|
||||
TabWorkArea * twa = addTabWorkArea();
|
||||
GuiWorkArea * wa = twa->addWorkArea(*buf, *this);
|
||||
setCurrentWorkArea(wa);
|
||||
connectBufferView(wa->bufferView());
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
@ -39,6 +39,7 @@ class Dialog;
|
||||
class GuiLayoutBox;
|
||||
class GuiToolbar;
|
||||
class GuiWorkArea;
|
||||
class TabWorkArea;
|
||||
|
||||
/**
|
||||
* GuiView - Qt4 implementation of LyXView
|
||||
@ -160,7 +161,7 @@ private Q_SLOTS:
|
||||
|
||||
private:
|
||||
///
|
||||
void addTabWorkArea();
|
||||
TabWorkArea * addTabWorkArea();
|
||||
|
||||
/// connect to signals in the given BufferView
|
||||
void connectBufferView(BufferView & bv);
|
||||
|
@ -572,6 +572,7 @@ void GuiWorkArea::contextMenuEvent(QContextMenuEvent * e)
|
||||
|
||||
void GuiWorkArea::focusInEvent(QFocusEvent * /*event*/)
|
||||
{
|
||||
lyx_view_->setCurrentWorkArea(this);
|
||||
// Repaint the whole screen.
|
||||
// Note: this is different from redraw() as only the backing pixmap
|
||||
// will be redrawn, which is cheap.
|
||||
|
@ -413,6 +413,7 @@ enum kb_action {
|
||||
LFUN_IN_MATHMACROTEMPLATE,
|
||||
LFUN_SCROLL,
|
||||
LFUN_UI_TOGGLE,
|
||||
LFUN_SPLIT_VIEW,
|
||||
LFUN_LASTACTION // end of the table
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user