Centralize the handling inside a new class ProjectTree.
React to moving focus and remove most special handling.
This properly fixes the linked task.
Task-number: QTCREATORBUG-13357
Change-Id: I6b06aa32b1e4305ec8a6d432857b302585d8734b
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
Callign applyAsyncEvaluate in the desctructor might lead to further
parses, which we don't want. So bail out early in applyAsyncEvaluate.
Task-number: QTCREATORBUG-13421
Change-Id: I776ff477363a3985ebc26e9160c58c2ab9c910b7
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Second argument is fileName, not message.
This was wrongfully left there in
88a4421a84
Change-Id: I140fc9921d07df0d4214b54abcc0733aa0a60f4b
Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
It always fails if the file is included by $$files(*), but the new
filename is expected to appear nevertheless.
Change-Id: I4ae102372685013182b4471b996610e68cb7f751
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
The ProjectExplorer sets the current node after renaming, but since
the qmake project manager is still parsing, that doesn't actually work.
So we do set the current node via a small hack.
Change-Id: Ideefef82740529f7acc71b4d0c467d6818a49710
Reviewed-by: Robert Loehning <robert.loehning@digia.com>
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Any .pri files only found via cumulative parsing were ignored.
Task-number: QTCREATORBUG-13181
Change-Id: I1a7a639097b38a4ce1de01824be196a0c2781e84
Reviewed-by: Robert Loehning <robert.loehning@digia.com>
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
A theme is supposed to provide colors, flags and images. This change
removes functions from Theme which do not just return simple data.
Also ManhattanStyle and Theme get separated a bit.
Change-Id: I2fab26ee38b858fefb55920eb219f84abcfaac18
Reviewed-by: hjk <hjk121@nokiamail.com>
Adds a 'Theme' tab to the environment settings and a '-theme' command
line option.
A theme is a combination of colors, gradients, flags and style
information.
There are two themes:
- 'default': preserves the current default look
- 'dark': uses a more flat for many widgets, dark color theme
for everything
This does not use a stylesheet (too limited), but rather sets
the palette via C++ and modifies drawing behavior.
Overall, the look is more flat (removed some gradients and bevels).
Tested on Ubuntu 14.04 using Qt 5.4 and running on a KDE
Desktop (Oxygen base style).
For a screenshot, see
https://gist.github.com/thorbenk/5ab06bea726de0aa7473
Changes:
- Introduce class Theme, defining the interface how to access theme
specific settings. The class reads a .creatortheme file (INI file, via
QSettings)
- Define named colors in the [Palette] section
(see dark.creatortheme for example usage)
- Use either named colors of AARRGGBB (hex) in the [Colors]
section
- A file ending with .creatortheme may be supplied
to the '-theme' command line option
- A global Theme instance can be accessed via creatorTheme()
- Query colors, gradients, icons and flags from the theme
were possible (TODO: use this in more places...)
- There are very many color roles. It seems better to me
to describe the role clearly, and then to consolidate later
in the actual theme by assigning the same color.
For example, one can set the text color of the output pane button
individualy.
- Many elements are also drawn differently.
For the dark theme, I wanted to have a flatter look.
- Introduce Theme::WidgetStyle enum, for now {Original, Flat}.
- The theme specifies which kind of widget style it wants.
- The drawing code queries the theme's style flag and
switches between the original, gradient based look and
the new, flat look.
- Create some custom icons which look better on dark background
(wip, currently folder/file icons)
- Let ManhattanStyle draw some elements for non-panelwidgets, too
(open/close arrows in QTreeView, custom folder/file icons)
- For the welcomescreen, pass the WelcomeTheme class.
WelcomeTheme exposes theme colors as Q_PROPERTY accessible from
.qml
- Themes can be modified via the 'Themes' tab in the environment
settings.
TODO:
* Unify image handling
* Avoid style name references
* Fix gradients
Change-Id: I92c2050ab0fb327649ea1eff4adec973d2073944
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
And reuse that for all .pri files. This is a lot faster.
Change-Id: Iff81a50b892ad666ed6c899aa242b6e9b394f339
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
Move exported class out of namespace Internal, but expose only a minimal
interface. Use Qt 5 connections, adjust callers and surrounding code.
Change-Id: I52b4156d78cd1ec42ec6c94994775ce74f24ebdc
Reviewed-by: hjk <hjk121@nokiamail.com>
Replace the CppModelManagerInterface/derived CppModelManager
combo by a more common CppModelManager/CppModelManagerPrivate
pimpl pattern.
Change-Id: Ia4582845ed94d5ef60b8571bab9b2260c6290287
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
Instead call it once per .pro file and pass that to all .pri file parses
and other functions. This cuts down the number of calls for opening
qtproject.pro from ~3000 to ~700 and speeds up opening qtproject.pro
by roughly 3%.
Change-Id: Iffd46d4bbedc9c380f70e916dae7151495990b39
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
the latter variable is entirely meaningless to qmake and should have
never been recognized by creator. unfortunately, qmake's dist target
wasn't very useful before qt 5.4, so it didn't occur to anybody to
actually use the variable associated with it, even though it is
semantically exactly the right thing.
Change-Id: I249857f54fdc38fb5ecac0f608e5f4140624c23c
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
it is entirely plausible that the precise evaluation would succeed,
while the cumulative would fail due to some serious inaccuracies
introduced by it. such problems would be particularly hard to debug, as
we suppress error messages from the cumulative parsing, so the user
would get a "Giving up" message without any context.
Change-Id: I826b3b1d838808464b551e8ee0d7375d239442a3
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Less typing and less cycles than join(QString) where appropriate
Change-Id: I6ebc0e17e4d7fd9845864dd95b7de4ba4dad6906
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
If the vcs::open fail, we should fall back to setPermissions.
Change-Id: I0204b07d27daeba03a2cda047a6eea0f21fe5d30
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Add Utils::transform and anyOf that take a member function pointer.
Remove bestElementOr it's unused.
Use declval<T> in transform's return type, because msvc does evaluate
T() and for types that don't have simple constructor this fails.
Add std::remove_reference since decltype returns a reference for
lvalues.
Change-Id: I22248b226748eeb27af0d300182d574438d7f756
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
And increase the priority for those too. Fixes the case:
a.pro
b.pri
test
c.pri
Right click on test and add new file. In that case b.pri should be the
node to which the file is added.
Task-number: QTCREATORBUG-12272
Change-Id: I54d144861bc06545db8e71ed33513a0df971dae2
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Move item model implementation to private, adjust user code.
Change-Id: Ifbe94e7c7b9b1e8be1b4c531958dbd7a9413af13
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Rename to runConfigurations() and remove the node argument which is
available as 'this'. Adjust const-ness of node argument in
RunConfigurationFactory::runConfigurationsForNode
Change-Id: Icb63e96a305152f90135a2656536de2581faafaf
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
QMake's behavior for .pri files otherwise treats those paths as relative
to the .pro file. That's rarely what you want.
Also change the remove code to handle those files.
Change-Id: I5fe95035b470c32c365adbdee161f4a6cae05c2b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
The workflow for adding a library for multiple archs is not ideal, but
now a little better. The user has to go to the deploy setting for a
kit per architecture and add the right extra library.
Change-Id: I2bda6961f6f1164bdc58acd78fa3d2221977f0cf
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
So that the resource node can override it.
Task-number: QTCREATORBUG-11678
Change-Id: Id30d1b99ee23cc18fc29fc99cf0ad7ca919ed527
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
So that the resourcenode can steal from it's parent
Change-Id: I97a21d94c0ddb0d217c48fd69dc808446763837b
Reviewed-by: Eike Ziller <eike.ziller@digia.com>