Commit Graph

44349 Commits

Author SHA1 Message Date
hjk
20cacb4a8a ProjectExplorer: Add some ToolRunner convenience functions
Replicate parts of RunControl's read-only interface for
simpler user code.

Change-Id: Ic0f2efc0a7a0b96d26c5817f7fbc18b0c91a013b
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-05-04 07:31:40 +00:00
Friedemann Kleint
1c25721ec0 qtcreatorcdbext: Fix build with MSVC2017
Fix error:
.\containers.cpp(616): error C2664: 'void RedBlackTreeNode::debug<void(__cdecl *)(const SymbolGroupValue &,std::ostream &,unsigned int)>(std::ostream &,DebugFunction,unsigned int) const': cannot convert argument 1 from 'DebugPrint' to 'std::ostream &'
        with
        [
            DebugFunction=void (__cdecl *)(const SymbolGroupValue &,std::ostream &,unsigned int)
        ]
.\containers.cpp(616): note: A non-const reference may only be bound to an lvalue

Change-Id: Ic4168fe8e3952c4c6b2bd6561f05c138094cb56e
Reviewed-by: David Schulz <david.schulz@qt.io>
2017-05-04 06:28:59 +00:00
Tobias Hunger
b84aa8e837 ResourceNode: Set proper fileType based on file name
Set the fileType of ResourceFiles based on their file name. This
makes sure that QML files will be treated as QML, which fixes e.g.
QTCREATORBUG-18032 (and probably other strange bugs).

Task-number: QTCREATORBUG-18032
Change-Id: I05b1048d998ea1bed196611d529771c582bce441
Reviewed-by: Marco Benelli <marco.benelli@qt.io>
2017-05-03 12:28:04 +00:00
Tobias Hunger
ccdf335425 CMake: Fix possible nullptr dereference
Change-Id: Iadb62b671e115b2348dbe1d927212fd79a7fdf33
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-05-03 11:53:01 +00:00
hjk
5d8d3fbdc7 ProjectExplorer: Extend centralized state handling
Add some customization hooks to make tools aware of target errors
and vice versa.

Change-Id: I4d815087297a3fa1d1d6d52daeed7c4ae0f624bf
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-05-03 11:48:23 +00:00
Nikolai Kosjar
3438b42719 CodeAssist: Fix use-after-free crash
...caused by

  commit fab4dd068e
  CodeAssist: Fix auto completion if function signature is shown

The crash occurs when e.g. typing "lib" in a *.pro file.

Ensure to remove duplicates before filtering, otherwise the duplicates
are removed afterwards and leave dangling pointers in the already
filtered items (GenericProposalModel::m_currentItems).

Change-Id: If6f027378beea2386d25389e366047a29513b553
Reviewed-by: David Schulz <david.schulz@qt.io>
2017-05-03 10:36:35 +00:00
Christian Kandeler
db352bfc80 buildoutputparser: Adapt to removal of "slot" keyword
Was forgotten in 7b71ac3821.

Change-Id: I5f2d5dc17092d2761c8ba98df8e82fb644954833
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2017-05-02 15:11:38 +00:00
Robert Loehning
9ee0cec3bc Gerrit: Move line back to correct case
Change-Id: I7d6ee5835d67fce21ea211099d9d6aa6061517b9
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2017-05-02 14:41:28 +00:00
Thomas Hartmann
b07d26d43e QmlDesigner: Set the minimum width of navigator
We set the same minimum width the item library has.
This avoids overlapping icons, depending on the depth of the tree.
Since we are rewriting the tree view anyway this should be good
enough for now.

Task-number: QTCREATORBUG-18131
Change-Id: Id5f018c118499a8a47785282a25a29d40e0685b3
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-05-02 12:45:20 +00:00
Eike Ziller
2d4adebf2a Fix that tool tips for long texts became too small
If the unwrapped tool tip is too long, we may not use the "preferred"
width of the label with word wrap on, because turning on word wrap makes
the preferred width very small. That would lead to tool tips with long
text becoming very small instead of "as large as possible but with word
wrap". Instead set the width to the largest that we deem desired, and
let the label word wrap on that.

As an example look at the tool tip on styleHint or setMask in tips.cpp

Change-Id: Id804b6ea4e4a872e65dd7f49eb3cd52553c04cfe
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2017-05-02 12:32:56 +00:00
Nikolai Kosjar
fab4dd068e CodeAssist: Fix auto completion if function signature is shown
This reverts

    commit 3bf19030ab.
    CodeAssist: Fragile proposals aren't closed by automatic proposals.

