Merge remote-tracking branch 'origin/4.10' into 4.11

Change-Id: Iad66b08f8d6d7f14319674ae6bb26cdba43b3bfa
This commit is contained in:
Eike Ziller
2019-09-26 14:59:33 +02:00
5 changed files with 93 additions and 24 deletions

57
dist/changes-4.10.1.md vendored Normal file
View File

@@ -0,0 +1,57 @@
# Qt Creator 4.10.1
Qt Creator version 4.10.1 contains bug fixes.
The most important changes are listed in this document. For a complete
list of changes, see the Git log for the Qt Creator sources that
you can check out from the public Git repository. For example:
git clone git://code.qt.io/qt-creator/qt-creator.git
git log --cherry-pick --pretty=oneline origin/v4.10.0..v4.10.1
## Editing
* Fixed file saving with some text encodings
* Fixed `Preserve case` in advanced search and replace (QTCREATORBUG-19696)
* Fixed crash when changing editor font (QTCREATORBUG-22933)
## Help
* Fixed that text moved around when resizing and zooming (QTCREATORBUG-4756)
## Debugging
* Fixed more layout restoration issues (QTCREATORBUG-22286, QTCREATORBUG-22938)
### LLDB
* Fixed wrong empty command line argument when debugging (QTCREATORBUG-22975)
## Qt Quick Designer
* Removed transformations from list of unsupported types
* Fixed update of animation curve editor
## Platform Specific
### macOS
* Fixed window stacking order after closing file dialog (QTCREATORBUG-22906)
## Credits for these changes go to:
Aleksei German
Alexander Akulich
Andre Hartmann
André Pönitz
Christian Stenger
David Schulz
Eike Ziller
Knud Dollereder
Leena Miettinen
Lisandro Damián Nicanor Pérez Meyer
Nikolai Kosjar
Orgad Shaneh
Richard Weickelt
Thomas Hartmann

View File

@@ -83,6 +83,7 @@ class Dumper(DumperBase):
# 'communication', 'unwind', 'commands'])
#self.debugger.EnableLog('lldb', ['all'])
self.debugger.Initialize()
self.debugger.SetAsync(True)
self.debugger.HandleCommand('settings set auto-confirm on')
# FIXME: warn('DISABLING DEFAULT FORMATTERS')
@@ -863,10 +864,7 @@ class Dumper(DumperBase):
pass
else:
if self.useTerminal_:
self.ignoreStops = 2
else:
if self.useTerminal_:
self.ignoreStops = 1
self.ignoreStops = 1
if self.platform_:
self.debugger.SetCurrentPlatform(self.platform_)
@@ -895,7 +893,6 @@ class Dumper(DumperBase):
def prepare(self, args):
error = lldb.SBError()
listener = self.debugger.GetListener()
if self.attachPid_ > 0:
attachInfo = lldb.SBAttachInfo(self.attachPid_)
@@ -948,18 +945,23 @@ class Dumper(DumperBase):
if self.target is not None:
broadcaster = self.target.GetBroadcaster()
listener = self.debugger.GetListener()
broadcaster.AddListener(listener, lldb.SBProcess.eBroadcastBitStateChanged)
listener.StartListeningForEvents(broadcaster, lldb.SBProcess.eBroadcastBitStateChanged)
broadcaster.AddListener(listener, lldb.SBTarget.eBroadcastBitBreakpointChanged)
listener.StartListeningForEvents(broadcaster, lldb.SBTarget.eBroadcastBitBreakpointChanged)
def loop(self):
event = lldb.SBEvent()
broadcaster = self.target.GetBroadcaster()
listener = self.debugger.GetListener()
while True:
if listener.WaitForEvent(10000000, event):
sys.stdout.flush() # IMPORTANT! to receive process state changes with lldb 1100
while listener.GetNextEvent(event):
self.handleEvent(event)
else:
warn('TIMEOUT')
if listener.WaitForEventForBroadcaster(0, broadcaster, event):
self.handleEvent(event)
def describeError(self, error):
desc = lldb.SBStream()
@@ -1301,6 +1303,10 @@ class Dumper(DumperBase):
if lldb.SBBreakpoint.EventIsBreakpointEvent(event):
self.handleBreakpointEvent(event)
return
if not lldb.SBProcess.EventIsProcessEvent(event):
warn("UNEXPECTED event (%s)" % event.GetType())
return
out = lldb.SBStream()
event.GetDescription(out)
#warn("EVENT: %s" % event)
@@ -1793,7 +1799,7 @@ class Dumper(DumperBase):
expr = self.parseAndEvaluate(expr)
self.qqEditable[typeName](self, expr, value)
else:
lhs.SetValueFromCString(value, error)
self.parseAndEvaluate(expr + '=' + value)
self.reportResult(self.describeError(error), args)
def watchPoint(self, args):

View File

@@ -1,11 +1,11 @@
{
\"Name\" : \"%PluginName%\",
\"Version\" : \"0.0.1\",
\"CompatVersion\" : \"0.0.1\",
\"Vendor\" : \"%VendorName%\",
\"Copyright\" : \"%Copyright%\",
\"License\" : \"%License%\",
\"Description\" : \"%Description%\",
\"Url\" : \"%URL%\",
\\"Name\\" : \\"%PluginName%\\",
\\"Version\\" : \\"0.0.1\\",
\\"CompatVersion\\" : \\"0.0.1\\",
\\"Vendor\\" : \\"%VendorName%\\",
\\"Copyright\\" : \\"%Copyright%\\",
\\"License\\" : \\"%License%\\",
\\"Description\\" : \\"%Description%\\",
\\"Url\\" : \\"%URL%\\",
$$dependencyList
}

View File

@@ -553,6 +553,7 @@ void PerspectivePrivate::resetPerspective()
} else {
op.setupLayout();
op.dock->setVisible(op.visibleByDefault);
theMainWindow->d->m_persistentChangedDocks.remove(op.name());
qCDebug(perspectivesLog) << "SETTING " << op.name()
<< " TO ACTIVE: " << op.visibleByDefault;
}
@@ -937,12 +938,10 @@ void PerspectivePrivate::restoreLayout()
qCDebug(perspectivesLog) << "PERSPECTIVE STATE AVAILABLE BY FULL ID.";
}
if (state.isEmpty()) {
qCDebug(perspectivesLog) << "PERSPECTIVE " << m_id << "RESTORE NOT POSSIBLE, NO STORED STATE";
} else {
bool result = theMainWindow->restoreState(state);
qCDebug(perspectivesLog) << "PERSPECTIVE " << m_id << "RESTORED. SUCCESS: " << result;
}
// The order is important here: While QMainWindow can restore layouts with
// not-existing docks (some placeholders are used internally), later
// replacements with restoreDockWidget(dock) trigger a re-layout, resulting
// in different sizes. So make sure all docks exist first before restoring state.
qCDebug(perspectivesLog) << "PERSPECTIVE" << m_id << "RESTORING LAYOUT FROM " << settingsId();
for (DockOperation &op : m_dockOperations) {
@@ -955,6 +954,13 @@ void PerspectivePrivate::restoreLayout()
<< (active == op.visibleByDefault ? "DEFAULT USER" : "*** NON-DEFAULT USER");
}
}
if (state.isEmpty()) {
qCDebug(perspectivesLog) << "PERSPECTIVE " << m_id << "RESTORE NOT POSSIBLE, NO STORED STATE";
} else {
bool result = theMainWindow->restoreState(state);
qCDebug(perspectivesLog) << "PERSPECTIVE " << m_id << "RESTORED, SUCCESS: " << result;
}
}
void PerspectivePrivate::saveLayout()