Commit Graph

86 Commits

Author SHA1 Message Date
Aleix Pol
d3b22f8828 Port trivial connects to the new style 2019-08-30 17:26:54 +02:00
Laurent Montel
9fc663d9f0 Make it compiles without deprecated method
Summary: compile without deprecated method

Test Plan: all autotest ok

Reviewers: dfaure, apol

Reviewed By: apol

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D19418
2019-02-28 23:01:43 +01:00
Kevin Funk
d13f9e6f85 ASAN: Fix memory leak in Corona
KPackagePrivate::internalPackage already existed, the re-assignment to a
new value causes a memory leak.

Trace:
Indirect leak of 112 byte(s) in 1 object(s) allocated from:
    #0 0x544cc0 in operator new(unsigned long) (/home/kfunk/devel/install/kf5/bin/plasmashell+0x544cc0)
    #1 0x7f905829163f in KPackage::Package::Package(KPackage::PackageStructure*) /home/kfunk/devel/src/kf5/kpackage/src/kpackage/package.cpp:51:9
    #2 0x7f9058fad786 in Plasma::Package::Package(Plasma::PackageStructure*) /home/kfunk/devel/src/kf5/plasma-framework/src/plasma/package.cpp:66:34
    #3 0x7f9058f14dee in Plasma::Corona::package() const /home/kfunk/devel/src/kf5/plasma-framework/src/plasma/corona.cpp:78:13
    #4 0x5d9eb9 in ShellCorona::ShellCorona(QObject*) /home/kfunk/devel/src/kf5/plasma-workspace/shell/shellcorona.cpp:132:70
    #5 0x65c31d in ShellManager::loadHandlers() /home/kfunk/devel/src/kf5/plasma-workspace/shell/shellmanager.cpp:93:21
2018-11-20 15:15:42 +01:00
Albert Astals Cid
9b53406f23 Remove unused variables
Reviewers: apol

Reviewed By: apol

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D16575
2018-11-03 01:34:40 +01:00
Yuri Chornoivan
72ca2f79e0 Fix minor EBN issues and typos 2018-10-22 21:05:29 +03:00
Marco Martin
0e013db633 call addContainment with proper paramenters 2018-04-18 12:31:12 +02:00
Marco Martin
2de1bda33a ensure the containment we created has the activity we asked for 2018-04-16 13:36:07 +02:00
Marco Martin
bfa19dbc8f add a version containmentForScreen with activity
Summary:
add a version of containmentForScreen which it has the activity.
which is correct as the activity id of containments in in libplasma side.
this ensure the correctness of shellCorona createContainmentForActivity
as now it works also for activities different from the current one.
to make multimonitor a tad safer with it, when creating containments for an activity, initialize their lastScreen to the asked screen.

Test Plan: tried with an old plasmashell and is perfectly retrocompatible

Reviewers: #plasma, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: davidedmundson, #frameworks

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D11361
2018-04-16 11:22:25 +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
Marco Martin
301193cb96 don't assume last is is numScreens()-1
screen ids are going to not be continuous anymore
as screen id is going to correspond 1:1 to connectors,
it will be possible to have "holes", therefore valid ids
that are bigger than screenNum()

REVIEWED-BY:sebas@kde.org
Change-Id: I1c0b1fb827dba4d95f228d32209403150c089c77
2016-07-18 14:47:53 +02:00
Aleix Pol
9575b8c009 Let Plasma::Corona load the layout on all cases
We either load the existing layout or we load a default one.
With this, it could be removed from ShellCorona.

REVIEW: 127850
2016-06-07 15:23:13 +02:00
Aleix Pol
309c64f5e9 Don't import an nonexistent layout
It should have a containment at least

