132 Commits

Author SHA1 Message Date
Andreas Cord-Landwehr
d10afb5d2a plasma-framework: Convert copyright statements to SPDX expressions 2020-08-13 19:08:54 +00:00
Carson Black
6c627ea044 Remove usage of context properties for theme and units 2020-07-27 19:54:44 +00:00
Friedrich W. H. Kossebau
396c643154 Port away from deprecated qmlRegisterType
GIT_SILENT
2020-06-26 15:48:28 +02:00
Friedrich W. H. Kossebau
633eeaafdd Port away from deprecated QDateTime(QDate) constructor
GIT_SILENT
2020-06-26 05:55:29 +02:00
Nate Graham
e6b8499304 [calendar] Reduce month label's size
Level 1 is too large for this, as it's typically used for the entire
window or popup's title. The smaller level 2 is therefore more
appropriate so that when the parent window supplies its own level 1
heading, the calendar month label don't inappropriately be the same size.

Needed for https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/98
2020-06-18 15:30:28 -06:00
Laurent Montel
48f60533b9 [plasma-framework] make it compiles without foreach
Summary: compile without foreach

Test Plan: autotest ok

Reviewers: dfaure, apol

Reviewed By: dfaure, apol

Subscribers: ahmadsamir, nicolasfella, broulik, apol, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D19913
2020-04-17 06:47:04 +02:00
David Edmundson
6756d00fba [calendar] Check out of bounds array access in QLocale lookup
Summary:
If we have a broken locale setup we don't have any uiLanugages to look
up the relevant locale object for.

In that case use the system locale.

Test Plan:
Had a crash here

#11 0x00007ff982aab0b2 in QList<QString>::at(int) const (this=0x7ffd50b1d928, i=0) at /opt/qt5/include/QtCore/qlist.h:571
#12 0x00007ff982aaaa4a in Calendar::monthName() const (this=0x5640cce026f0) at /home/david/projects/kde5/src/frameworks/plasma-framework/src/declarativeimports/calendar/calendar.cpp:202
#13 0x00007ff982aa14e9 in Calendar::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x5640cce026f0, _c=QMetaObject::ReadProperty, _id=9, _a=0x7ffd50b1dd40) at src/declarativeimports/calendar/calendarplugin_autogen/EWIEGA46WW/moc_calendar.cpp:340

Reviewers: #plasma, vkrause

Reviewed By: vkrause

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D25960
2019-12-18 12:52:15 +00:00
Marco Martin
9f04ae48e2 make pinch in calendar work again
work around https://bugreports.qt.io/browse/QTBUG-76569
with an empty mousearea on top
2019-06-21 17:20:06 +02:00
Friedrich W. H. Kossebau
3b950f38cc Update *.qmltypes to current API of QML modules
Reviewers: #plasma, apol, mart

Reviewed By: #plasma, mart

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D21001
2019-05-17 18:38:10 +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
Chris Holland
e5949866bb [Calendar] Expose firstDayOfWeek in MonthView
This allows for calendar widgets to override the Locale. Users may
want to start the week on a Sunday, Saturday, or Monday without
changing their locale's date formatting.

CCBUG: 390330

Differential Revision: https://phabricator.kde.org/D15321
2019-01-03 16:58:58 -05:00
Shubham Jangra
e3aa2cf840 Fix comparision between signed and unsigned integer warning 2018-12-12 00:07:21 +05:30
Shubham Jangra
1bba82535c Fix unused parameter warning 2018-12-11 23:47:39 +05:30
Laurent Montel
7931bdccdd Remove virtual keyword 2018-11-30 07:58:34 +01:00
Kevin Funk
421e1c0126 ASAN: Fix memory leak in CalendarPlugin
Trace:
Indirect leak of 24 byte(s) in 1 object(s) allocated from:
    #0 0x508a17 in __interceptor_malloc (/home/kfunk/devel/install/kf5/bin/plasmashell+0x508a17)
    #1 0x7fcf92aa6230 in QHashData::allocateNode(int) /home/kfunk/devel/src/qt5.11/qtbase/src/corelib/tools/qhash.cpp:479:79
    #2 0x7fcf7a851d10 in QHash<int, QByteArray>::detach() /home/kfunk/devel/build/qt5.11/qtbase/include/QtCore/../../../../../src/qt5.11/qtbase/src/corelib/tools/qhash.h:275:51
    #3 0x7fcf7a8519c9 in QHash<int, QByteArray>::insert(int const&, QByteArray const&) /home/kfunk/devel/build/qt5.11/qtbase/include/QtCore/../../../../../src/qt5.11/qtbase/src/corelib/tools/qhash.h:769:5
    #4 0x7fcf7a859736 in EventPluginsModel::EventPluginsModel(EventPluginsManager*) /home/kfunk/devel/src/kf5/plasma-framework/src/declarativeimports/calendar/eventpluginsmanager.cpp:42:17
    #5 0x7fcf7a854c55 in EventPluginsManager::EventPluginsManager(QObject*) /home/kfunk/devel/src/kf5/plasma-framework/src/declarativeimports/calendar/eventpluginsmanager.cpp:185:19
    ...

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D17031
2018-11-20 15:15:59 +01:00
Yuri Chornoivan
72ca2f79e0 Fix minor EBN issues and typos 2018-10-22 21:05:29 +03:00
Kai Uwe Broulik
020d3e3ebe [Calendar] Wrap day name index around
Otherwise when the week starts on a day other than Sunday or Monday we access invalid day names.

