Commit Graph

61 Commits

Author SHA1 Message Date
Yuri Chornoivan
72ca2f79e0 Fix minor EBN issues and typos 2018-10-22 21:05:29 +03:00
Friedrich W. H. Kossebau
30cbc2dc33 Use more nullptr 2018-07-02 00:16:21 +02:00
Laurent Montel
e690c4726e Warning-- 2018-04-13 13:58:44 +02:00
Aleix Pol
b8b8a69fd1 Remove implicit string casting
Summary: Follow the KF5 guidelines

Test Plan: Plasma shell starts

Reviewers: #plasma, #frameworks, sebas

Reviewed By: #plasma, sebas

Subscribers: plasma-devel

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D9108
2017-12-02 15:44:14 +01:00
Aleix Pol
ceca6ffa01 Don't rely in includes of includes
QFontMetrics is used by theme.cpp
2017-11-07 21:16:08 +01:00
Aleix Pol
67d882037c Define Plasma PackageStructure as regular KPackage PackageStructure plugins
This way we can use kpackagetool5 against them (see RR 128590).

REVIEW: 128596
2016-08-04 19:23:59 +02:00
Marco Martin
4de0dd2e90 rename state property in status
emergency change: in Qml the name "state" for a property
is reserved for the internal state machine, so any object that
exposes a "state" property on its own would automatically
break the state machine
2016-06-01 14:47:56 +02:00
Marco Martin
f3c05034d9 Selected state for Plasma::Svg and IconItem
Like KIconloader, support a Selected state, in IconItem,
as in all generic svgs/framesvg
it replaces the text color with HighlightedText and the
background color with HighlightColor

Change-Id: Id97a527405d2c3feed75a172f05547defdbf440c
REVIEW:127975
2016-05-31 11:10:47 +02:00
Aleix Pol
9f62532674 Fix most of Clazy warnings in plasma-framework
REVIEW: 126672
2016-02-29 00:13:41 +01:00
Martin Klapetek
76186339f6 [libplasma] Add categorized debug output 2015-12-15 16:56:40 -05:00
Nick Shaforostoff
c7c2980f14 qstring optimizations
REVIEW: 126148
2015-11-27 20:03:48 +00:00
Marco Martin
80d5a6fdda start timer with invokeMethod
rectSaveTimer is used to event compress the save and sync of the
configuration file that is used as a cache of the rectangles of
svg items (in order to avoid svg renderers creation when possible)
there is exactly one situation where it seems to not work: during
creation of svgitems/framesvgitems, insertintorectcache ends up
being called by another thread than the Theme's qobject thread,
and that is not allowed.

with invokeMethod the timer will be started by the correct thread
REVIEW:122915

Change-Id: I3ff4a4ebd1dfdba4b9b830fe6c08feece19b903e
2015-03-12 15:15:45 +01:00
David Edmundson
f6aa18c884 Save SVGs only when a theme is unloaded, not on each theme proxy
A single Plasma theme will be represented by one ThemePrivate object,
which is exported in multiple Theme objects.

We want to save the cache when that theme stops being used, not each
time an item stops using the theme.

saveSvgElementsCache calls sync() which involves a lot of parsing and
IO. This makes everything a lot faster at no cost.

Change-Id: Ica6ba0273bc99fb8ad8733a1c90db8f1e87c49ea
2014-12-11 01:56:55 +01:00
Marco Martin
6c54fb596d Don't expose color properties in c++ api
the color properties are remotely useful only when used from QML
and risk to explode in number in the future,
it's not a good thing for a public c++ api.

Also, they will become kinda deprecated as in largely replaced by
the ColorRole api. Too late to remove those properties completely,
but still last days to move them at least out of c++ api.
(and in qml they could be removed in the future in a 2.1 version
of the import while still being present in 2.0 if needed)

This moves the color properties is a theme subclass available only from QML

REVIEW:118972
2014-06-27 15:06:52 +02:00
Marco Martin
17741fbfae prune ColorRole enum
all the former combinations are now obtained with
ColorRole + ColorGroup
2014-06-19 18:18:50 +02:00
Marco Martin
8eb1bc10f5 Introduce the ColorScope class
it's an import in core, and advertises itself as an "attached property"
with this we can:
say that all its chidren are of a certain context, like "button" or
"complementary"

then anywhere there will be available an attached property, as ColorScope,
so like:

PlasmaCore.ColorScope {
 group: PlasmaCore.Theme.Complementary

 PlasmaComponents.Label {
   text: "foo"
   color: ColorScope.textColor
 }
}
2014-06-19 17:40:14 +02:00
Marco Martin
4ad2cc5196 new color group of "complementary" colors
for areas intended to have independent background and text color than
all the rest, like the Logout dialog

if Colors:Complementary is not present in the theme, it falls back to
normal colors
2014-06-18 19:02:08 +02:00
Marco Martin
0596cf176f schedule a rect cache sync when stuff gets in
do a disc sync with a 2 minutes delay
2014-05-26 20:32:22 +02:00
Marco Martin
0b10a16113 try harder to avoid creating svg renderers
now is actually possible to obtain a startup with zero svg renderers
    * svg::isValid will create a renderer only if really nevessary
    * the rects cache is ensured to be written on disk
    * fixed the check on the theme metadata age
    * rect cache is shared between all applications
2014-05-26 20:14:57 +02:00
Aleix Pol
9d9c72630c Simplify plasma theme startup
Don't emit themeChanged when constructing Plasma::Theme instances

