Don't instantiate repeating boilerplate item data in some
cases (such as large arrays).
This makes it necessary to access parent WatchItems in
a lot more cases than before and needs another separation of
WatchItem/WatchModel code to keep the dumper autotests
in a functional state.
For a plain std::vector<int> with 1 mio items this reduces
extraction time from more than 2 minutes to about 3 seconds.
Change-Id: I175c5f6ee90434a6e85342d8bb71bd10a04dd271
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
The invalid ID is -1 and we shouldn't send 0 to the engine debug
service by default as that will select some random object as context
for expression evaluation.
Change-Id: Ide245468f787cc449ff50ac846c7ff31620c01b4
Task-number: QTCREATORBUG-14931
Reviewed-by: hjk <hjk@theqtcompany.com>
This way the items highlighted in Qt Creator are also marked in the
application when the inspector is active.
Change-Id: I89c3270cf5c108c1549ea01704bfd0e4b7a44ca5
Reviewed-by: hjk <hjk@theqtcompany.com>
This is to adopt the naming to the code in src/qmldebug in
qtdeclarative. Once we can require a version of Qt that has qmldebug
for building QtCreator we can then remove our own version of this code.
Change-Id: I573f0703871b5812789c5c7a6287567d5c2875e6
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
There's a 1:1 relation, and the abstraction is not needed anymore.
Also remove some unused code.
Change-Id: I09a2522deb5d522f46ec7518d19978a038032fbb
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
... in WatchHandler and DebuggerEngine interface.
Adjust using code.
Change-Id: I6371f3e96ba46a783e23a5767cdde24a10d3fce7
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: hjk <hjk@theqtcompany.com>
Rename the list overload. Make the single item overload use
the direct path to insertItem, hook the column resize requests
to the showing/hiding of the watchers pane.
Change-Id: I0a1940c8e1919341a815e6bccbcf55d989d663da
Reviewed-by: hjk <hjk@theqtcompany.com>
Mostly done using the following ruby script:
Dir.glob('**/*.cpp').each { |file|
next if file =~ %r{src/shared/qbs|/qmljs/}
s = File.read(file)
s.scan(/^using namespace (.*);$/) {
ns = $1
t = s.gsub(/^(.*)\b#{ns}::((?!Const)[A-Z])/) { |m|
before = $1
char = $2
if before =~ /"|\/\/|\\|using|SIGNAL|SLOT|Q_/
m
else
before + char
end
}
if t != s
puts file
File.open(file, 'w').write(t)
end
}
}
Change-Id: I1aa1a2b6ccbafeb1a8f3053fffa39b3f96992591
Reviewed-by: hjk <hjk@theqtcompany.com>
Move some function out of the DebuggerCore "namespace", to avoid one
indirection and removes clutter in the calling code.
Change-Id: I1c870d5c7eeade32fa63dedf581490fbb090cd6a
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
"state" is the more widely used term and we should follow that
convention. We also need to distinguish between the state of the
underlying network socket and the client itself. The change makes this
explicit.
As preparation for the upcoming centralized debug support the "State"
enum of the debug client is also moved into the QmlDebugClient class.
Change-Id: Ib9d7e03d23528f16ed696ed3518e813d11ea1c32
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
A lot of our build system files specify unneeded include
paths. These roughly fall into the following categories:
a) Paths that are already set in more general files
such as qtcreator.pri.
b) Paths that serve no purpose at all, possibly
left over from earlier versions of the project.
c) Paths that act as workarounds for wrong include
statements of the form '#include "xyz.h"', where
xyz.h is not in the same directory as the including
file.
This patch removes such path specifications and fixes the offending
include statements from case c).
Tested on Linux, Windows and OSX with qmake and qbs.
Change-Id: I039a8449f8a65df0d616b4c08081145c18ae4b15
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Forward-declare QGraphicsOpacityEffect in DetailsButton,
QProcessEnvironment in Environment, QFileInfo in fileutils,
QUrl in IWelcomePage, FancyLineEdit in PathChooser and
remove unneeded headers.
Change-Id: I7d5f273530dd2059bbdaf0899f0a3bc7e49e8482
Reviewed-by: hjk <hjk121@nokiamail.com>
Update context from QML object tree or the stack frame
depending upon debugger engine state.
Change-Id: I4e6affba37acc016513ad95cd278a400aaa18c49
Reviewed-by: Christiaan Janssen <christiaan.janssen@digia.com>
When an object is selected in the Inspector, the
Editor is updated to show the relevant code.
Task-number: QTCREATORBUG-8246
Change-Id: I4f7fbcccdeb22849682fa72c63e87a78f48d185b
Reviewed-by: hjk <qthjk@ovi.com>
Reviewed-by: Christiaan Janssen <christiaan.janssen@digia.com>
QML objects are fetched lazily when constructing the object tree.
Incase parents have not been previously fetched, we fetch the
required data to construct only the relevant branch of the tree.
Task-number: QTCREATORBUG-8246
Change-Id: Id529c3b2334d33ff4eb46b14f50cf042ad2960e2
Reviewed-by: hjk <qthjk@ovi.com>
The watchhandler needs to be reset for locals before
inserting the values of a new frame. Also the DebuggerTooltipManager
needs to be notified. The values of the locals in the
LocalsAndExpressions window should be editable.
Task-number: QTCREATORBUG-7992
Change-Id: I556e23b408db09b510f1f2bc350ff55187ec87c2
Reviewed-by: Robert Loehning <robert.loehning@digia.com>
Reviewed-by: Christiaan Janssen <christiaan.janssen@digia.com>
Fetch data on demand for 4.x. Since, parentIds are not
known, the tree will be reset when new objects are created.
Related changes in Qt side:
https://codereview.qt-project.org/#change,35982
Task-number: QTCREATORBUG-7779
Change-Id: I8b53604979bbbc2e6f01bc7b785929811a76f398
Reviewed-by: Christiaan Janssen <christiaan.janssen@digia.com>