Commit Graph

43 Commits

Author SHA1 Message Date
hjk
67f9a26208 Merge AnalyzerRunControl::logMessage and RunControl::appendMessage
The tools' ability to hook into processing of the output is
retained by making the function virtual.

Also remove the unusual overload of the RunControl::appendMessage
slot and the signal of the same name by renaming the signal.

Change-Id: If3c3cc2dd9c933169dc30b16e3165c9b3cf1440e
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-05-20 10:52:26 +00:00
Ulf Hermann
a53780924d QmlProfiler: Apply some code cosmetics
Change-Id: I772713aec3a6c25136174b39b853a9ef3ee42a0b
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2016-05-06 10:27:09 +00:00
Ulf Hermann
385237dbbd Use Utils::Port where possible
This solves the ambiguity between 0 and -1 being the "invalid" port.

Change-Id: I3bac11dd4117bb1820fbd58186699925b73df1c5
Reviewed-by: hjk <hjk@theqtcompany.com>
2016-04-20 11:06:34 +00:00
hjk
92e301a054 Debugger: Merge debug mode and analyze mode
On the user-visible side, only the 'Analyze' mode button disappears,
and instead a combobox to switch between different tools in appears
in the Debug mode toolbar.

Internally, that's quite some re-organzition: The centralized
'Analyze mode is busy' flag is gone, allowing us to run e.g.
ClangStaticAnalyzer and MemCheck in parallel.

Analyzer tools and debugger now share the same mechanism to
generate/load/save dock widgets.

Analyzer tools now create and handle their own start/stop button
when appropriate. In general, Analyzer tools can create/handle more
than one run control at a time.

Further consolidation is possible, e.g. RunControl state handling
could be merged into the base ProjectExplorer::RunControl to
avoid the still existing duplication in ~15 instances.

Change-Id: I91e5940ebc4211f98056d507cf2f7b5f8efe7f07
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2016-03-07 15:06:10 +00:00
hjk
d5ecd4cf8b ProjectExplorer: Use StandardRunnable in ApplicationLauncher
Change-Id: I7092d748207762d3dbd6c69c01cc06c88cbf63d8
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2016-01-28 11:35:51 +00:00
hjk
07332eecb3 QmlProfiler: Use StandardRunnable in LocalQmlProfilerRunner
Change-Id: I8c59f9dfe562717edd86453b0154b7f2811a06f3
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2016-01-28 08:08:19 +00:00
hjk
9ae2ce7629 ProjectExplorer: Drop LocalApplicationRunConfiguration
The functionality can be provided by producing a suitable Runnable
in the derived classes directly.

Change-Id: I7b8e8fe33fffd2b00176b6cf6633eca4e152e466
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-01-26 10:09:29 +00:00
hjk
5dad96e3b7 QmlProfiler: Adapt QmlProfilerRunControlFactory to Analyzer changes
Change-Id: I8047cdb3fc65df2139c1a5770218c48e83ef5f5a
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
2016-01-20 16:08:07 +00:00
Tobias Hunger
397e7f4843 Update License according to agreement with Free Qt Foundation
* Update files in src/plugins

Change-Id: Ia5d77fad7d19d4bb3498e78661982f68729adb22
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-01-19 15:57:01 +00:00
hjk
8150209ff7 Analyzer: Slim down AnalyzerStartParameters
* SysRoot can always be determined from kit.
* Pass around RunMode as extra parameter
  not as part of AnalyzerStartParameters.
  That's closer to the pattern used elsewhere.
* Environment was always initialized from the runconfig's
  EnvironmentAspect. The tools can do that directly.
* Provide setter for display name for cases where
  it is not equal to RunConfiguration::displayName

Change-Id: I811a0d7cdeb55cc37a16a593b3942abb567a2150
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
2016-01-07 18:11:09 +00:00
Ulf Hermann
7b4e253a1e QmlProfiler: Support local connections on Qt >= 5.6
This removes the need to receive messages from the application via
stderr. The "Connecting to socket" is still parsed, but only for
diagnostic purposes. If it doesn't arrive, the profiling will still
work.

Change-Id: I022691293da2a1e671ba1263bc76e4044bf1a5b7
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-11-19 11:33:20 +00:00
Ulf Hermann
2217eef3a3 QmlDebug: Allow different styles of command line arguments
We have tcp, local, and native by now. We have to expose that in a
clean way.

Change-Id: I0ce7be693aa7f47ebea7abe435a224a176b6c94b
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-11-19 11:33:15 +00:00
Ulf Hermann
b4e6591188 QmlProfiler: Convert connections to Qt5 style
Change-Id: I1a490add706cd0cfce3f243e4ebc32a8c9a975c7
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-11-02 10:12:42 +00:00
Ulf Hermann
5f90990c30 Tell the QML debug server exactly what services we expect
The services need to be loaded before the first QML engine is created.
The first QML engine may be created before a client connects. When the
JavaScript debug service is loaded the engine is put into interpreter
mode as we don't support debugging in JIT mode. Profiling, however
should be done in JIT mode, whenever possible.

