Commit Graph

1214 Commits

Author SHA1 Message Date
Marco Martin
b2786508e1 hardcode padding of scrollview style to 0
due to the frame borders behavior in the plasma style,
we need style padding to be zero. this fixes
scrollbars appearing when they shouldn't
2017-02-07 15:45:37 +01:00
Roman Gilg
eb39b35141 [ScrollViewStyle] Evaluate frameVisible property
ScrollArea has a property for en/disabling the frame provided by its style.
Until now the property wasn't evaluated, which besides making it impossible
to deactivate the frame leads to visual artifacts (observed in Simple Menu:
Flashing frame at the bottom of the page list).

In order to not change the current implementations we additionally set the
value in ScrollArea to true.

Reviewed By: mart

Subscribers: broulik, hein, plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D4473
2017-02-07 14:13:21 +01:00
Marco Martin
d8a1a9eb08 don't regenerate frames when setting every property
Summary:
give frameSvg the concept of repaintBlocked(), that enables and
disables the regeneration of the frame data when a property is set.
the use case is when often, a lot of properties are set one after
the other (such as prefix, enabled borders, size)
collapse the formely similar, but a bit different logic of frame
regeneration is a single function for better maintanability.
QML FrameSvgItem sets repaintblocked when it starts and releases it just on oncomponentCompleted

Test Plan:
plasmashell still starts, autotests still work, all frames are rendered correctly
the destruction of old frames is cutted by 50%. in the qml profiler
the creation time of a framesvgitem slightly improved, on this machine from around 26 msecs to around 21, can still be improved, but at least the code is a bit simpler

Reviewers: #plasma

Subscribers: davidedmundson, plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D4414
2017-02-07 13:08:27 +01:00
Kai Uwe Broulik
c21ff749e6 [Button Styles] Use Layout.fillHeight instead of parent.height in a Layout
This fixes the label not being vertically centered if the button is smaller than its implicit height.
This can happen with the global menu applet in a narrow panel.

BUG: 375911

Differential Revision: https://phabricator.kde.org/D4436
2017-02-06 15:20:08 +01:00
David Edmundson
8d60a8f1f5 Use texture atlas for static icon item
Summary:
Icon's are generally small, they may as well go in the existing shared
texture atlas, save some memory and it means more items can be batched
whilst rendering.

The textures used during animation are unchanged for now as it also
requires changing FadingNode's shader.

Test Plan:
Ran plasma.
We use atlas's in frame/SVGItem already so it should be fine.

Reviewers: #plasma, mart

Reviewed By: mart

Subscribers: mart, plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D4342
2017-01-30 10:24:33 +00:00
Kai Uwe Broulik
ceeb57d17f [PlasmaComponents Menu] Add maximumWidth property
This allows to limit the maximum width of a menu. It can be useful for instance
in task manager where long file names for recent documents will result in gigantic menus.

The property has a RESET method (which is called if you assign "undefined") which will
set it back to QWIDGETSIZE_MAX to remove the size restriction.

Differential Revision: https://phabricator.kde.org/D4257
2017-01-25 18:02:33 +01:00
Aleix Pol
54e87fe879 Make sure we display enabled ListItem on hover
Summary:
I just realized there was a weird workaround in plasma-nm where it gets
checked so it's shown.
Properly use the declarative API instead of listening to a ton of signals.

Test Plan: Tested with plasma-nm and org.kde.plasma.notifications plasmoids

Reviewers: #plasma, mart

Reviewed By: mart

Subscribers: mart, davidedmundson, plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D4214
2017-01-24 15:47:07 +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
David Edmundson
17830b10f8 Remove excessive debug in CommonDialog 2017-01-19 02:29:57 +00:00
Eike Hein
593f8183dd Set wrapMode to Text.WrapAnywhere.
Summary:
Means long main texts don't get truncated. One of the main uses
for tooltips is to show full text for things that are truncated
in the usual UI, so this is a bad default.

BUG:375141

Reviewers: #plasma, mart

Subscribers: plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D4189
2017-01-19 00:55:48 +09:00
Marco Martin
859dcc1403 use PlasmaCore.ColorScope for text as the rest 2017-01-18 15:04:08 +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
David Edmundson
66ebf2c84f Part Revert "[Units] Make iconSizes property constant"
Summary:
Though we can make the property constant, some applications still use the
signal (for example FolderView.qml) to know that one of the icons has
changed sizes and do some processing.

Whilst it would be possible to fix folderview, we should avoid public
API changes.

Reviewers: #plasma, #frameworks

Subscribers: plasma-devel

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D4092
2017-01-12 11:51:17 +00:00
Marco Martin
31cd81ca53 use the highlight color for selected text
plasma theme highlight color comes from the text selection
background kcoloscheme, so that's the one coherent with qwidget
based apps

