Commit Graph

1113 Commits

Author SHA1 Message Date
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