Thus, in order to avoid the loading of unnecessary plugins and to get
better results from the QML profiler we tell the debug server which
services we expect, even before the client connects. Qt 5.6 will support
additional command line arguments to specify the services and this
change uses them.

Change-Id: I6dcee016c39995e9adada6eaf0e39d8299c9b7e7
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-08-17 15:13:56 +00:00
Ulf Hermann
bc6b81fb50 Consistently rename QmlProfilerEngine to QmlProfilerRunControl
It's always a pain to search for the only RunControl that's called
"engine" half of the time.

Change-Id: I4cece9f8958ff989925d9efaaf6fb41731842647
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-07-08 14:00:05 +00:00
Ulf Hermann
eaf9caa6f9 QmlProfiler: Drop redundant checks for useStartupProject
Those were misusing the flag to distinguish between local and remote
startup and that was unnecessary as the LocalQmlProfilerRunner is only
instantiated for local startup anyway.

Change-Id: I030931c9db9e8482199e4fbd04665a6c973b67f8
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-06-18 14:39:03 +00:00
hjk
bea726e8e2 Analyzer: Replace StartMode with a useStartupProject boolean
This is what it is on the top level. The change makes it obvious
that in the valgrind(-derived) plugins the value is later wrongly
used to make a decision on whether to run the valgrind process
locally or remotely. But that's isolated in valgrind now and
can be fixed there.

Change-Id: I6fa5e669dec1f9e2cdebe42a1591d15144082a21
Reviewed-by: Anton Kreuzkamp <anton.kreuzkamp@kdab.com>
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
2015-06-17 09:39:21 +00:00
Benjamin Zeller
9321967d84 QmlProfiler: Make creation of local RunControls more flexible
In order for plugins to create a RunControl for locally running
applications that do not use LocalApplicationRunConfiguration it is
required to export an API that takes care of the internal setup. Also this
removes the hard dependency on LocalApplicationRunConfiguration.

We don't want to expose Internal classes in public API, so we have to
make QmlProfiler::Internal::QmlProfilerRunControl and
QmlProfiler::Internal::QmlProfilerStateManager public.

Also, AbstractQmlProfilerRunner doesn't do anything useful and can be
removed.

Change-Id: I0403e5b17e14ac894addd818ad7b249c51a8ed8d
Reviewed-by: hjk <hjk@theqtcompany.com>
Reviewed-by: Benjamin Zeller <benjamin.zeller@canonical.com>
Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
2015-06-15 16:55:54 +00:00
Orgad Shaneh
b6de2d1bd8 QmlDesigner: Remove unneeded qualifications
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>
2015-02-18 09:53:25 +00:00
Eike Ziller
3c85058694 Update License
Change-Id: I711d5fb475ef814a1dc9d2822740e827f3f67125
Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
2015-01-16 12:37:56 +01:00
Eike Ziller
8295b503be License update
Change-Id: I3c22ef2685d7aa589f5d0ab74d693653a4c32082
Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
2014-10-09 11:41:44 +02:00
Robert Loehning
746c5d8863 Incremented year in copyright info
Change-Id: Ib5423fdd064e4546f848c0b640b0ed0514c26d3a
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-01-08 08:29:47 +01:00
Aurindam Jana
0cf3ef5926 QmlProfiler: Use LocalApplicationRunConfiguration
QmlProjectRunConfiguration is now derived from
LocalApplicationRunConfiguration.

Change-Id: Ieddac63ff9832771ed141c3f0aff1bcc0313f6bf
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-15 17:53:09 +02:00
Aurindam Jana
fc0da55e1f QmlProjectRunConfiguration: Derive from LocalApplicationRunConfiguration
Change-Id: I4a7c29f2f679e62bae6fa3d01983851207e532c8
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-15 17:51:50 +02:00
Aurindam Jana
e61c797c6d QmlProfiler: Use StartLocal instead of StartQml start mode.
Change-Id: Iee7895e9cafc373c32749f3dcc44a690dfc551bc
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-08-05 13:19:44 +02:00
Daniel Teske
c1919f0ac3 ApplicationLauncher: Also emit the exit status
And adjust the message in the appliation output to take the exit status
into account.

Change-Id: I1b7507fdc8ff6fa7ec3db48dba72ad723f124fc3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
2013-08-02 15:04:59 +02:00
hjk
3de45d8c55 Analyzer: Merge IAnalyzerEngine and AnalyzerRunControl
Change-Id: I74edaef59600a44924d2692c1ebc7f98d8581115
Reviewed-by: Christiaan Janssen <christiaan.janssen@digia.com>
2013-08-01 10:33:01 +02:00
Aurindam Jana
d53609d27b QmlProfiler: Separate out LocalQmlProfilerRunner from engine
Change-Id: I6f9245179090bebb98b6d9849a7a696105e43a3a
Reviewed-by: Christiaan Janssen <christiaan.janssen@digia.com>
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
2013-07-23 16:19:21 +02:00
Christiaan Janssen
485315ec67 QmlProfiler: fix potential crash
fixes Ib2ea66bd5694046577a0b5a0e2f611f3ffba0238