BUG:374140
2017-01-11 18:41:41 +01:00
Kai Uwe Broulik
0a7ae2ce97 [Icon Item] Round size we want to load a pixmap in
QML sizes can be fractional. In case we're asked to load a 31.5 px pixmap it would truncate
it to 31 and then round down to 22 causing a blurry result. Instead, round the size.

Differential Revision: https://phabricator.kde.org/D4040
2017-01-11 10:34:35 +01:00
Marco Martin
12a4709b6c portait prop is not relevant when there is no text
this fixes a binding loop on this property
when there is no label

BUG:374815
Change-Id: I71616a6c86cd4acdaff47f141ed5c676358db496
2017-01-09 16:29:32 +01:00
Bhushan Shah
780be6f4ce Fix the renderType properties for various components
To use isMobile one need to import the QtQuickControls as well in
addition to QtQuickControls.Private

This fixes the warning flood at runtime

CCMAIL: faure@kde.org

I think p-f 5.30.0 tars need to be re-done with this.
2017-01-09 14:50:06 +05:30
Kai Uwe Broulik
a0119858e4 [ToolTipDialog] Use KWindowSystem::isPlatformX11() which is cached
I think it's wrong to set the flags for *every* event() but at least avoid the
string comparison Qt does internally in QX11Info::isPlatformX11()
Also, removes the need for an ifdef.

Differential Revision: https://phabricator.kde.org/D4019
2017-01-08 18:11:14 +01:00
Kai Uwe Broulik
8875a04a1b [Icon Item] Fix updating implicit size when icon sizes change
The old code was connecting the KIconLoader signal to implicitWidth/HeightChanged
but never actually set a new implicit size.
Also, while at it use "setImplicitSize" - it's also marked internal but public
like setSize and uses qreal instead of QSizeF.

Differential Revision: https://phabricator.kde.org/D4011
2017-01-08 16:16:59 +01:00
Kai Uwe Broulik
4479fdab7f [Units] Make iconSizes property constant
It's not the property that changes (we don't assign a new QQmlPropertyMap) but
the properties within and it's already smart enough to signal this.

Differential Revision: https://phabricator.kde.org/D4013
2017-01-08 16:02:56 +01:00
Kai Uwe Broulik
56773014e1 Introduce Units singleton
Every single (Frame)SvgItem would creates its own Units instance which in turn would
create a property map for icon sizes and lots of other stuff. Avoid this.

CHANGELOG: There is now a global "Units" instance reducing memory consumption and creation time of SVG items

Differential Revision: https://phabricator.kde.org/D4012
2017-01-08 16:00:20 +01:00
Kai Uwe Broulik
d46a91ea57 [Icon Item] Support non-square icons
BUG: 355592

Differential Revision: https://phabricator.kde.org/D3892
2017-01-05 15:15:14 +01:00
Montel Laurent
39adcec588 Add missing Q_dECL_OVERRIDE 2017-01-03 09:13:39 +01:00
Kai Uwe Broulik
8675a31d2a [Plasma ScrollViewStyle] Show scroll bar background only on hover
This makes it consistent with the Breeze widget style.
The other themes (Air and Oxygen) didn't even have a scroll bar background.

Differential Revision: https://phabricator.kde.org/D3828
2016-12-31 13:42:27 +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
Bhushan Shah
324232a745 [declarativeimports] Use QtRendering on phone devices
Summary: Ref T4947

Test Plan: works on desktop at least, haven't tested on phone yet

Reviewers: #plasma, mart

Reviewed By: mart

Subscribers: plasma-devel

Tags: #plasma

Maniphest Tasks: T4947

Differential Revision: https://phabricator.kde.org/D3789
2016-12-23 16:37:16 +05:30
Anthony Fieroni
d46a7f39ee [WindowThumbnail] Update thumbnail content
REVIEW: 129669

Signed-off-by: Anthony Fieroni <bvbfan@abv.bg>
2016-12-19 19:28:12 +02:00
Kai Uwe Broulik
a7ccca25ba [TextField] Allow disabling reveal password button through KIOSK restriction
This introduces a new lineedit_reveal_password restriction (similar to lineedit_text_completion)
that disables the reveal password button on Plasma text fields, like the lock screen and WiFi password inputs.

Differential Revision: https://phabricator.kde.org/D3654
2016-12-19 14:20:33 +01:00
Eike Hein
db15022686 Fix logic for arrow handling in RTL locales.
Summary: BUG:373749

Reviewers: #plasma, mart

Subscribers: plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D3718
2016-12-18 08:32:27 +09:00
David Rosca
d1f4b5322a TextFieldStyle: Fix implicitHeight value so the text cursor is centered
This makes the TextField slightly bigger, but cursor is now correctly centered.

