297 Commits

Author SHA1 Message Date
Marco Martin
188d131d77 make the uiloaded tests pass
work in case of every order the various applets and containments emit uiready
REVIEW:119284
2014-07-15 10:16:10 +02:00
Marco Martin
427acdb373 Merge branch 'mart/coronaautotest'
REVIEW:119270
2014-07-14 20:48:31 +02:00
Aleix Pol
83895d8e26 Use proper sizes and positions 2014-07-14 20:02:47 +02:00
Aleix Pol
a8b37129d0 Refactor a contentGeometry method out of generateFrameBackground
Given the FrameData and the total size, we get to know where is the
contents going to be and gives us the information to extrapolate where to
put all the borders and corners.

Reviewed by David Edmundson
2014-07-14 18:13:40 +02:00
Aleix Pol
d574f51108 Move the central space painting into a separate function
Reviewed by David Edmundson
2014-07-14 17:00:39 +02:00
Aleix Pol
ae56796cb9 Move corner painting into a paintCorner function 2014-07-14 16:47:56 +02:00
Aleix Pol
f62b357b62 Prefer passing a size rather than a width and height 2014-07-14 16:37:00 +02:00
Marco Martin
6666445af5 don't make failed applet block the corona 2014-07-14 14:22:36 +02:00
Aleix Pol
5b1fc96329 Small internal code refactoring
Create a paintBorder function that can generically paint framesvg borders.
This helps us reduce duplicated code as well as improving the readability
of the code.

Reviewed by David Edmundson
2014-07-14 14:16:16 +02:00
Aleix Pol
dac1d8f265 Figure out why my plasma wasn't notifying the startup
Make sure AppletPrivate::uiReady is set in applet_p.cpp when we report that
the ui is ready.
Make sure that if we loop through all the containments and they're all
ready, we emit that it's done.

So far, Corona::startupCompleted was never emitted.

REVIEW: 119220
2014-07-14 13:23:20 +02:00
Aleix Pol
054a38b9d0 --runtime warnings 2014-07-11 19:51:42 +02:00
Aleix Pol
e008a5d7d4 If a timer is active and we start it, it will restart
No need to check if it's active and stop it first, according to the
documentation.
2014-07-11 19:15:06 +02:00
Aleix Pol
804a0d34da Fix cache implementation
It was weird.

Reviewed by the Handa-man.
2014-07-11 18:37:55 +02:00
Marco Martin
c77b2bf9a8 fix switch from a less complete to a more complete
if the old theme didn't have a prefix, but the new one has,
set the old (formerly nonexisting) prefix again
2014-07-11 16:42:55 +02:00
Aleix Pol
4b222c5ef6 --warning unused variable 2014-07-10 20:28:01 +02:00
Aleix Pol
92a8007489 Introduce TimeTracker debugging tool for plasma
TimeTracker is a small class that keeps track of an object the changes in
the properties of an object and relates them to a point in time. This way
we can see how things change and react to each other. Then, this information
is exported into a json file to analyze.

REVIEW: 119199
2014-07-10 19:20:59 +02:00
Aleix Pol
124dc4799a fix build 2014-07-09 18:23:58 +02:00
Aleix Pol
f5f96c1390 Remove unneeded casts
They're all because we're accessing the d-pointer of the parent class (!),
we can access it without casting.
2014-07-09 18:20:32 +02:00
Aleix Pol
8fb62cc0a4 Cleanup
Re-use containment variable instead of keep fetching it every time. It's
not a trivial function, so better reduce the calls.
2014-07-09 12:43:08 +02:00
Aleix Pol
ae996c6666 --deprecated call 2014-07-09 12:36:34 +02:00
Marco Martin
573f48921e don't escalate immutability on each save
Applet::immutability() is the maximum between internal applet immutability
and the immutability of its containment.
so not set higher immutability in the internal member of Applet
or the applet will not be able to be unlocked properly

