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>
The ResoureceNode will be a folder node, this enables that to work for
add new file.
Change-Id: Ifb4827d0900ce550be164c44979c5b72ab947c42
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Which compares two sorted lists and returns a diff between them.
Change-Id: I278bd43f1bd999bae6575cbf38cddbdf3ff82418
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
The reason they were on ProjectNode is that the signals are emitted
on the projectnode, but since I moved addFiles and others to FolderNode,
this makes more sense.
Change-Id: I918ca4d93dab78c8bb93dff03f53d1a6fbe21340
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
By default this simply calls the parent's supportedActions.
Most changes are due to the enum moving.
Change-Id: I25bf21b712cca48450014dbb0f748ac0c461e029
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Fine tune the extra compilers support to know that we already show
headers in a separate category. HEADERS is the input to the moc
extra compiler.
Task-number: QTCREATORBUG-11459
Change-Id: I60e9c6b9eb2d55b7a0b02b5f63280b6268c42704
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>