REVIEW: 129603
2016-12-14 16:44:08 +01:00
Marco Martin
783f26e628 don't flip tabbar layout if vertical
when the tabbar is vertical, on rtl layout the tabs order should
stay as is, as is rtl, not bottom-to-top

Change-Id: Ia5f1722d5e327207cf584a997dc8073c595c905b
REVIEW:129521
2016-11-21 17:27:17 +01:00
David Edmundson
e615d15a4e Don't redeclare signal (and then not use it)
Fixes runtime warning

REVIEW: 129321
2016-11-07 12:45:07 +00:00
David Faure
a940089a8f Fix crash when no QApplication is available.
This happens when QtCreator launches qmlplugindump.
Testcase: qmlplugindump -nonrelocatable org.kde.analitza 1.1
or qmlplugindump -nonrelocatable org.kde.okular 2.0

REVIEW: 128767
2016-10-30 12:31:25 +01:00
Eike Hein
91eb0749ed Revert "port all output to QCDebug/QCWarning"
This reverts commit acd7ab7815.

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
Alberto Curro
f82d76eb2b Fixes for building plasma-framework with Qt 5.5
REVIEW: 129203
REVIEW: 129065
2016-10-17 16:46:41 +01:00
Kai Uwe Broulik
b115ea1c55 [ToolButtonStyle] Fix menu arrow
This fixes the size of the icon as well as its color group.

REVIEW: 128870
2016-09-28 12:31:36 +02:00
David Rosca
1369bca36f Add removeMenuItem to PlasmaComponents.ContextMenu
REVIEW: 128999
2016-09-26 17:54:45 +02:00
Mihail Ivchenko
edf0d68ea5 [WindowThumbnail] Discard pixmap on map events.
According to [X.org
docs](http://www.x.org/releases/X11R7.7/doc/compositeproto/compositeproto.txt)
regarding NameWindowPixmap:

"This pixmap will remain allocated until freed, even if 'window' is
unmapped, reconfigured or destroyed. However, 'window' will get a new
pixmap allocated each time it is mapped or resized, so this request will
need to be reinvoked"

So, pixmap needs to be discarded not only on XCB_CONFIGURE_NOTIFY event
but on XCB_MAP_NOTIFY event also.
2016-09-22 21:29:42 +01:00
David Edmundson
8e517b1578 WindowThumbnail: Do GL calls in the correct thread
WindowThumbnail did some open GL operations, discarding old textures, in
the GUI thread. Whislt it's not going to cause a threading issue (as
updatePaintNode always ran when the main thread was blocked) we're not
meant to mix threads with openGL contexts.

It also seems to have a GL leak on nvidia, which was previously masked
by the double delete fixed in
https://git.reviewboard.kde.org/r/126131/diff/2/
It seems only one worked, and in the applied version we went with the
wrong one.

This patch makes use of QQuickItem::releaseResources to delete the GL
textures on window change and destructor; it's then removed from
stopRedirecting so that start/stop redirecting handles xcb on the GUI
thread and updatePaintNode/discardPixmap is the GL stuff on the render
thread.

See http://doc.qt.io/qt-5/qquickitem.html#graphics-resource-handling

REVIEW: 128763
BUG: 368066
2016-09-03 10:33:44 +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
3f17e32a92 [PlasmaComponents TextField] Don't bother loading icons for unused buttons
We kept loading the clear button and reveal password icons even when that option was
disabled and the buttons never visible.

REVIEW: 128753
2016-08-25 22:59:46 +02:00
David Edmundson
98cfdf6b45 Don't redeclare property implicitHeight 2016-08-18 12:06:20 +01:00
David Edmundson
cb9ec94625 Add an optional reveal password button to TextField
Similar to KPasswordWidget in kwidgetaddons

Also fixes:
- the clear button still being clickable when not enabled
- RTL icons
- Updating the right margin correctly

REVIEW: 128660
2016-08-15 14:34:15 +01:00
Kai Uwe Broulik
a60f703e09 [DefaultToolTip] Enable LayoutMirroring
This flips the tooltip when using right-to-left languages

CHANGELOG: The standard tooltips are now mirrored when in a right-to-left language

REVIEW: 128662
2016-08-15 13:04:09 +02: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
David Edmundson
45a2f5a828 Don't delete gl texture twice in thumbnail
The QSGTextures are created with

window()->createTextureFromId(m_texture, QSize(w,h),
QuickWindow::TextureOwnsGLTexture));

this means we don't want to be deleting textures ourselves too, it will
be deleted when we delete the QSGTexture, which is a scoped pointer
inside our QSGNode.

