Hanging connection attempts will be aborted in response to the
"retry" message box now.
Change-Id: I63775eed9d7677a62293ba5c96a43e839ba285b4
Task-number: QTCREATORBUG-14685
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@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: I492792bb9e5655c55795e938031efc557c9a462f
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
Avoid keeping multiple, potentially diverging copies of the same time
information and make sure all the times are consistent with each other.
Stating the times as properties allows us to use bindings in more
places, too.
Change-Id: I9cdd4f561ac22ad795939594ba340b1fbc070e9a
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
This allows us to reduce the amount of data we need to handle
if the user isn't interested in certain categories.
Task-number: QTBUG-41118
Change-Id: Ieaac12fb1dec29d6035642f433bc1a1d49e545c2
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
With EngineControl multiple QQuickViews can be profiled in one
profiler if they're all running in the same thread. As the QML
engines are never run in parallel then this results in useful
data.
Change-Id: I83a34fb81fd466c5cac838b096c1b1f322ded882
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
We never have multi-string event data and dragging around the list
everywhere just adds noise.
Change-Id: I4c73543464abea01d342e3f0a296ed1b05ee2a88
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Generally save both the Message and RangeType attributes so that we
avoid clashes between those types. Also keep all the types in one
place and make their names follow qtdeclarative's conventions.
Change-Id: I811bfcc4b72aaa2a0142babc92d96968ed2d4007
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Like this no one will get the idea that the socket state represents
the connection state and we can safely replace the underlying
implementation with something not derived from QAbstractSocket.
All the logging is retained but the connection creates the messages
now.
Change-Id: If84ff42f1fa9785254fbd49c75be867b9f663c83
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
The isConnected() method was misleading as it only checked for the
network socket to be connected. Sending data before the hello message
arrives is a pretty stupid idea and the debug clients need a way to
detect that. The new isOpen method stresses that it's about the
logical protocol, not the network socket.
Change-Id: I84f093d91d7a21d20a8f3d14730c9f189ec35bde
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
There is no reason for any external class to access that. If the call
to flush() from the qml profiler had any effect then it hid a bug that
should be fixed.
Change-Id: I8f655733bd3bff808653cd56b1904aa87c31f6c0
Reviewed-by: Kai Koehne <kai.koehne@digia.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>
We cannot set -qmljsdebugger arg in bar-descriptor.xml file since
it can be done in DeployStep only. QTC architecture do not allows this.
Current approach modifies already deployed MANIFEST.MF on the device.
This patch has nothing to do with QML analyzer for pure QNX,
it's purely for BlackBerry.
Task-number: QTCREATORBUG-10520
Change-Id: I89e83c6ff70a7a35344ff7e3fe573fc19e797ccb
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
disconnectClientSignals only disconnects signals of objects that are
deleted directly afterwards. As deleting a QObject automatically
disconnects its signals it's unnecessary to explicitly do that before.
However, if QmlProfilerClientManager is deleted from the destructor of
QmlProfilerTool, receivers of those signals may have already been
deleted. This can lead to crashes.
Task-number: QTCREATORBUG-10634
Change-Id: I1e5ce7a6ac4b331fa423987e3a8faa3584b991d2
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Only methods as programming functions are affected. Besides renaming
some actions like "Switch Between Function Declaration/Definition" this
mostly touches (api) code comments.
This is a follow-up patch to commit 872bfb7.
Change-Id: Icb65e8d73b59a022f8885b14df497169543a3b92
Reviewed-by: hjk <hjk121@nokiamail.com>
#!/usr/bin/env ruby
Dir.glob('**/*.cpp') { |file|
# skip ast (excluding paste, astpath, and canv'ast'imer)
next if file =~ /ast[^eip]|keywords\.|qualifiers|preprocessor|names.cpp/i
s = File.read(file)
next if s.include?('qlalr')
orig = s.dup
s.gsub!(/\n *if [^\n]*{\n[^\n]*\n\s+}(\s+else if [^\n]* {\n[^\n]*\n\s+})*(\s+else {\n[^\n]*\n\s+})?\n/m) { |m|
res = $&
if res =~ /^\s*(\/\/|[A-Z_]{3,})/ # C++ comment or macro (Q_UNUSED, SDEBUG), do not touch braces
res
else
res.gsub!('} else', 'else')
res.gsub!(/\n +} *\n/m, "\n")
res.gsub(/ *{$/, '')
end
}
s.gsub!(/ *$/, '')
File.open(file, 'wb').write(s) if s != orig
}
Change-Id: I3b30ee60df0986f66c02132c65fc38a3fbb6bbdc
Reviewed-by: hjk <qthjk@ovi.com>
This use case is deprecated in Qt 5. Use QPointer instead.
Change-Id: Id6c32542032656d7cb31cf838d93a680ab9e9327
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Qt Creator's support for Symbian was at its peak in version
2.4.x. Nobody really verified it in Qt Creator 2.5 or 2.6.
It is most likely rotten. Let's remove it!
Also, the Symbian support code was spread throughout the whole
Qt Creator code base. The plugin interfaces evolved in the
meantime and target platforms like Android or QNX have 99% of
their code in separate plugins.
In case anyone wants to revive Symbian support in Qt Creator,
please create a plugin for it.
Change-Id: I56a758a3e2fd5b8c64d9aeb8f63d8e916c4883be
Reviewed-by: Alessandro Portale <alessandro.portale@nokia.com>
The profiler tool was assuming that the socket would get
disconnected after the application was stopped by the user.
Sometimes it is not the case. This patch manages the
oposite situation gracefully.
Change-Id: I4ae439bf2ce6caece37e97f735e980d18c446df0
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
Move Status enum out of QmlDebugClient and drop "QmlDebug"
prefix for the different 'Reference' structs. Allows to
avoid 'using namespace in QmlDebug' in header files.
Change-Id: Id9857977300e86d637cf128ff3417d8b24c8e995
Reviewed-by: Aurindam Jana <aurindam.jana@nokia.com>
Rename the QmlJSDebugClient lib to QmlDebug (shorter names, easier differentiation with the shared/qmljsdebug lib).
Also rename
- QDeclarativeDebug* classes to QmlDebug*
- QDeclarativeOutputParser class to QmlOutputParser
To clarify the features,
- Debugger::QmlDebuggerClient is now Debugger::BaseQmlDebuggerClient
- QmlEngineDebugClient is now BaseEngineDebugClient
- QmlDebuggerClient is now QmlEngineDebugClient
- QDeclarativeEngineDebugClient is now DeclarativeEngineDebugClient
Change-Id: Ie15713730a614c8ab4b637fad0924f95b54e633f
Reviewed-by: Aurindam Jana <aurindam.jana@nokia.com>
Discard pending data if a new trace arrives while an old one
was still being processed. If we don't, the data of both
traces gets mixed, leading to a possible crash.
Change-Id: Ibba7df06f6a4b7e93d00f6fa1fa4802baf3a1731
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
The code of the qmlprofiler client has become a bit too complex,
this patch reorganizes the modules in a more sensible way,
having the modules communicate with each other through a
state machine instead of the excess of signals and slots
from before.
Change-Id: I76f7313779888a1bd07a1cdb1acbf2e47aacf42a
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>