CHANGELOG: Fixed week names not showing properly in calendar when week starts with a day other than Monday or Sunday

BUG: 390330

Differential Revision: https://phabricator.kde.org/D15309
2018-09-06 12:41:16 +02:00
Yuri Chornoivan
38431eebfa Fix minor typos 2018-09-05 22:22:38 +03:00
Fabian Vogt
d15f0fa832 Use QDateTime for interfacing with QML
Summary:
QDate from/to JS Date has unexpected results, so use QDateTime to have a
timezone assigned to prevent conversions. That way the date values are
consistent.

The behaviour got changed with Qt 5.11 (see the linked bug report) which
lead to plasma showing the wrong dates in the calendar.

BUG: 394423

Test Plan:
Tested with and without this patch on Qt 5.10.1 and 5.11.0.
Now the correct date is displayed for -0004 and +0001 timezones.

Reviewers: #plasma, #frameworks, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: ngraham, Zren, sharvey, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D13222
2018-06-04 10:33:06 +02:00
Laurent Montel
70a274ad3a Use override 2018-05-23 08:05:40 +02:00
Friedrich W. H. Kossebau
67f5ad29e8 Fix PlasmaCalendar widget to not mark days with minor events
Summary:
CalendarEvents::EventData (in KDeclarative) has a property isMinor, which is
described as "If set to true, it won't be marked in the calendar grid".

This patch fulfils that promise, by introducing separate roles on the model
which explicitly report the existance of any major or any minor events at a
given day, so that the marker loader can concentrate on the major events.

Test Plan:
Using a plasmacalendar plugin which feeds events with isMinor=true the
widget now only marks days which have major events.

Reviewers: #plasma, broulik, davidedmundson

Reviewed By: #plasma, broulik, davidedmundson

Subscribers: davidedmundson, broulik, #frameworks

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D12438
2018-05-02 17:33:30 +02:00
Laurent Montel
a4eeca5190 Warning-- 2018-04-13 09:05:26 +02:00
Alexander Akulich
55efe5ae63 [Calendar] Adjust the calendar toolbar anchors
Summary:
Horizontally align the toolbar row to the days/month/etc grid canvas.

(The bar was used to be a few pixels wider)

Test Plan:
Before: {F5514329}

After: {F5514330}

Reviewers: #plasma, broulik

Reviewed By: #plasma, broulik

Subscribers: aacid, davidedmundson, broulik, plasma-devel, #plasma, #frameworks

Tags: #frameworks, #plasma

Maniphest Tasks: T7499

Differential Revision: https://phabricator.kde.org/D9019
2018-01-16 13:57:22 +03:00
Laurent Montel
d1949d9149 Const'ify, use nullptr 2017-12-25 18:41:50 +01:00
Montel Laurent
7f0c023d3f Use nullptr + add explicit 2017-12-13 07:36:22 +01:00
Aleix Pol
1f9b5ed657 Performance
Summary:
Remove splitting + joining of a string just to remove the beginning of a
string.
Remove double look-up.
Solves Clazy warnings

Reviewers: #frameworks, #plasma, hein

Reviewed By: #plasma, hein

Subscribers: hein, plasma-devel

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D9109
2017-12-02 16:22:03 +01: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
Fabian Vogt
4f43c236e3 Fix org.kde.plasma.calendar with Qt 5.10
Summary:
Module internal types are not implicitly available anymore simply by placing
them inside the module's main directory. It is now necessary to mention them
as internal types in the qmldir file.

See qtdeclarative commits 22a2cc43387ec3b9f74a6c01f8665378a4541147 (introduced
the change) and 930aea8b9ca59a24838cf7f279653e3b2ee40cee (explanation)

Test Plan:
Built whole stack with Qt 5.10. The digital clock plasmoid does not
load due to the DaysCalendar type not being available. With these changes to
qmldir and a reload of the plasmoid it works.

Reviewers: #plasma, broulik

Reviewed By: #plasma, broulik

Subscribers: broulik, #frameworks, plasma-devel

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D8077
2017-10-01 23:06:24 +02:00
Kai Uwe Broulik
d574dec0f8 [EventPluginsManager] Expose pluginPath in model
That's what digital clock stores in its config, allows us to do matching.

Differential Revision: https://phabricator.kde.org/D7601
2017-08-31 14:27:43 +02:00
David Rosca
a01e4fb69e Calendar: Use correct language for month and day names
Apply fix for bug 353715 also on QML side.

Differential Revision: https://phabricator.kde.org/D5345
2017-04-11 09:36:20 +02:00
Aleix Pol
328cd681a7 Update qmltypes 2017-04-10 16:02:23 +02:00
Aleix Pol
2df613f938 Generate plugins.qmltypes files for the plugins we install
Reviewers: #plasma, #frameworks, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: davidedmundson, hein, plasma-devel

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D5088
2017-04-10 15:09:57 +02:00
Kai Uwe Broulik
5ae0651045 [Calendar] Shrink and elide week names like is done with day delegate
This ensures week names never exceed their cell's boundaries.