Change-Id: Ib7a4e02391513984f1c81a43a5fab490b7f88923
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-06-05 12:41:16 +02:00
Oswald Buddenhagen
1fda2111d4 Merge remote-tracking branch 'origin/2.6'
Conflicts:
	src/plugins/autotoolsprojectmanager/AutotoolsProjectManager.pluginspec.in
	src/plugins/debugger/qtmessageloghandler.cpp
	src/plugins/debugger/qtmessagelogwindow.cpp
	src/plugins/madde/maemodeployconfigurationwidget.cpp
	src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp
	src/plugins/qmldesigner/designercore/include/widgetqueryview.h
	src/plugins/qmldesigner/designercore/metainfo/metainfoparser.cpp
	src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.cpp
	src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.h
	src/plugins/qmlprojectmanager/qmlprojectapplicationwizard.cpp
	src/plugins/qnx/bardescriptormagicmatcher.h
	src/plugins/qt4projectmanager/profilekeywords.cpp
	src/plugins/remotelinux/deployablefilesperprofile.cpp
	src/plugins/remotelinux/deployablefilesperprofile.h
	src/plugins/remotelinux/deploymentinfo.cpp
	src/plugins/remotelinux/deploymentsettingsassistant.cpp
	src/plugins/remotelinux/profilesupdatedialog.cpp
	tests/auto/icheckbuild/ichecklib.cpp
	tests/auto/icheckbuild/parsemanager.cpp
	tests/auto/icheckbuild/parsemanager.h

Change-Id: Ie465a578446a089e1c502d1cb1096e84ca058104
2013-01-31 16:25:33 +01:00
Robert Loehning
298531e370 Incremented year in copyright info
Change-Id: Ic6a9ff0359625021ebc061d22db6811814534205
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2013-01-29 16:27:03 +01:00
Orgad Shaneh
29a93998df Remove braces for single lines of conditions
#!/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>
2013-01-08 10:48:18 +01:00
Orgad Shaneh
f739c85c72 QmlProfiler: Compile with QT_NO_CAST_FROM_ASCII
Change-Id: I99c96e723e80ec318acd9300b4f44e7c3ce37485
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Christiaan Janssen <christiaan.janssen@digia.com>
2012-11-27 10:40:47 +01:00
hjk
386ca7c8dd Adjust license headers
Change-Id: Ice592c6de9951ee3b2c4cb52ed0bb3b6770e0825
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2012-10-05 17:12:56 +02:00
Eike Ziller
e0e8cf3ada Contact -> qt-project.org
Change-Id: I7134d7de30bcf9f9dcfad42520dd45ee083a852d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-19 13:23:21 +02:00
Kai Koehne
3f00faa9ef QmlProfiler: Always use quint16 for port number
Change-Id: Ie77227058637c4900248eaca0ea183ad46b82663
Reviewed-by: Christiaan Janssen <christiaan.janssen@nokia.com>
2012-03-01 15:08:40 +01:00
hjk
2931a499e6 Long live the king!
Change-Id: I2b72b34c0cfeafc8bdbaf49b83ff723544f2b6e2
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-01-26 19:55:36 +01:00
hjk
31600758de all: s/info@qt.nokia.com/qt-info@nokia.com/
Change-Id: If18afb5d4665924e7d9250dccbc60a65e6daa75e
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
2011-11-03 10:33:19 +01:00
Thomas Murach
a4c4d67772 corrected license headers
Change-Id: I56fa50745a80abf52488bebe6a5a72cf26932a8b
Merge-request: 352
Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
Reviewed-on: http://codereview.qt.nokia.com/1251
2011-07-06 17:56:15 +02:00
Kai Koehne
949ffeb1b4 QmlProfiler: Support profiling applications on embedded Linux
Allow on-device profiling e.g. on Meego/Harmattan.

Change-Id: I066b71078e1dab1b1369ff7275f72e88045d1bab
Reviewed-on: http://codereview.qt.nokia.com/784
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Christian Kandeler <christian.kandeler@nokia.com>
2011-06-28 14:05:11 +02:00
Tobias Hunger
aa2acec14c Fix/add copyright headers
Change-Id: I8b73d583be1ee7183f4074bce49d5390e38631a2
2011-05-06 15:17:05 +02:00
Friedemann Kleint
5e543b2856 Compile Windows. 2011-05-05 09:14:41 +02:00
Kai Koehne
6d174080e9 QmlProfiler: Factor out logic to run apps from the engine into a separate runner
Reviewed-by: Christiaan Janssen
2011-05-04 17:17:32 +02:00