mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-23 05:25:26 +00:00
* preference option to open buffers in tabs or new windows
* moved the open/new file dispatches into GuiApplication to make them GuiView independent git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23729 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
6f26243e13
commit
0ba2a1e6f8
@ -815,16 +815,6 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
|
||||
}
|
||||
|
||||
// --- Menus -----------------------------------------------
|
||||
case LFUN_BUFFER_NEW:
|
||||
lyx_view_->newDocument(argument, false);
|
||||
updateFlags = Update::None;
|
||||
break;
|
||||
|
||||
case LFUN_BUFFER_NEW_TEMPLATE:
|
||||
lyx_view_->newDocument(argument, true);
|
||||
updateFlags = Update::None;
|
||||
break;
|
||||
|
||||
case LFUN_BUFFER_CLOSE:
|
||||
lyx_view_->closeBuffer();
|
||||
updateFlags = Update::None;
|
||||
@ -1987,6 +1977,7 @@ void actOnUpdatedPrefs(LyXRC const & lyxrc_orig, LyXRC const & lyxrc_new)
|
||||
case LyXRC::RC_SERVERPIPE:
|
||||
case LyXRC::RC_SET_COLOR:
|
||||
case LyXRC::RC_SHOW_BANNER:
|
||||
case LyXRC::RC_SINGLE_WINDOW:
|
||||
case LyXRC::RC_SPELL_COMMAND:
|
||||
case LyXRC::RC_TEMPDIRPATH:
|
||||
case LyXRC::RC_TEMPLATEPATH:
|
||||
|
@ -55,7 +55,7 @@ public:
|
||||
|
||||
///
|
||||
void setLyXView(frontend::LyXView * lv);
|
||||
|
||||
|
||||
///
|
||||
void initKeySequences(KeyMap * kb);
|
||||
|
||||
|
@ -153,6 +153,7 @@ keyword_item lyxrcTags[] = {
|
||||
{ "\\serverpipe", LyXRC::RC_SERVERPIPE },
|
||||
{ "\\set_color", LyXRC::RC_SET_COLOR },
|
||||
{ "\\show_banner", LyXRC::RC_SHOW_BANNER },
|
||||
{ "\\single_window", LyXRC::RC_SINGLE_WINDOW },
|
||||
{ "\\sort_layouts", LyXRC::RC_SORT_LAYOUTS },
|
||||
{ "\\spell_command", LyXRC::RC_SPELL_COMMAND },
|
||||
{ "\\tempdir_path", LyXRC::RC_TEMPDIRPATH },
|
||||
@ -292,6 +293,11 @@ void LyXRC::setDefaults() {
|
||||
converter_cache_maxage = 6 * 30 * 24 * 3600; // 6 months
|
||||
user_name = to_utf8(support::user_name());
|
||||
user_email = to_utf8(support::user_email());
|
||||
#ifdef __APPLE_CC__
|
||||
single_window = false;
|
||||
#else
|
||||
single_window = true;
|
||||
#endif
|
||||
|
||||
// Fullscreen settings
|
||||
full_screen_limit = false;
|
||||
@ -1296,6 +1302,10 @@ int LyXRC::read(Lexer & lexrc)
|
||||
if (lexrc.next())
|
||||
full_screen_width = lexrc.getInteger();
|
||||
break;
|
||||
case RC_SINGLE_WINDOW:
|
||||
if (lexrc.next())
|
||||
single_window = lexrc.getBool();
|
||||
break;
|
||||
|
||||
case RC_LAST: break; // this is just a dummy
|
||||
}
|
||||
@ -1874,7 +1884,15 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
|
||||
}
|
||||
if (tag != RC_LAST)
|
||||
break;
|
||||
|
||||
case RC_SINGLE_WINDOW:
|
||||
if (ignore_system_lyxrc ||
|
||||
single_window != system_lyxrc.single_window) {
|
||||
os << "\\single_window "
|
||||
<< convert<string>(single_window)
|
||||
<< '\n';
|
||||
}
|
||||
if (tag != RC_LAST)
|
||||
break;
|
||||
|
||||
os << "\n#\n"
|
||||
<< "# COLOR SECTION ###################################\n"
|
||||
|
@ -138,6 +138,7 @@ public:
|
||||
RC_SERVERPIPE,
|
||||
RC_SET_COLOR,
|
||||
RC_SHOW_BANNER,
|
||||
RC_SINGLE_WINDOW,
|
||||
RC_SORT_LAYOUTS,
|
||||
RC_SPELL_COMMAND,
|
||||
RC_TEMPDIRPATH,
|
||||
@ -436,6 +437,8 @@ public:
|
||||
bool completion_popup_text;
|
||||
///
|
||||
bool completion_popup_after_complete;
|
||||
/// Open new buffers in the current window as tab.
|
||||
bool single_window;
|
||||
};
|
||||
|
||||
|
||||
|
@ -284,6 +284,35 @@ bool GuiApplication::dispatch(FuncRequest const & cmd)
|
||||
break;
|
||||
}
|
||||
|
||||
case LFUN_BUFFER_NEW:
|
||||
if (viewCount() == 0
|
||||
|| (!lyxrc.single_window && current_view_->buffer() != 0))
|
||||
createView();
|
||||
current_view_->newDocument(to_utf8(cmd.argument()), false);
|
||||
break;
|
||||
|
||||
case LFUN_BUFFER_NEW_TEMPLATE:
|
||||
if (viewCount() == 0
|
||||
|| (!lyxrc.single_window && current_view_->buffer() != 0)) {
|
||||
createView();
|
||||
current_view_->newDocument(to_utf8(cmd.argument()), true);
|
||||
if (!current_view_->buffer())
|
||||
current_view_->close();
|
||||
} else
|
||||
current_view_->newDocument(to_utf8(cmd.argument()), true);
|
||||
break;
|
||||
|
||||
case LFUN_FILE_OPEN:
|
||||
if (viewCount() == 0
|
||||
|| (!lyxrc.single_window && current_view_->buffer() != 0)) {
|
||||
createView();
|
||||
current_view_->openDocument(to_utf8(cmd.argument()));
|
||||
if (!current_view_->buffer())
|
||||
current_view_->close();
|
||||
} else
|
||||
current_view_->openDocument(to_utf8(cmd.argument()));
|
||||
break;
|
||||
|
||||
default:
|
||||
// Notify the caller that the action has not been dispatched.
|
||||
return false;
|
||||
@ -346,7 +375,7 @@ void GuiApplication::createView(QString const & geometry_arg)
|
||||
#endif
|
||||
}
|
||||
view->setFocus();
|
||||
|
||||
setActiveWindow(view);
|
||||
setCurrentView(*view);
|
||||
}
|
||||
|
||||
|
@ -1783,6 +1783,8 @@ PrefUserInterface::PrefUserInterface(GuiPreferences * form, QWidget * parent)
|
||||
autoSaveSB, SLOT(setEnabled(bool)));
|
||||
connect(autoSaveCB, SIGNAL(toggled(bool)),
|
||||
TextLabel1, SLOT(setEnabled(bool)));
|
||||
connect(openDocumentsInTabsCB, SIGNAL(clicked()),
|
||||
this, SIGNAL(changed()));
|
||||
connect(uiFilePB, SIGNAL(clicked()),
|
||||
this, SLOT(select_ui()));
|
||||
connect(uiFileED, SIGNAL(textChanged(QString)),
|
||||
@ -1846,6 +1848,7 @@ void PrefUserInterface::apply(LyXRC & rc) const
|
||||
rc.full_screen_tabbar = toggleTabbarCB->isChecked();
|
||||
rc.full_screen_width = fullscreenWidthSB->value();
|
||||
rc.full_screen_limit = fullscreenLimitGB->isChecked();
|
||||
rc.single_window = openDocumentsInTabsCB->isChecked();
|
||||
}
|
||||
|
||||
|
||||
@ -1872,7 +1875,7 @@ void PrefUserInterface::update(LyXRC const & rc)
|
||||
toggleTabbarCB->setChecked(rc.full_screen_tabbar);
|
||||
fullscreenWidthSB->setValue(rc.full_screen_width);
|
||||
fullscreenLimitGB->setChecked(rc.full_screen_limit);
|
||||
|
||||
openDocumentsInTabsCB->setChecked(rc.single_window);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1639,10 +1639,6 @@ bool GuiView::dispatch(FuncRequest const & cmd)
|
||||
bv->cursor().updateFlags(Update::None);
|
||||
|
||||
switch(cmd.action) {
|
||||
case LFUN_FILE_OPEN:
|
||||
openDocument(to_utf8(cmd.argument()));
|
||||
break;
|
||||
|
||||
case LFUN_BUFFER_IMPORT:
|
||||
importDocument(to_utf8(cmd.argument()));
|
||||
break;
|
||||
|
@ -332,6 +332,13 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="4">
|
||||
<widget class="QCheckBox" name="openDocumentsInTabsCB" >
|
||||
<property name="text" >
|
||||
<string>Open documents in &tabs</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
@ -412,6 +419,7 @@
|
||||
<tabstop>autoSaveCB</tabstop>
|
||||
<tabstop>autoSaveSB</tabstop>
|
||||
<tabstop>lastfilesSB</tabstop>
|
||||
<tabstop>openDocumentsInTabsCB</tabstop>
|
||||
<tabstop>cursorFollowsCB</tabstop>
|
||||
<tabstop>sortEnvironmentsCB</tabstop>
|
||||
<tabstop>groupEnvironmentsCB</tabstop>
|
||||
|
Loading…
Reference in New Issue
Block a user