BUG: 355644
BUG: 365946
REVIEW: 126131
2016-08-09 09:37:01 +01:00
David Edmundson
812340ea2f If we pass a QIcon as an argument to IconItem::Source, use it
Currently the code gets the icon name from the QIcon and tries to do
some Plasma theming with it.
However if that fails it then loads the QIcon::fromTheme again.

This is pointless in most cases and will break any icons that have a
custom loader (all SNIs)

REVIEW: 128580
2016-08-03 12:05:30 +01:00
Chinmoy Ranjan Pradhan
0abc67a99f Add overlay support to Plasma IconItem.
By default Plasma IconItem renders the icon without an overlay even when an overlay is required.
This fixes this.

REVIEW:128573
2016-08-02 22:09:51 +05:30
Kai Uwe Broulik
42193ae631 [TextField] Bind to TextField length instead of text
Copying strings in QML is expensive.

REVIEW: 128550
2016-07-29 15:41:40 +02:00
Kai Uwe Broulik
16f8257068 [Button Styles] Horizontally center in icon-only mode
QtQuick.Layouts by default left aligns content and because the Layout is
anchors.fill'd the icon would show off-center in a button when no text has been set.
This fixes this.

REVIEW: 128493
BUG: 365947
2016-07-26 14:09:03 +02:00
David Edmundson
3f53070185 Q_INVOKABLE needs to be outside the /// @cond INTERNAL_DOCS 2016-07-20 12:05:12 -03:00
David Rosca
9070f461bb IconItem: Use better approach to disable animation when going from invisible to visible
Clearing the pixmap is actually wrong, because in some cases the
IconItem::updatePolish() is not called when changing visibility.

REVIEW: 128409
2016-07-12 10:02:47 +02:00
Martin Gräßlin
7f3aa5344a Set Tooltip window type on ToolTipDialog through KWindowSystem API
In order to have support for tooltip window type in Wayland, the
window type NET::Tooltip is also set through KWindowSystem API once
the platform surface is created.

REVIEW: 128300
2016-07-05 08:08:06 +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
Marco Martin
82222a3ecf fix build
return bool
2016-06-15 16:22:45 +02:00
Marco Martin
9fba7c43c5 disable taskbar thumbnails with llvmpipe
the llvmpipe driver doesn't have a good quality enough for the
taskbar thumbnails components, it will have many crashes in the driver.
disabale thumbnails with that driver, as kwin disables many effects as well.

BUG:363371
2016-06-15 16:01:50 +02:00
Eike Hein
1706b75272 Less debug noise. 2016-06-13 18:38:50 +09:00
David Edmundson
f5ad210742 Fix check to keep QMenu on screen for multiscreen layouts
If x > screenWidth should be if x > screenLeft + screenWidth

otherwise all right hand screens get offset

REVIEW: 128148
2016-06-10 11:57:32 +01: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
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
Anthony Fieroni
3530cc39d0 [icon thumbnail] Request for preferred icon size
REVIEW: 127826

CCBUG: 362324

Signed-off-by: Anthony Fieroni <bvbfan@abv.bg>
2016-05-20 18:59:23 +03:00
Kai Uwe Broulik
f78685389a [QuickTheme] Fix properties
Some properties were duplicated (yay moc for not shouting at us), some were
accessing the wrong getter and some were missing.