BUG: 378020

Differential Revision: https://phabricator.kde.org/D5200
2017-03-28 13:46:22 +02:00
Kai Uwe Broulik
dfbf2c1c30 Port away from setRoleNames where easily possible
It is deprecated. Instead re-implement roleNames().
Done in places where only static roles were used.

Differential Revision: https://phabricator.kde.org/D4891
2017-03-06 13:36:17 +01:00
Marco Martin
b629bdcf08 make all heights in the calendar header to be even
the layout engine has a bug
https://bugreports.qt.io/browse/QTBUG-58307
that if some items have an odd height, some an even height,
the smallest items are resized by half pixel to try to
really center it, breaking rendering
BUG:375318

Reviewed-by:David Edmundson
2017-01-20 14:32:50 +01:00
Kevin Funk
f8a7b418d5 Prefer nullptr over Q_NULLPTR 2017-01-16 18:17:34 +01:00
Albert Astals Cid
5c46e32993 Q_ENUMS -> Q_ENUM and Q_FLAGS -> Q_FLAG
REVIEW: 129826
2017-01-14 01:06:28 +01:00
Daniel Vrátil
3aec1bf2d3 Use KPlugin to load Calendar plugins
Using KPlugin allows for the plugin metadata to be localized. Contains
also fallback code to be able to load the pre-KPlugin plugins so that
the plugins are not broken until next Plasma/KDE Applications release.

Differential Revision: https://phabricator.kde.org/D3811
2017-01-12 14:53:25 +01:00
Montel Laurent
39adcec588 Add missing Q_dECL_OVERRIDE 2017-01-03 09:13:39 +01:00
David Edmundson
2e944d53a3 Avoid using deprecated Qt code QAbstractItemModel::reset
Reviewers: #plasma

Subscribers: plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D3839
2016-12-28 15:43:38 +00:00
Eike Hein
91eb0749ed Revert "port all output to QCDebug/QCWarning"
This reverts commit acd7ab7815a2a1f9a65f1dbf2cb53123c86da58b.

This broke the build for me and on CI:
/home/jenkins/sources/plasma-framework/kf5-qt5/src/declarativeimports/core/datamodel.cpp:214:9:
error: 'LOG_PLASMACORE' was not declared in this scope

CCMAIL:notmart@gmail.com
2016-10-19 03:16:16 +09:00
Marco Martin
acd7ab7815 port all output to QCDebug/QCWarning
port every terminal output to appropriate QCdebug/QCwarning,
each different binary has its own logging category now, so
it's possible to enable/disable them selectively.
this should also make plasmashell a bit more quiet on
terminal by default

Change-Id: Ic0b26364f988935e990c6988f8f9375b7c9bf838
REVIEW:129210
2016-10-17 18:18:04 +02:00
David Edmundson
7d0b381061 Fix cannot assign undefined to double warning in DayDelegate
REVIEW: 128765
2016-08-26 12:14:26 +01:00
Kai Uwe Broulik
97a3611c16 [Calendar DaysModel] Don't call layoutChanged() and emit dataChanged() with roles
LayoutChanged causes QML to destroy all delegates and re-create them.
Since the number of days doesn't change but only the numbers, we can just call dataChanged on all roles.

Furthermore, when agenda-related data changes, only the containsEventItems role
might have changed, so only emit a change for it.

CHANGELOG: Performance when changing months in the calendar has been greatly improved

REVIEW: 128648
2016-08-14 11:48:11 +02:00
Kai Uwe Broulik
f24fd0caff [Calendar] Flip arrow buttons on right-to-left languages
This ensures the arrows always point outward, away from the centre button.

REVIEW: 128327
2016-06-30 12:28:09 +02:00
Daniel Vrátil
93905e8c68 DaysModel: reset m_agendaNeedsUpdate when plugin sends new events
Only reset if there's an event for current date. Without that when
the applet tries to get the updated list of events and it gets the
old one (empty) due to the check at the beginning of  eventsForDate().
2016-05-30 01:17:18 +02:00
Martin Klapetek
18af870303 [calendar] Only show the events mark on days grid, not month or year 2016-05-02 19:51:20 -04:00
Martin Klapetek
08312b2e34 [calendar] Add a mark to days containing an event
REVIEW: 127586
2016-04-20 23:41:23 -04:00
Martin Klapetek
cff18c2cd2 [calendar] Fix calendar applet not clearing selection when hiding
This removes some old cruft that is not really used and serves
basically only as a bool property for checking if it's null and
wheter it equals the last activated date.

This can be done without it by simply resetting the current selected
date (another property) to "today".

REVIEW: 127455
BUG: 360683
2016-03-30 22:53:49 -04:00
David Rosca
aaa85f3f98 DaysModel: Make update a slot
update is invoked with QMetaMethod, so it must be a slot

Reviewed-by: kbroulik
2016-03-10 16:26:34 +01:00