which fixed the case [1] but introduced the regression in case [2]. Re-
implement the fix for [1] in a different way: Check whether the new
proposal has any items to show before closing the function signature
hint.

Case [1]
  void f(int);
  void g()
  {
      f(bar // This is what we will have in the end. The steps are:
            // 1. Type "f("
            //    --> OK, function signature pop up is shown.
            // 2. Type "bar"
            //    --> OPS, function signature pop up is closed and no
            //        new completion list is shown because "bar" does
            //        not match any declarations.
  }

Case [2]
  int barman = 0;
  void f(int);
  void g()
  {
      f(bar // This is what we will have in the end. The steps are:
            // 1. Type "f("
            //    --> OK, function signature pop up is shown.
            // 2. Type "bar"
            //    --> OPS, no auto completion list for "barman" is
            //        proposed.
  }

Task-number: QTCREATORBUG-16934
Change-Id: I8456275d951de9e6fc53285a5dbcbd448d49ad08
Reviewed-by: David Schulz <david.schulz@qt.io>
2017-05-02 11:07:48 +00:00
Vikas Pachdha
a4a78ae8b1 iOS: Fix run without deploy on iOS simulator
Task-number: QTCREATORBUG-18107
Change-Id: Ie847cdab672ff2df7af0c2fee742901de0783861
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2017-05-02 10:32:07 +00:00
Christian Kandeler
dacf13948e QbsProjectManager: Fix updating of run environment
When the build environment was changed, the run environment widget would
not update.

Change-Id: I8a318d86b5ac56ca9233cf4c694ca3c9f88870ed
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2017-05-02 10:08:44 +00:00
Eike Ziller
1b30990f24 Fix left sidebar width after switching modes
After switching to debug mode, hiding left sidebar, switching back to
edit, and showing left sidebar, the sidebar had very small width.

We may not calculate the splitter sizes for each placeholder
individually, because setting them on the splitter might distribute them
in a weird way when widgets are hidden. In the above example switching
back to edit mode while both sidebars are hidden triggered something
similar to the following updates:

Left side bar update:
- calculated: (300, 1000, 0)
- actual resulting: (0, 1000, 0)

Right side bar update:
- calculated: (0, 1000, 300)
- actual resulting: (100, 900, 0)

In the longer run it would probably be better handle the resizing in a
more centralized way, since now it sets the same sizes twice (once for
each side bar update).

Task-number: QTCREATORBUG-18009
Change-Id: Ife5d6f1caded55f444245f4c3c98ae05371363b8
Reviewed-by: Serhii Moroz <frost.asm@gmail.com>
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: David Schulz <david.schulz@qt.io>
2017-05-02 09:19:03 +00:00
David Schulz
c3191f5922 Debugger: Adjust missing cdbextension message
The cdbextension isn't part of the binary artifacts repository anymore.
Adjust the message so the user knows that he has to build the
cdbextension in the matching bitness by himself.

Change-Id: I5a06edda62be8178fc64fb98468291d395598d74
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-05-02 09:10:09 +00:00
hjk
5955901f93 Debugger: Compile fix after e213585910
'prepared' got renamed to 'reportPrepared' in the mean time.

Change-Id: I2426e8ab156df642525d42feeedcd3692c7c8ac8
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-05-02 09:02:57 +00:00
hjk
4f6293db8f Debugger: Make showPromptToStopDialog static
No need to depend on RunControl life time here.

The isRunning test is already done outside sufficiently often.

Change-Id: I3b33444df6092f52b186bbf3a58585ad0bbb03bb
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-05-02 08:56:40 +00:00
hjk
e213585910 Debugger: Move part of engine startup to preparation phase
Change-Id: I414c356cd615096ee68588b839aaf975657fb7f9
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2017-05-02 08:49:58 +00:00
Eike Ziller
aeb0e0eda3 Increase timeout for update check
10 seconds are not enough for retrieving all the information from the
servers.

Change-Id: Ic1372a8b558f1c1f80ff6703b2d70ee92dd8652c
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
2017-05-02 07:59:50 +00:00
hjk
009865f8b3 ProjectExplorer: Use function calls for state signalling
Less opportunity for tool/target implementations to mess with the
RunControl state.

Change-Id: I2d179cd85c50efd2314bad9b1c2250ff6b16370e
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-05-02 07:46:51 +00:00
hjk
d8bacfe9af Valgrind: Move to new target/tool split for local setups
Change-Id: I1167fdc147600c36149c13731d0680b858acf4fb
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-05-02 07:46:29 +00:00
Laurent Montel
cbe163584d Avoid some memory allocations
Change-Id: I6f3cba58307babd9e34be0c3f52e25b5f67b23e3
Reviewed-by: Jochen Becher <jochen_becher@gmx.de>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2017-05-01 17:28:38 +00:00
Ulf Hermann
47b4a0811f Revert "Android: Improve application output window by adding filters"
This reverts commit d4ca232d54 and fixes
QML profiling on android.

Task-number: QTCREATORBUG-18120
Change-Id: I09b9062da197a4c6c0a7034f98a2bb0b41f1d559
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2017-04-28 14:43:47 +00:00
Tobias Hunger
7c8125b480 Qbs: Set displayName from rootProjectNode
Set the displayName of QbsProjects from the rootProjectNode if that
exists. This fixes the project name not updating based on the name
set inside the qbs files.

Extract that into a new method so that it can be used consistently.

Task-number: QTCREATORBUG-18100
Change-Id: I417264ee8843a9e0665bbc190f1dbc7869eed0e9
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2017-04-28 14:17:18 +00:00
Tobias Hunger
72f769c9ba Qbs: Make QbsNodeTreeBuilder handled uninitialized project
Make QbsNodeTreeBuilder handle uninitialized projects more gracefully.

Return a nullptr, so that the ContainerNode with the main project file
is used in that case.

Change-Id: I7ab90231c3fc24b7b676326f98f79c4b79018327
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2017-04-28 14:17:03 +00:00
Christian Kandeler
b5c3bd7a64 Update qbs submodule
To HEAD of 1.8 branch.

Change-Id: I519b9035bfe460a0b9369fdf208a04d8665f9d0d
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2017-04-28 14:16:15 +00:00
hjk
6e990f96c6 Debugger: Remove DebuggerRunControl
Use plain RunControl + DebuggerRunTool combo instead.

Change-Id: Ib71b5eab50da667b9d71dcc6689d2643ad8ecdee
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-04-28 12:42:29 +00:00
Tim Jenssen
6e2756244d QmlDesigner: add init root element size settings
Task-number: QTCREATORBUG-17965
Change-Id: Id2a3bef8d4becdecc9f358021a18feb2353743b5
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2017-04-28 08:58:27 +00:00
Tim Jenssen
a991ecec95 QmlDesigner: use initilizer_lists for pairs
Change-Id: I3a1ef67d8af255604494695807331576540b8afa
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2017-04-28 08:58:19 +00:00
Christian Stenger
10c285db86 CMakePM: Fix compile using Qt5.6 and gcc4.9
Change-Id: I192a213a8825c636dc42702a32a065ad541bd2af
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2017-04-28 06:30:29 +00:00
Tobias Hunger
f0d14da7b9 Revert "CMake: Use canonical source directory when talking to cmake server-mode"
This reverts commit b2fe7c9ad1.

QTCREATORBUG-18105 reports that this makes cmake work, but then in later stages files get filtered from the project tree as paths no longer match up.

Change-Id: I9484c7311a15a0397d9078ed60c8a65ef82f8449
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-04-27 09:51:45 +00:00
Tobias Hunger
11c87bd918 CMake: Unify setup of default build target in CMakeBuildStep
Change-Id: I3d087356a4dd5a3b8ab07d5b64cd5aeb93ae0f47
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-04-27 09:51:16 +00:00
Tobias Hunger
10d6a3bc3d CMake: Fix signal emission from CMakeBuildStep
This fixes the summary in the UI.

Change-Id: I8eb93a1785d8788d9021e06b75a10cb36f119f0f
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-04-27 09:51:10 +00:00
Tobias Hunger
d8d2dc6adb CMake: Report special utility targets in BuildDirManager::buildTargets
Report special utility targets like "all", "clean" and "install" from
the BuildDirManager and update UI accordingly.

Change-Id: I01d0dcfa23d5bddc124c8f9ee1040475184c9c1e
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-04-27 09:51:01 +00:00
Tobias Hunger
e7b4e91fec CMake: Define an "install" target
Change-Id: I036ddc3bfb91fc3a5a9e8923db2befbf60e89a77
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-04-27 09:50:54 +00:00
Tobias Hunger
1829eb6915 Qmake: Update QmakeRunConfiguration in constructor
Update QmakeRunConfiguration's aspects in the constructor. This is necessary
since this RC is only created after the project was parsed for the first time,
so the logic tied to the pro-file parsing updates did not work the first time
round.

Also move the logic from the UI into the RC itself.

Task-number: QTCREATORBUG-18059
Change-Id: Ifa6eeade549ef33aae5c825238fc8a1d76604195
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-04-27 09:50:13 +00:00
Orgad Shaneh
edbaea4f60 C++: Use Utils::FileName for Usage::path
Change-Id: I1d22333ad60d229202db5d372d00019b5870e60f
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2017-04-27 08:34:59 +00:00
Orgad Shaneh
2f7384dd27 C++: Use direct member initialization in FindUsages
Change-Id: Ibe717dc587d817d53356771507b4aa3072554cb1
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2017-04-27 08:34:51 +00:00
hjk
cd7ab5d3ed WinRt: Remove direct debugger dependency in WinRtRunner
Not needed anymore after d049a5be19.

Change-Id: If968ac763863b94274629fbfbbfe5c91b32d1488
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-04-27 08:12:12 +00:00
Tim Jenssen
19239e3770 QmlJs: use initilizer_lists for pairs
Change-Id: I0386d57ad3549814ab197c4e24549705e061c95a
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2017-04-27 07:45:06 +00:00
hjk
c2ebce6849 Debugger: Reduce explicit DebuggerRunControl use
Aim is to replace it with its ProjectExplorer::RunControl base.

Change-Id: I30f837050e7c016887dc4b6cfef10b947f4f88ed
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-04-27 07:43:30 +00:00
Tobias Hunger
25a507d12f CurrentProjectFind: Forward displayNameChanged() signals from project
Forward the displayNameChanged() signals from the current project so
that the project name gets updated in the Advanced Find pane.

Change-Id: I3ed77b7f8e6f2796b890f2de52cf9665404aeecf
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Florian Apolloner <florian@apolloner.eu>
2017-04-26 14:22:46 +00:00
Tim Jenssen
0de18abbc2 QmlDesigner: use initializer lists
Change-Id: Ibdc46d30ad3f2b703d4cbdd796a1032030bd17cd
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2017-04-26 14:18:48 +00:00
Tim Jenssen
5ca34bd3f3 CppDocument: use initializer_list for keys
Change-Id: Ib2c407b642599cbe9da416647188e2457ec16906
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2017-04-26 14:16:50 +00:00
Tim Jenssen
7ed0385e1b QmlDesigner: fix pathes -> paths and use initializer_lists
Change-Id: Ifa155bebd982e798d3ac576cd07ee54d816f5aae
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2017-04-26 14:16:23 +00:00
hjk
5953507828 RemoteLinux: Base AbstractRemotetLinuxRunSupport on PE::TargetSupport
This essentially just puts the data members and most of the original
interface on the proper, i.e. the 'target', side of the tool/target
divide. Since the SimpleTargetRunner base already has an
ApplicationLauncher member, this can be used directly.

State handling and coordination between tool and target runner parts
stays as before for now, with unchanged 'custom' transition logic.
The plan here is to remove the custom state handling later, including
the two remaining cases of direct targetRunner->toolRunner calling
(startExecution, and adapterSetupFailed) for which this patch here
temporarily uses signal/slot connections.

Change-Id: I664f2e333b48b582befd0531a17d4008acac7c4c
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2017-04-26 12:02:03 +00:00
Nikolai Kosjar
dce9aa217c Sqlite: Fix build on macOS
Change-Id: Ib0f98e528ecb619066e48cd75ee92de7cb61b74e
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2017-04-26 11:50:38 +00:00
Tim Jenssen
2c3dbabb91 QmlDesigner: improve locateQmlFile()
- use const and static where it is possible
 - use arg() to merge the file name string (shorter)
 - introduce  possiblePaths list to get it while debugging

Change-Id: I64858540c5d9d9cfde3094de8e07dda744d0f43d
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2017-04-26 11:22:40 +00:00
Nikolai Kosjar
53b80e9b51 Clang: Check for nullptr
Task-number: QTCREATORBUG-18087
Change-Id: Icf8100d84a415995a8d913bc776699c895882e97
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-04-26 10:56:36 +00:00
Leandro T. C. Melo
227d39685a C++: Fix broken lexing for floating-points
Now, I can have my Pi (3.14) typed as double.

Change-Id: I33ee579e56d3c735f88278f1868d8739ef277ad6
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2017-04-26 10:30:46 +00:00