Adds a Help > UI Introduction, which highlights basic aspects of the Qt
Creator UI.
The pages to show are defined in a format that can later move into a
text based configuration file like JSON. It specifies an optional object
name of a widget to highlight, a title, a brief description and a longer
description (potentially with tables, lists and other simple HTML).
Fixes: QTCREATORBUG-21585
Change-Id: Idb64c87e1d752bc24437588278093a96be0eeddb
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
We require individual pages to be provided in Plugin::initialize()
Change-Id: I431112b523ed4cc803c07e5c6df8aa8d4ed1663b
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
I got a new Laptop with 720px screen height (actually 1440px with 200%
scaling). That causes an unpleasant scrollbar in the SideBar, even with
fullscreen maximized Qt Creator.
This makes the spaces between the three content blocks shrinkable.
Change-Id: I188a38580cc59b410ecf25fa2422a8d94a44b9f0
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
... by additionally keeping local (currently non-owning) pools per
"interesting" type.
Current situation:
- The global object pool does not scale well for looking up
objects, as iteration plus qobject_cast typically iterates
over all pooled objects.
- User code that can use typed results from the object
pool need to have access to the full type definition anyway,
i.e. depend on the plugin of the target class anyway.
The patch here solves the scaling problem is to have local
type-specific pools to which objects register in their
constructors and deregister in their destructors.
This patch here does *not* change the ownership model of the
pooled objects, however, it opens the possibility to change
the ownership model per type (e.g. by not putting things into
the global pool at all anymore and make the local pool 'owning')
and the intent is to handle that in later patchs.
Even without the follow-up patches this here is a performance
improvement for the cases that access the local pools instead
the global one, i.e. "practically all".
Change-Id: Ib11a42df2c4ecf5e1155534730083a520dd1995b
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Also, add context to connect() expressions where we are or were
capturing "this".
Change-Id: I6e006ba6f83d532478018550d148ee93eca59605
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: hjk <hjk@qt.io>
Latest change of adding QScrollArea around Welcome's sidebar made
the objects lookup fragile. Using the QScrollArea inside Squish
tests helped for some but not all lookups.
Simplify the lookup by assigning an object name.
Change-Id: I5f37ee69bf20eaf02c9717cbaa5ba541d8ffbc17
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
The SideBar in the QtWidgets based Welcome mode had a high minimal
height which cause whole Qt Creator not to fit on my HD(720) screen.
This change wraps the SideBar into a vertical scroll area.
Change-Id: I1d70ced1bbe803fb866159dd557a401c3ab6a9b2
Reviewed-by: hjk <hjk@qt.io>
This got prominent by removing the OpenGL based QQuickWidget from the
Welcome mode.
Basically painting is very slow to the point of unusable when there is
no OpenGL widget in a window. The moment an OpenGL widget is in the
widget hierarchy of a window, painting is much faster. This is
especially notable on HiDPI screens, e.g. using 1.5x or 1x scaling on 4k
monitors.
This is also reproducible with older versions of Qt Creator when using
additional editor windows or diabling Welcome mode.
Restore the status quo by adding a dummy OpenGL widget to welcome mode
on macOS.
Task-number: QTBUG-61384
Change-Id: Ia1a4738dd2070d70d8be42d4d717099d3933248b
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
This is essentially a widgets based re-implementation
of the current design. It is still using the QAIM based
interface layer between to the real data and display even
though this is not needed with this approach.
Removal of this layer would further reduce code size
and cycle counts.
For now:
old new
Load time 215ms 182ms
delete 22ms 2ms
Change-Id: I90d779a60a47a78399eaad0f1bc032d39f3ae3c0
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Needs to be implemented in Qt Quick itself nowadays.
Task-number: QTCREATORBUG-14194
Change-Id: I0456dc5d86c03672d8b6b8f9c45799851db1b059
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@theqtcompany.com>
QML can directly mirror this into a JavaScript object, so there is no
need to manually copy the values into a different container. Also,
QQmlPropertyMap is very expensive as it will listen to changes to any
value in the map. We never use this. It would be entirely enough to
update the whole map at once if we ever want to update the theme at
runtime.
Change-Id: Ie2b549e9af51d620801808c87d6f659cc7a06c04
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@theqtcompany.com>
They need to show the native shortcuts, not portable
Change-Id: I5fbc1704c4908596aaf9cdbecf056a50e33f8fe6
Reviewed-by: Serhii Moroz <frost.asm@gmail.com>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Removing font variations, colors, roundings and gaps.
And it is now better themable.
The examlpes and tutorial selection still needs to be done.
Change-Id: I520814ba9e8ce4fa1d1ca7ec14329955e8a0609a
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Alessandro Portale <alessandro.portale@theqtcompany.com>
Let's face it. "Live" theme change doesn't work reliably and
there is currently no effort to make this work. This change
removes the theme change during a Qt Creator run and shows "Restart
required" message dialog which we know from the language settings.
Change-Id: Ic9d300c5378841905260ff725aa3011717191de7
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This patch adds flat side bar icons according to
http://blog.qt.io/blog/author/didesous/
The flat icons are supposed to be opt-in, via the theme flag
"FlatSideBarIcons=true". It is false by default for the default
theme for now.
Change-Id: I1cbe69d4e138d5d23c0172a374933ac7a4ce8a5b
Reviewed-by: Alessandro Portale <alessandro.portale@theqtcompany.com>
Several bugs were fixed in QQuickWidget, making it viable to use it by
default with Qt 5.5.
Change-Id: If31d2cfabf80d01b1588269a1fde96742621e995
Task-number: QTCREATORBUG-13440
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
The rendered text is still ugly, but the fuzzy text is better than the
alternative currently.
Change-Id: Id9e54fb406ee964e0b9b5c40b7a8108b45c15f85
Task-number: QTBUG-42861
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
Use the background color property in the QML code instead of relying on
QQuickView::setColor
Change-Id: I556515a42d9483f88500fa5a5c56ea21f48fa685
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
+ always set the global palette and base style on apply
This is required for correctly using the selected theme
with multiple installations of Qt Creator.
Task-number: QTCREATORBUG-13203
Task-number: QTCREATORBUG-13396
Change-Id: I036b96721b6d184dae43d08c5e8bc9e6d1328a7b
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
The "platform" function is not used in QML, so let's remove it. In case
it will be needed at some point in time, better use Qt.platform
Change-Id: Ie9cecf8f2953934fbe8b0bb16f2267975af30fd0
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.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>
Qt 5.3 is the minimum requirement these days. Remove all fallback code
from sources and project files.
Change-Id: If6188a471197acadda4d6baee71804ba1a8026c6
Reviewed-by: Eike Ziller <eike.ziller@digia.com>