REVIEW: 127889
2016-05-10 19:16:28 +02:00
Marco Martin
f0c119696d highlight/highlightedText from proper color group
lately the highlight color of plasma became a very
washed-out blue, (since it switched to use the
global system colors) that was because it actually
taken the highlight color (and highlightedText)
from the wrong source.
there is a correct color group in kcolorscheme for
that, that is Selection, take those two colors
from that (also means highlight and highlightedtext
always be the same in all plasma::theme::colorgroups
but that's not a problem)

update test to reflect that

REVIEW:127842
2016-05-05 12:22:44 +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
Allen Winter
f1844014dd declarativeimports/core/windowthumbnail.h - fix -Wreorder warning 2016-05-01 16:02:46 -04:00
Martin Klapetek
08312b2e34 [calendar] Add a mark to days containing an event
REVIEW: 127586
2016-04-20 23:41:23 -04:00
Marco Martin
1cf145861b add Positive, Neutral, Negative text colors
add named colors for positive (usually green)
neutral(usually yellow) negative(usually red)
foreground objects, such as text or parts of
svg icons/themes

REVIEW:127696
Change-Id: I646306339f1684cdc062da3d3af1489af6092372
2016-04-20 18:25:50 +02:00
David Rosca
7944fc1d6f ScrollArea: Fix warning when contentItem is not Flickable
REVIEW: 127652
2016-04-15 10:08:43 +02:00
Eike Hein
9bd7e4ce5f Add a prop and method for aligning the menu against a corner of its visual parent.
REVIEW:127646
2016-04-14 22:10:24 +09:00
Eike Hein
17cea8059e Allow setting minimum width on Menu.
REVIEW:127648
2016-04-14 04:21:41 +09:00
Eike Hein
ec16c57e3c Maintain order in stored item list.
Reviewed-by: notmart@gmail.com
2016-04-14 01:38:12 +09:00
Eike Hein
70301e21b9 Extend API to allow (re)positioning menu items during procedural insert.
REVIEW:127645
2016-04-14 01:17:37 +09:00
Marco Martin
553a9bfe53 bind highlightedText color in Plasma::Theme
we have a color in the Plasma theme "highlight" that is basically
an accent color used around.. but one of the uses is to use it as
a background, such as highlighted text. in that case we don't know
what color would be safe for contrasting on top of it for things
like the highlighted text color (plasma style used the background
color for that, which is incorrect)

REVIEW:127637
2016-04-13 12:28:53 +02:00
David Rosca
b3076a410c SortFilterModel: Invalidate filter when changing filter callback
Model is now correctly filtered when setting filter callback.

REVIEW: 127588
2016-04-06 11:02:51 +02: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
Kai Uwe Broulik
92e2c07adf [Fading Node] Don't mix opacity separately
This breaks icon item fading when its opacity is smaller than 1 as can be observed
in the "Leave" dialog.

BUG: 355894
REVIEW: 127427
2016-03-20 11:33:07 +01:00
David Rosca
fd46322300 IconItem: Schedule pixmap update when window changes
QQuickItem::polish is not called when window changes.

Regression from 344d04e230

REVIEW: 127342
2016-03-12 13:01:07 +01:00
David Rosca
46a1181587 IconItem: Animate active and enabled change even with animations disabled
animated: false should disable only animation when changing source,
we still want the hover and enabled animations.
Also fix docs.

REVIEW: 127302
2016-03-11 14:10:59 +01: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
Kai Uwe Broulik
344d04e230 [Icon Item] Don't animate from previous pixmap when it has been invisible
We have a lot of reusable singletons that are just hidden when not needed, such
as the OSD. IconItem, however, will always fade from the previous state, even if
the previous action happened minutes ago.

This fixes for example changing the volume and then later changing the brightness
where you could see the OSD animating from the volume icon.

REVIEW: 122859
2016-03-10 13:01:29 +01:00
Kai Uwe Broulik
3b115e6d90 [Icon Item] Don't call loadPixmap in setColorGroup
Changing the color group of an Svg emits repaintNeeded which will then
cause it to schedule a pixmap update anyway. Includes a unittest.

REVIEW: 127313
2016-03-10 12:58:18 +01:00
David Rosca
d405378219 Remove QtScript dependency
It's not used anywhere.

REVIEW: 127312
2016-03-09 11:29:50 +01:00
David Rosca
978b8b3b87 IconItem: Don't overwrite source when using QIcon::name()
source should always return the same value as it was assigned.
Also removed duplicated code (empty sourceString is now handled
as if the source couldn't be converted to any type).

REVIEW: 127282
2016-03-04 23:44:57 +01:00
David Edmundson
1b21758570 Remove effectively duplicate code path for handling QPixmaps
IconItem handled both QOixmaps and QImages as a source.

QVariant(somePixmap).canConvert<QImage>() returns true so one of the
two code paths isn't executed. Given converting between the two is
practically free, we don't need two code paths.

REVIEW: 127270
2016-03-04 00:20:56 +00:00
David Edmundson
8c4f789b17 Docs for IconItem
REVIEW: 127268
2016-03-04 00:20:02 +00:00
David Rosca
30368e1d45 IconItem: Fix changing color of svg icons loaded from icon theme
Connect to repaintNeeded when creating Plasma::Svg.

REVIEW: 127207
2016-02-29 22:28:58 +01:00
Weng Xuetian
066cf0a0d7 Fix svg iconPath resolving in IconItem
This fixes iconPath is not correctly set when its size changes.

REVIEW: 127201
2016-02-29 13:05:48 -08:00
Aleix Pol
06c7b9c050 Remove some warnings
Unused variables
Unused code
Unused arguments
Unnecessarily complex code
Initialization order
Duplicated properties

REVIEW: 127214
2016-02-29 00:59:44 +01:00
Aleix Pol
9f62532674 Fix most of Clazy warnings in plasma-framework
REVIEW: 126672
2016-02-29 00:13:41 +01:00
David Rosca
526915895b Add autotests for IconItem
Add some tests for IconItem.
Also found one issue in animation when quickly changing source, first frame
will be rendered with wrong icon.

REVIEW: 127103
2016-02-27 21:24:45 +01:00
Marco Martin
d524d96a25 using the margins of the flickable item is wrong
the clip will be at ScrollView, not at flickable level
2016-02-24 12:52:24 +01:00
David Edmundson
73aa13b26d fix uninitialised var
Valgrind pointed this out whilst debugging something else.

REVIEW: 127079
2016-02-23 13:05:10 +00:00
David Rosca
fca765bc05 ToolTip: Prevent multiple geometry changes while changing contents
Unset mainItem and set it back only after changing of tooltip contents
is completed. This improves behavior of morphingpopups effect (popups
animates from/to incorrect values).

REVIEW: 127118
2016-02-21 15:06:44 +01:00
David Rosca
596fa082dd SvgItem: Don't use Plasma::Theme from rendering thread
Logic is similar to IconItem - rendered image is updated
in updatePolish().

REVIEW: 127115
2016-02-19 18:16:30 +01:00
Kai Uwe Broulik
eccf7cf0b2 [ToolTip] Stop show timer if hideTooltip is called
This prevents the tooltip from showing up if hideTooltip was called
before it was shown.

BUG: 358894

Differential Revision: https://phabricator.kde.org/D959
2016-02-18 21:58:35 +01:00
Aleix Pol
978529d175 Remove unused variable
Reviewed by Marco Martin
2016-02-18 17:03:49 +01:00
David Rosca
1f98734dd3 Disable animation of icons in plasma tooltips
Tooltips are now animated with KWin effect.

REVIEW: 126653
2016-02-17 18:40:14 +01:00
Marco Martin
ce9751cb35 drop animations from tooltips
tooltips are now animated by a KWin effect, don't try
to animate own X11 positions, that's quite dangerous

Change-Id: I08ef2bc23ec1ef7cb7c432ba1bf6d9c5b0a0ab01
2016-02-17 17:16:02 +01:00
Dan Vrátil
525bf2d377 Fix IconItem not loading non-theme icons with name
Commit 5184ac introduced a small regression that caused IconItem
to no longer load non-theme icons with name set, for instance icons
coming from sni-qt, causing sni-qt apps to not show in systray.

BUG: 359388
FIXED-IN: 5.20
REVIEW: 127091
2016-02-16 21:16:01 +01:00
David Rosca
1e196fdfb2 WindowThumbnail: Discard glx pixmap in stopRedirecting()
BUG: 357895
FIXED-IN: 5.20
REVIEW: 127072
2016-02-15 19:05:26 +01:00
Kai Uwe Broulik
3c03c950d6 [ToolButtonStyle] Don't rely on an outside ID
If you use Plasma's ToolButtonStyle with different controls than the PlasmaComponents.ToolButton it prints a warning about an ID that does not exist.

Use "control" instead which is guaranteed to be the item.
2016-02-09 11:03:59 +01:00
Kai Uwe Broulik
4ebf130ee6 [Calendar] Add proper back/forward buttons and a "Today" button
This removes the custom label-based triangles and replaces them with proper ToolButtons
using proper icons. It also adds a "Today" button to return to the current day.
The tooltips on the buttons reflect the actual action ("Previous Month", "Previous Year",
"Previous Decade", depending on the zoom level).

Furthermore, the day names and week numbers now use the regular font size but they're still
visually disconnected. The day names row is hidden in the zoom levels now.

REVIEW: 126960
BUG: 336124
BUG: 348362
BUG: 358536
2016-02-08 00:07:43 +01:00
Marco Martin
8c6f95f2ea add a property separatorVisible
REVIEWED-BY: Kai Uwe Broulik
2016-02-05 16:51:38 +01:00
David Rosca
83cec13edb IconItem: Add usesPlasmaTheme property
Add usesPlasmaTheme (enabled by default) property to make it possible
to disable using icons from Plasma theme.

REVIEW: 126814
2016-01-20 11:28:56 +01:00
David Rosca
5184ac94c9 IconItem: Try to load QIcon::fromTheme icons as svg
When showing QIcons in IconItem, it would ignore stylesheet colors.
This tries to load QIcons created with QIcon::fromTheme as svg, by using
the icon name returned from QIcon::name.

REVIEW: 126792
CCBUG: 353358
2016-01-19 10:14:49 +01:00
Kai Uwe Broulik
d9719f1037 [Units] Return at least 1ms for durations
Animators do not reliably work with a duration of 0 as can be seen in the linked bug report.

Upstream bug report: QTBUG-39766

BUG: 357532
REVIEW: 126652
2016-01-17 12:59:30 +01:00
Marco Martin
225efd7e71 attached properties have parent, not parentItem
attached properties never, ever are in a scene
even if they are qquickitems it may cause big rendering
problems
2016-01-14 15:12:20 +01:00
Kai Uwe Broulik
bbf295cdfa [PlasmaCore DataModel] Don't reset model when a source is removed
REVIEW: 126687
2016-01-11 18:00:43 +01:00
Marco Martin
5b79da30f0 support simple QObjects too
support ColorScope in Svg as well (that's not a QQuickItem)
2016-01-08 16:11:19 +01:00
Marco Martin
5911ad2920 keep track of the context parents
keep internally a pointer (important that is *not* a smart pointer)
to the item the context has been created for.
on context deletion, remove the copy from the static bookeeping hash
this solves two related crashes: an infinite recursion
and a connection to a deleted object
2016-01-08 13:38:06 +01:00
Marco Martin
dc1bfc3de1 same enabled borders between toolbutton and shadow
Change-Id: I6180121b32755f6f0ee391f8399b3a7cce55d14e
2016-01-07 12:56:56 +01:00
Marco Martin
e565c5c225 rework ColorScope
Since some time PlasmaCore had the very useful ColorScope class,
which can semi-automatically make children take colors of the
View, Button or Complementary color groups.
Unfortunately it didn't support dynamic reparenting, giving
wrong colors in some cases (see black on black battery on the phone)

even tough is a bit complicated, now by cascading signals down the
children tree, support on the fly apply of the new context upon
reparenting.

also add a manual test case showing text, rectangles and icons
dynamically changing color as they get moved from one scope
to the other

REVIEW:126654
Change-Id: I3d746b73eac55a359c4706fb719b4d5018677fb5
2016-01-07 11:06:40 +01:00
David Rosca
e4ea8d55b7 IconItem: Add animated property
Add property animated, that allows to disable cross-fade animation when
changing icon (enabled by default).

REVIEW: 126637
2016-01-06 20:21:15 +01:00
Kai Uwe Broulik
6353e0e7bf Remove obsolete comments 2016-01-05 18:57:00 +01:00
Kai Uwe Broulik
073e7ec7ae [Unity] Scale Desktop icon size
Given with Qt high-dpi support manually adjusting the icon sizes to fit is mostly
obsolete because applications will do that nowadays - we should do the same.

REVIEW: 126641
2016-01-05 18:40:56 +01:00
Marco Martin
c532ca8ff7 paintedWidth/paintedheight for IconItem
export the actual painted icon size of the icon item
REVIEW:126625

Change-Id: Ifa6667fdb9e3f7ee675b2c36628eae2ea5394a35
2016-01-04 18:20:38 +01:00
Kai Uwe Broulik
81a03ef291 [ToolButtonStyle] Always indicate activeFocus
Even when flat we should indicate that a ToolButton has focus.
This makes keyboard navigation substantially less awkward.

CHANGLOG: Improved visibility of keyboard focus on buttons

REVIEW: 126567
2015-12-29 23:42:23 +01:00
Marco Martin
3f56e63e70 use the new KDEPackageAppTemplates ECM module
REVIEW:126557
Change-Id: Ie32644a0641d1f0d5299ba9d1b0053e3f37d2635
2015-12-29 15:41:35 +01:00
Eike Hein
fa0030a9ac Always check both before redirecting. 2015-12-22 20:36:10 +01:00
Eike Hein
c64a94a265 Stop redirecting windows when item is disabled or hidden.
Concretely fixes Task Manager tooltips slowing down app rendering even
after the tooltip is hidden.

REVIEW:126475
BUG:356938
2015-12-22 19:26:15 +01:00
Eike Hein
9dcb6e5d52 Oops. Drop timer member. 2015-12-22 18:42:17 +01:00
Eike Hein
706276d108 Stop relying on timer to schedule pixmap updates.
The timer was used to skip ahead of parsing and to compress prop
updates to handle width/height changes atomically. This achieves
both by moving pixmap load into the polish phase after those are
guaranteed to be done.

This fixes a bunch of flicker all over the place since 150ms is
obviously far beyond the frame time budget on 60 hz, but we can
usually easily fit into one frame on hot caches.
2015-12-22 18:39:53 +01:00
Eike Hein
283ab4a634 Fix element ids for east orientation. 2015-12-22 05:04:01 +01:00
Kai Uwe Broulik
9b48e3d010 [Window Thumbnails] Don't crash if Composite is disabled
We were checking for Composite at compile-time but not at runtime causing a crash
when Composite has explicitly been disable in which case Damage might still be availab.e

REVIEW: 126296
2015-12-13 20:25:20 +01:00
Martin Klapetek
e33b486be6 [calendar] Delay the model reset until the view is ready
Otherwise things will crash.

Reviewed-by: Eike Hein
BUG: 355943
2015-12-02 12:57:57 -05:00
Nick Shaforostoff
c7c2980f14 qstring optimizations
REVIEW: 126148
2015-11-27 20:03:48 +00:00
Kai Uwe Broulik
9ccc6293f7 [IconItem] Don't crash on null KIconLoader theme
REVIEW: 126168
BUG: 355577
FIXED-IN: 5.17
2015-11-25 18:17:57 +01:00
Marco Martin
a9d3d9a81a make event filters static to decrease installed filters on qApp
since seems there are so many event filters installed
on the QApplication installed that may give performanc
 issues, try to use separate, singleton watchers for them
to decrease the amount of eventfilters called

REVIEW:126113
2015-11-20 14:26:16 +01:00
Martin Klapetek
6f3fed77d5 [calendar] Use ui language for getting the month name
Simple QDate::longMonthName(..) won't do the job as it
will return the month name using LC_DATE locale which is used
for date formatting etc. So for example, in en_US locale
and cs_CZ LC_DATE, it would return Czech month names while
it should return English ones. So here we force the first ui
language locale and take the month name from that.

BUG: 353715
REVIEW: 125705
2015-11-18 12:38:08 -05:00
Martin Klapetek
e571628b18 [calendar] Sort the events by their type too
The QML sectioning code does not actually sort the model, this needs to
be done beforehand. This should now sort the events by their type and
their start datetime
2015-11-18 12:38:08 -05:00
Marco Martin
ee9e5907cf allow paste on password fields
but don't allow to copy, select or cut
2015-11-18 18:22:46 +01:00
Marco Martin
8e0c244482 fix positioning of edit menu, add a button to select
don't show edit menu for passwords
2015-11-18 16:59:42 +01:00
Martin Klapetek
c84e591b96 [calendar] Use correct plugin IID for filtering
With moving the plugin to KDeclarative, the namespace got changed but it
was forgotten to change the plugins filter
2015-11-17 19:04:08 -05:00
Martin Klapetek
e757ebb483 [calendar] Add missing item id 2015-11-17 17:45:49 -05:00
Martin Klapetek
f746db2878 [calendar] Fix some missing properties and property settings 2015-11-17 17:44:01 -05:00
Marco Martin
258242fffd fix tickmarks in vertical mode 2015-11-17 17:52:21 +01:00
Marco Martin
91ad79a553 better disabled look 2015-11-17 17:52:21 +01:00
Martin Klapetek
520837a07c [calendar] Move the plugin library to KDeclarative
Marco is not happy with the plugin being here and having a Plasma
namespace, so after some discussion it was decided to move it to
KDeclarative and change to CalendarEvents namespace.
2015-11-16 14:26:26 -05:00
Martin Klapetek
c507c744ca [calendar] Fix build 2015-11-16 12:22:34 -05:00
Martin Klapetek
f9d7fc87d5 [calendar] Fix binding loops 2015-11-16 11:52:55 -05:00
Martin Klapetek
b65195ee65 [calendar] qmlRegisterUncreatableType needs a bit more arguments 2015-11-16 11:52:17 -05:00
Martin Klapetek
d0d0a27bac [calendar] Move the plugins handling to a separate class
This is also made a QML singleton that will be used for the applet
config view where it will add the plugin configs once we add that
possibility.

The same instance is then set to the DaysModel from QML.

REVIEW: 125951
2015-11-16 11:49:02 -05:00
Martin Klapetek
fe0384f0d4 [calendar] Add plugin system for Calendar events
This adds a simple plugin interface that can be subclassed
and provide events integration with Plasma Calendar applet.

It's asynchronous and I've kept it deliberately simple.
For now the Calendar tells the plugins which date range
is being displayed, the plugins load the data and then
emit the dataReady() signal containing the events.

The events are stored in a multihash for quick access
by the Calendar's agenda part but also for overall
easy-to-use (eg. in teh model data()).

The event data is stored in EventData class, which has
a pretty self-explanatory members, except perhaps the
"isMinor" property. The intention with this is to support
namedays, where in some countries the calendars have
different name every day. This is just a minor holiday
and as such should not mark the calendar grid, otherwise
the whole grid would be in a different color.

Putting the interface here might raise the question of
depending on plasma-framework, but plugins provided by
KDE can go to plasma-workspace and other 3rd party ones
would just have to live with it. I don't think it will
be a problem but if it turns out it is, we can rethink
the placement.

REVIEW: 125817
CCBUG: 349676
CHANGELOG: Allow plugins to supply event data to Calendar applet
2015-11-16 11:46:26 -05:00
Marco Martin
c8b9b852ef check for slot existence before connecting or disconnecting
since this is a blind connect to a slot that may exist
or not exist, the new syntax can't be used, but check
for the slot existence before attempting a connection

BUG:354751
2015-11-11 11:07:46 +01:00
Martin Gräßlin
fae8384845 [declarativeimports/core] Specify HAVE_XCB_COMPOSITE in config-x11.h 2015-11-09 11:11:06 +01:00
Martin Gräßlin
286300ad35 Use newer cmake syntax for XCB dependencies 2015-11-09 11:11:06 +01:00