Reviewed by David Edmundson
2014-05-26 19:03:46 +02:00
Marco Martin
409d340fba if a name is passed in the ctor, never change
BUG:335005
2014-05-20 18:26:03 +02:00
Marco Martin
f7e25fe696 don't link to xml and iconthemes 2014-05-19 19:09:09 +02:00
Marco Martin
924818a0ca don't link agains KConfigWidgets
not needed anymore
2014-05-19 16:58:37 +02:00
Marco Martin
72239e7f3c apps can use more than one theme.
add the name in s_sharedFrames
CCBUG:335003
CCBUG:335004
2014-05-19 15:24:36 +02:00
Patrick Spendrin
c68db518c8 remove unneeded header
REVIEW:118119
2014-05-15 16:54:31 +02:00
Marco Martin
842d8a7ad5 don't onAppExitCleanup on theme destroy
Theme is not a singleton anymore
2014-05-07 13:58:09 +02:00
Aleix Pol
e6f1fec0c7 Install all plasma files in a prefix/share/plasma directory
At the moment, we could say that plasma is co-installable by chance,
it's only working because KF5 dropped the apps relative directory.
This change introduces a PLASMA_RELATIVE_DATA_INSTALL_DIR that will
be available to know where in share the components are and
PLASMA_DATA_INSTALL_DIR to know where data has to be installed to.

Reviewed by David Edmundson

CCMAIL: plasma-devel@kde.org
2014-04-27 17:14:22 +02:00
Kevin Ottens
72ba7b4146 Apply the astyle-kdelibs script 2014-04-26 01:48:37 +02:00
Sebastian Kügler
5dd4b51151 Plasma::Theme gets API for KWS' background contrast effect
From its api docs:

This method allows Plasma to enable and disable the background
contrast effect for a given theme, improving readability. The
value is read from the "enabled" key in the "ContrastEffect"
group in the Theme's metadata file.
The configuration in the metadata.desktop file of the theme
could look like this (for a lighter background):

[ContrastEffect]
enabled=true
contrast=0.45
intensity=0.45
saturation=1.7
2014-02-06 00:56:50 +01:00
Marco Martin
517403096d port improve cache file dropping to plasma-framework
this ports revision c03052935b082 on kdelibs

improve cache file dropping

* fix regression: version the image cache file name
* version the svg elements
* drop old svg elements files
* respond to changes at runtime by watching the theme's metadata.desktop for changes
* move creation of the svg elements file into ThemePrivate::useCache()

REVIEW:115397
2014-02-04 12:06:09 +01:00
Sebastian Kügler
91a861e3ef noise-- 2014-01-31 03:39:10 +01:00
Sebastian Kügler
ffeb585003 Rough version in which theme switching works
This aligns the config files and groups, and adds a KDirWatch in the
shared Plasma::Theme private object in order to nofity when the
configured theme changes.

It's a bit rough, doesn't cover all corner cases and needs polishing.
2014-01-31 01:06:43 +01:00
Sebastian Kügler
a70dd8c299 theme.defaultIconSize moves to units.iconSizes.default 2014-01-23 01:47:42 +01:00
Sebastian Kügler
4da01ebce0 spacing hints move from theme to units 2014-01-23 01:26:19 +01:00
Sebastian Kügler
d4902e2df2 Remove icon sizes from Plasma::Theme
They've moved into Units
2014-01-23 00:43:21 +01:00
Sebastian Kügler
374d230932 wallpaperForSize moves to Plasma::Theme 2014-01-13 02:11:37 +01:00
Sebastian Kügler
ea2a4db7ab Move spacing, stylesheet and mSize into Plasma::Theme 2014-01-13 01:31:46 +01:00
Sebastian Kügler
a9b1f2c619 Most of iconSize moves to Plasma::Theme
The QQmlPropertyMap isn't moved with this commit, this needs a bit more
changing, so we do a separate one for that, once the more trivial stuff
is moved out.
2014-01-12 20:10:19 +01:00
Sebastian Kügler
25dcdd39a4 Color properties move into Plasma::Theme
They're now convenience API in Plasma:Theme, PlasmaCore.Theme is
becoming smaller and smaller. Another nail in its coffin.
2014-01-12 19:49:56 +01:00
Sebastian Kügler
13242c8a5f Move smallestFont and defaultFont properties into Plasma::Theme 2014-01-12 19:33:56 +01:00
David Edmundson
1f83fdcc3c Reduce warnings starting the pixmap save timer from other threads
REVIEW: 114382
2013-12-11 14:05:40 +01:00
Aleix Pol
6c82a1ee86 Reduce compiler warnings
Remove unused and deprecated headers
Port some K_GLOBAL_STATIC to Q_GLOBAL_STATIC
2013-12-09 16:50:18 +01:00
Sebastian Kügler
f83e8f421a remove unneeded includes 2013-10-05 06:19:51 +02:00
Kevin Ottens
0e590217f8 Port away from kdebug 2013-07-30 08:05:09 +02:00
Gregor Tätzner
ad6f58a16c Fix build error: convert qdatetime to uint 2013-06-05 19:41:58 +02:00
Marco Martin
3bfbc31381 remove some not used includes 2013-03-13 11:32:00 +01:00
Marco Martin
fd97160327 remove the singleton usage from everywhere 2013-03-12 16:29:04 +01:00
Marco Martin
fe9ebd86a8 remove the ThemePrivate singleton 2013-03-12 13:03:06 +01:00
Marco Martin
2006df44cc make sure we connect themeChanged 2013-03-11 22:39:15 +01:00
Marco Martin
0ca0934370 themePrivate instances are kept in statics
as a static pointer with refcount if "global" and internal refcounted hash if created with name
2013-03-11 22:26:15 +01:00