REVIEW: 127345
2016-03-16 12:33:10 +01:00
Ivan Čukić
63f14f1ddf Allowing to override plasma mutability setting on containment creation
This adds a 'Sledge Hammer'-like flag (trust me I know what I'm doing)
for creating the containment even if the plasma is not set on
'mutable'.
2016-03-09 11:51:38 +01:00
Aleix Pol
9f62532674 Fix most of Clazy warnings in plasma-framework
REVIEW: 126672
2016-02-29 00:13:41 +01:00
David Edmundson
ab135f4e8e Don't always load the timetracker
It has a timer that wakes up every 2 seconds and drains my battery just
simply because I have debug builds. This make it on demand.

Don't track containments twice.
Containments inherit from Applets which also have the same line

Change-Id: Ia9a9b58a0b1197083d692c58e4ce75838c311db4
REVIEW: 126472
2015-12-27 19:37:35 +00:00
Martin Klapetek
76186339f6 [libplasma] Add categorized debug output 2015-12-15 16:56:40 -05:00
Marco Martin
84fc7672f6 introduce appletCreated signal
appletCreated is different from appletAdded because it gets
emitted only when the user explicitly creates one, so not in
case of an applet migrating and not during restore
needed by https://git.reviewboard.kde.org/r/125562/

REVIEW:125569
Change-Id: I1db9286beb160391c13f1aca0ac48ed490495ea2
2015-10-13 14:26:53 +02:00
Marco Martin
a629fe4d8f migrate to KPackage
Plasma::Package internally uses KPackage, being a pure wrapper.
old client code and old packagestructures still work using the wrapper.
old workspace code that is not directly using kpackage continues to work correctly

Change-Id: I05f95e8d05e3b67759973c4009e3753c61b1dcce
2014-12-29 13:56:52 +01:00
Marco Martin
a159208d54 Ensure corona::containments() is ordered
the order in which containments were restored used to be quite random:
ensure that's ordered by id this makes the shell startups be more reproduceable
from one to another, if a new containment arrives, ensure it's inserted
maintaining id order

containment::appelts() will need the same treatment

adds a test as well that checks the order is right

Change-Id: Ie1b278e5b83d7e3645f7293bf6d030aa7f43a221
2014-09-15 17:28:38 +02:00
Marco Martin
052a0c32ae base on screen() to see what containment is loading
if a containment's lastScreen is not -1 (and a valid screen)
*and* its activity() is not the current one, its QML
will *not* be loaded, therefore it would dangle blocking
corona::startupCompleted until the activity is selected

Change-Id: I6757d29240a012377e9ff0a22fe16541ea712ee6
2014-09-15 14:49:18 +02:00
Marco Martin
0b0daa2318 ensure empty containment emit uiReady()
Containments with no applets will emit uiReady now

It adds a test as well that checks if this is the case.

There is still a case where the corona doesn't emit startupCompleted()
that's when there is more than one activity, but that, as well the test
will be adressed by another patch on a different part.

Change-Id: I4d83aa612c29fb0f441d11681bc5aba241370bc3
2014-09-13 12:41:24 +02:00
Marco Martin
546ffbc791 reintroduce containmentForScreen with defaultPlugin
reintroduces an api call from plasma1:
its the only way to solve
https://bugs.kde.org/show_bug.cgi?id=337200
basically to avoid a crash when plasma starts with missing containments in the appletsrc and a locked corona, or a screen added with locked widgets.

it's the only entry point that allows a creation of a containment when widgets are locked
REVIEW:119513
CCBUG:337200
2014-07-28 13:43:23 +02:00
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
Marco Martin
6666445af5 don't make failed applet block the corona 2014-07-14 14:22:36 +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
459f81814d Only consider a containment as finished if it actually passes a "true".
So far, we were only considering the fact that teh signal was being
emitted, and that's doesn't seem correct.

REVIEW: 119191
2014-07-09 12:51:24 +02:00
Aleix Pol
5e0acaa443 --warning 2014-07-09 12:02:31 +02:00
Aleix Pol
a06c1569a1 The screen size will be defined by the final Corona
It doesn't make sense to try to give hints at what it will be given that
we don't know.
For example, see how we're defining ::numScreens as 1 on the other method
as well.
2014-06-05 01:25:18 +02:00
David Edmundson
e8297e9a0f QDesktopWidget -> QScreen 2014-06-04 18:55:05 +02:00
Marco Martin
f7e25fe696 don't link to xml and iconthemes 2014-05-19 19:09:09 +02:00
Aleix Pol
556c1e321a Remove random qDebug output
Makes it easier to spot the actual problems on the output. If there's
something that's actually indicating a problem, we should make it a
qWarning.
2014-05-06 19:57:37 +02:00
Marco Martin
a6eca11b84 restore corona immutability
BUG:334141
2014-04-30 19:31:56 +02:00
Kevin Ottens
72ba7b4146 Apply the astyle-kdelibs script 2014-04-26 01:48:37 +02:00
Marco Martin
47dfda75c0 introduce the signal Corona::startupCompleted()
when emitted we are sure all containments *graphics objects*
 have been created
2014-04-22 14:58:12 +02:00
Marco Martin
d8731d7806 re-add Corona::createContainmentDelayed()
unfortunate, but necessary for on the fly containment plugin switch
2014-04-09 22:15:46 +02:00
Martin Klapetek
6a1fa18986 Add availableScreenRect(int id) to Corona base class
This is already implemented in ShellCorona and is quite handy too

Reviewed-by: Marco Martin
2014-03-11 15:30:45 +01:00
David Edmundson
f5618db949 Remove unused property drawWallpaper
As suggested here: http://community.kde.org/Plasma/libplasma2/API_Review/Containment
kde-workspace doesn't use it.

REVIEW: 115224
2014-01-30 15:34:45 +01:00
Aleix Pol
d2992acfa7 Fix QObject::connect() warnings
Adapt to changes in Plasma::Corona
2013-12-19 17:31:28 +01:00
David Edmundson
37840b1490 Add default screenForContainment implementation 2013-12-17 15:46:57 +01:00
David Edmundson
a26913ccac Move screen management logic in ShellCorona
Previously shells, activities, shellcorona and corona all tried to
manage
which screen a containment was on.

This version moves all screen management into ShellCorona so we have a
central place for keeping tracking of containments, activities and
screens.
2013-12-16 15:30:13 +01:00
David Edmundson
ef58fdbf6f Remove Applet::Private::isContainment
Instead determine by introspecting if this inherits from Containment

REVIEW: 114405
2013-12-11 15:50:48 +01:00
Marco Martin
60e5a57c23 don't double signal containmentAdded 2013-10-23 22:38:41 +02:00
Martin Klapetek
17e95850fa Use proper default containment name
Fixes the case when loading the default containment would fail because
the default one couldn't be found

Reviewed-by: Sebastian Kügler
2013-10-23 15:25:02 +02:00
Marco Martin
800e5ec91c use the ctivity class and Kactivities
just building, issues with linking with kactivities, not used yet
2013-10-16 21:01:39 +02:00
Marco Martin
de6d0f12d0 Corona::packageChanged() signal
views listen to it to know when to reload theirview qml file
2013-09-02 21:06:35 +02:00
Marco Martin
b32a42c8e8 Corona::setPackage(QString) uses a Package
* symmetrical api in Corona
* there is no default package
2013-09-02 18:04:22 +02:00
Ivan Čukić
f786c74020 Ported the broken branch to a new one 2013-08-31 17:47:29 +02:00
Kevin Ottens
0e590217f8 Port away from kdebug 2013-07-30 08:05:09 +02:00