Merge branch '2.0.x' of git.lyx.org:lyx into 2.0.x

This commit is contained in:
Uwe Stöhr 2014-01-30 01:13:03 +01:00
commit 2831c728f3
6 changed files with 35 additions and 28 deletions

View File

@ -4131,9 +4131,15 @@ void Buffer::updateBuffer(UpdateScope scope, UpdateType utype) const
if (master != this) {
bufToUpdate.insert(this);
master->updateBuffer(UpdateMaster, utype);
// Do this here in case the master has no gui associated with it. Then,
// the TocModel is not updated and TocModel::toc_ is invalid (bug 5699).
if (!master->d->gui_)
// If the master buffer has no gui associated with it, then the TocModel is
// not updated during the updateBuffer call and TocModel::toc_ is invalid
// (bug 5699). The same happens if the master buffer is open in a different
// window. This test catches both possibilities.
// See: http://marc.info/?l=lyx-devel&m=138590578911716&w=2
// There remains a problem here: If there is another child open in yet a third
// window, that TOC is not updated. So some more general solution is needed at
// some point.
if (master->d->gui_ != d->gui_)
structureChanged();
// was buf referenced from the master (i.e. not in bufToUpdate anymore)?

View File

@ -1245,13 +1245,6 @@ pos_type TextMetrics::getColumnNearX(pit_type const pit,
// the value of rtl.
bool const rtl = lastrow ? text_->isRTL(par) : false;
// if the first character is a separator, and we are in RTL
// text, this character will not be painted on screen
// and thus we should not count it and skip to the next. Only
// in freespacing paragraphs, this first character is painted.
if (!par.isFreeSpacing() && par.isSeparator(bidi.vis2log(vc)))
++vc;
while (vc < end && tmpx <= x) {
c = bidi.vis2log(vc);
last_tmpx = tmpx;

View File

@ -528,7 +528,7 @@ QVector<GuiWorkArea*> GuiView::GuiViewPrivate::guiWorkAreas()
}
#if defined(Q_WS_MACX)
#if defined(Q_WS_MACX) && defined(QT_MAC_USE_COCOA)
QMenuBar * GuiView::menuBar() const
{
static QMenuBar * globalMenuBar = new QMenuBar(0);

View File

@ -137,7 +137,7 @@ public:
GuiToolbar * makeToolbar(ToolbarInfo const & tbinfo, bool newline);
void updateStatusBar();
#if defined(Q_WS_MACX)
#if defined(Q_WS_MACX) && defined(QT_MAC_USE_COCOA)
// We have to share one menu bar, so we must create a menu bar that does not have a parent.
// To enforce this we override the QMainWindow::menuBar() implementation.
// See https://bugreports.qt-project.org/browse/QTBUG-25399

View File

@ -1355,6 +1355,7 @@ void MenuDefinition::expandBranches(Buffer const * buf)
BufferParams const & master_params = buf->masterBuffer()->params();
BufferParams const & params = buf->params();
if (params.branchlist().empty() && master_params.branchlist().empty() ) {
LYXERR(Debug::GUI, "No Branches set for Document");
add(MenuItem(MenuItem::Help, qt_("No Branches Set for Document!")));
return;
}
@ -1368,6 +1369,7 @@ void MenuDefinition::expandBranches(Buffer const * buf)
label = convert<docstring>(ii) + ". " + label
+ char_type('|') + convert<docstring>(ii);
}
LYXERR(Debug::GUI, "Add item for branch " << label);
addWithStatusCheck(MenuItem(MenuItem::Command, toqstr(label),
FuncRequest(LFUN_BRANCH_INSERT,
cit->branch())));
@ -1737,24 +1739,25 @@ void Menus::Impl::macxMenuBarInit(GuiView * view, QMenuBar * qmb)
// the special menu for Menus. Fill it up only once.
if (mac_special_menu_.size() == 0) {
LYXERR(Debug::GUI, "Prepare Mac OS X special menu");
for (size_t i = 0 ; i < num_entries ; ++i) {
FuncRequest const func(entries[i].action,
from_utf8(entries[i].arg));
mac_special_menu_.add(MenuItem(MenuItem::Command,
entries[i].label, func));
}
// add the entries to a QMenu that will eventually be empty
// and therefore invisible.
QMenu * qMenu = qmb->addMenu("special");
MenuDefinition::const_iterator cit = mac_special_menu_.begin();
MenuDefinition::const_iterator end = mac_special_menu_.end();
for (size_t i = 0 ; cit != end ; ++cit, ++i) {
Action * action = new Action(view, QIcon(), cit->label(),
cit->func(), QString(), qMenu);
action->setMenuRole(entries[i].role);
qMenu->addAction(action);
}
}
// add the entries to a QMenu that will eventually be empty
// and therefore invisible.
QMenu * qMenu = qmb->addMenu("special");
MenuDefinition::const_iterator cit = mac_special_menu_.begin();
MenuDefinition::const_iterator end = mac_special_menu_.end();
for (size_t i = 0 ; cit != end ; ++cit, ++i) {
Action * action = new Action(view, QIcon(), cit->label(),
cit->func(), QString(), qMenu);
action->setMenuRole(entries[i].role);
qMenu->addAction(action);
LYXERR(Debug::GUI, "Add special menu item " << cit->label());
}
}

View File

@ -55,12 +55,17 @@ What's new
* USER INTERFACE
- Fixed python call in listerrors script.
- Fix outliner-related crash when master and child are open in different
windows (bug 8948).
- Fix the missing menu entry for "Insert Branch <branch name>".
- Fix problem that led to assertion in some cases when space was at
beginning of line (bugs 8838 and 8947).
- Handle undo in `branch-add' function.
- Fix the missing dynamic menus in general and restore correctly from fullscreen.
* DOCUMENTATION AND LOCALIZATION
@ -79,6 +84,6 @@ What's new
* BUILD/INSTALLATION
- improve detection of Qt via pkg-config, especially on Mac OS.
- Improve detection of Qt via pkg-config, especially on Mac OS.
- fix a couple of compilation warnings.
- Fix a couple of compilation warnings.