OutlineWidgetStack inherits from QStackedWidget, so you don't need a
member object like QStackedWidget.
The m_Factory object is not used in the OutlineWidgetStack class, is
of private type, and is not available in its OutlineWidgetStack
derived class.
Change-Id: I0b94a654dde023144f01e0bd7808ad5cc1dc92b8
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Writes less settings and makes it possible to change defaults in the
future.
Task-number: QTCREATORBUG-24762
Change-Id: I73873b3684827b4fe27cfa5ea2f62a76003f9750
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
If the server was started by opening a document the outline factory and
client was not properly initialized in the time the outline was
requested. Update the outline after the client is fully initialized.
Fixes: QTCREATORBUG-22695
Change-Id: I84dc56eead9774d80ed6baf7792daff930a7cb8e
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>
The reason for the flashing is that the toolbuttons in the toolbar are
constructed without initial parent. The Filter toolbutton is set to
visible before it is parented, and therefore it creates a top-level
window. Milliseconds later it gets a parent and the window disappears.
Task-number: QTCREATORBUG-18823
Change-Id: Ide100d9117484131007a4d4d2e584d0967aa7377
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This way we can use them from libraries, not only from plugins.
Change-Id: Ic35cfd5f04d638d87606bf272b2c00ded1267c1b
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Instead of describing icons via file name or in the themed icons case
via
a string that is a list of mask/color pairs, we have now a class for it.
Icons are now listed in per-plugin *icons.h headers.
RunControl::m_icon was The only place left where an icon property was in
fact a string. This patch changes that member to be a Utils::Icon.
Change-Id: Ibcfa8bb25e6d2e330c567ee7ccc0b97ead603177
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
The OutlineStackWidget stored its position in the outline to be able
to save/restore settings specific to the sub-widget (IOutlineWidget).
However, the index can get out sync if another NavigationWidget
with a lower index number is split, and the relative position changes.
The change therefore avoids saving an index, and rather keeps the sum
of all sub-widget settings in a QVariantMap, only reading and writing
to the global settings object if necessary.
The settings are also not stored in the [General] section anymore,
but in a subgroup [Sidebar.Outline.X], where X is the index of the
outline in the view. This avoids having to always iterate over all
keys. No effort has been made to take over the old settings. I doubt
anyone will notice, though.
Change-Id: I85017cbb3e32b0a16da43ce6339deb7a053d6b09
Task-number: QTCREATORBUG-13614
Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
...if there are no filter menu actions since a disabled button looks
(almost?) the same as an enabled button, thus looks broken if the user
tries to click on it.
Change-Id: Idabc25d0f2b5534b77cc6c67cb160306345a586e
Reviewed-by: David Schulz <david.schulz@digia.com>
Allow them to be focused, activate also on return/enter. Also fix focus
handling so that assigning a shortcut to "Activate Outline View"
actually
works.
Change-Id: I878777ae0dad493af1715b36ee264a4f0c12443e
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
#!/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>
Getting the #include directives ready for Qt5. This includes the
new-project wizards.
Change-Id: Ia9261f1e8faec06b9285b694d2b7e9a095978d2b
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
This change moves the "close document" button back to the top-left and
instead changes the icon on the "close split" buttons.
Change-Id: I187c3f707f38ea8edef996cb5393654015d551ca
Reviewed-by: Virva Auvinen <virva.auvinen@nokia.com>
Using more *::Constants::ICON_* where it makes sense and
wrapping the file names into QLatin1String where they were
missing.
The increased usage of the ICON constants needed a few more
cross plugin includes of *constants.h, here and there.
I think that it is OK, since the dependencies were alredy there
icon resource wise.