Reviewed by: Sebastian Kügler <sebas@kde.org>
2014-07-03 14:12:21 +02:00
Christoph Feck
fec57bdaa2 Use QElapsedTimer for data engines
forward port of http://commits.kde.org/kdelibs/ac5d3d2f916c0a461121d4d033642227bd743edb

CCBUG: 336551
REVIEW: 118869
2014-06-23 13:03:16 +02:00
Andre Woebbeking
35ee077ee3 warning: ignoring return value of function
CCMAIL:mart@kde.org
2014-06-22 20:37:18 +02:00
Marco Martin
3847be89fa don't crash if no colors file is provided
Reviewed by: Martin Gräßlin <mgraesslin@kde.org>
2014-06-20 14:42:13 +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
b755bd1e32 ColorGroup is part of Theme 2014-06-18 19:22:02 +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
fa95680a51 use color groups instead
the Text and Background colors can become buttonText or ButtonBackground
based on the svg property ColorGroup
2014-06-09 19:35:58 +02:00
Marco Martin
cac2704d50 prototype of more flexyble svg stylesheets
experiment in dynamic repacement of Text and Background
colors, in order to be able to generate icons of different colors
based on where they are (for instance if the normal background
is dark and the button background is light

at the moment supported an option to invert colors, one
to use the "highlight" color (if we want colored icons
on mouse over)
2014-06-09 17:35:46 +02:00
Giorgos Tsiapaliokas
35e5c46358 Unset the contentsPrefixPaths for the ThemePackages. The Theme Packages are not supposed to have a "contents/" directory.
REVIEWED-BY: Marco Martin
2014-06-06 18:48:49 +03:00
Marco Martin
b6ac8ded88 forcefully remove some entries
newly created containments may have some default entries like plugin
or formfactor written in the config group, but not in keyList()
they have to be explicitly removed because wouldn't be removed in
deleteGroup
BUG:335792
2014-06-04 17:28:11 +02:00
David Edmundson
23068fb2b0 Avoid references to QApplication
They cause problems when running in QGuiApplication

REVIEW: 118470
2014-06-02 17:44:47 +02:00
Marco Martin
0c127f1ce5 delete framedata when ThemePrivate dies 2014-05-28 20:34:25 +02:00
Marco Martin
3fdf999ba0 bit more complex bookeeping
since it is now possible to have different svg/framesvg with
different themes, s_sharedFrames must be indexed by theme first
what it's really the identifying thing is ThemePrivate, so it's indexed by that
this fixes a crash that occurs the second thime the theme gets changed

BUG:335472
2014-05-28 20:27:58 +02:00
Yuri Chornoivan
aab2c13164 Fix typos found by mvillarino 2014-05-27 07:02:32 +03: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
bbed0411b6 don't use another Thmeme copy 2014-05-19 14:58:19 +02:00
Marco Martin
682bf5f149 if containment gets destroyed, destroy all dialogs
BUG:334977
2014-05-19 11:15:51 +02:00
Marco Martin
9d3344d0a6 close the remove dialog if containment locks
BUG:334978
2014-05-19 11:11:19 +02:00
Marco Martin
7f4e72fb35 crash--
weird behavior:
qdeleteall crashes, deleting items one by one doesn't
2014-05-14 18:21:49 +02:00
Eike Hein
1805bb7496 Make sure the args part of Containment::createApplet(..., args) ends up in the applet. 2014-05-06 20:52:42 +02:00
David Edmundson
873106a7ca Track screen in the containment when inside an applet
Make the system tray containment update which screen it is on when the
system tray applet is moved.

This fixes notifications if the panel is moved between screens.

REVIEW: 117946
2014-05-05 11:39:36 +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
Aleix Pol
1294051eaf Adapt to changes in KDEInstallDirs
kde5/services is kservices5
kde5/servicetypes is kservicestypes5
2014-04-26 19:50:53 +02:00
David Edmundson
4ce14a1654 Remove duplicated ConfigLoader
This moved to KConfigGui as KConfigLoader.

Use of private KConfig API in Service had to be ported to use only
public method.

REVIEW: 117784
2014-04-26 17:10:13 +02:00