358 Commits

Author SHA1 Message Date
Vishesh Handa
18a6a7302b Merge branch 'master' into vhanda/dialogRefactor 2014-09-15 14:50:49 +02:00
David Edmundson
26620812a2 Don't include configmodel in doxygen
Change-Id: I7e4db3c81f4e67deec788932225026fc048fd128
2014-09-13 11:47:00 +02:00
David Edmundson
0b92063aff Add link to appletinterface documentation
Change-Id: I3a0bce2ec7ecc18c2efe9d5759eabd2c11a0acba
2014-09-12 13:53:00 +02:00
David Edmundson
13ddfd71e9 Sync documentation from wiki to dialog
Change-Id: I2c3f623ef3dce33025b3e6a6233a6f3da8dd2691
2014-09-12 13:05:23 +02:00
David Edmundson
98faacc5ef Add example to Dialog
Change-Id: I9adc43344ba13eb95038f1d5bffcef73ab93fa9e
2014-09-12 13:05:23 +02:00
David Edmundson
2c38364322 Add documentation on Applet/Containment Interface
Change-Id: I3dddb4d799fef98eb4370503ac8f1d20c6948b2d
2014-09-12 12:21:47 +02:00
Marco Martin
a54da78ce8 check for plugin validity 2014-09-01 18:17:22 +02:00
Vishesh Handa
012e002092 Dialog: Add accidentally removed Q_PRIVATE_SLOT 2014-08-29 14:35:47 +02:00
Sebastian Kügler
d8b2ef147f typo-- in comment 2014-08-28 23:30:29 +02:00
Vishesh Handa
f293888be6 Dialog: Avoid adjusting the geometry twice when with visualparent
We are in a strange cycle when we have a visual parent. In order to
obtain our position, we need to know our size. Our size depends on the
borders visible. The borders visible depend on the size.

When we do not have a visual parent this is not a problem as we do not
have a position where we are supposed to be.

In order to solve this cycle, when we have a visual parent, we typically
assume we have all borders, call popupPosition, move to that position
and then use that new position to figure out the borders, get the new
size (incase any borders have changed) and move again. This double
moving is not good. With that patch, we still do the same but we avoid
moving twice.
2014-08-28 18:25:03 +02:00
Vishesh Handa
e0ea93cb7e Dialog: Use the correct screen for repositioning when overflowing 2014-08-28 17:35:05 +02:00
Vishesh Handa
8a3f38511d Dialog: Set the correct popup position on layout width/height change
We seem to have cases where once the dialog is visible and the visible
event is over, then the width/height updates itself, so we need to
reposition the dialog appropriately.
2014-08-28 16:28:56 +02:00
Vishesh Handa
eb6ea04be7 Dialog: Dot not update layout width/height unlesss completed
The functions are often called a number of times before the
component is actually completed. There is no point of this.

Also added a function updateLayoutParameters which update all 4
of these in a more efficient manner. There is a certain amount
of code duplication between those 4 functions and this one, but
that can be fixed in another patch.
2014-08-28 16:15:26 +02:00
Vishesh Handa
4f622a5158 Dialog: Fix poisitioning and theme rendering
- updateTheme should always be called the frameSvgItem's size has been
  upated. It uses the geometry of the frameSvgItem. Also updated the
  documentation.

- When a dialog has a visualParent, setting the position of the dialog
  is slightly compilcated. In order to set the position we have to give
  the function popupPosition the size of the dialog so that it can
  determine where to place it, however the size of the dialog depends on
  the position as some of the borders are drawn depending on the
  position. We have a circular problem.

  For now we're solving this by tempoarily giving the full size with all
  the borders in the case when there is a visual parent.
2014-08-28 15:49:16 +02:00
Vishesh Handa
30174dd367 Dialog: Mark componentComplete as false on creation 2014-08-28 13:17:17 +02:00
Vishesh Handa
e3c1095d92 Dialog: Remove syncTimer
Remove the timer and call syncToMainItemSize directly whenever it used
to be called. We avoid the extra event loop this way. This probably
breaks somethings, but we can figure that out and add tests for that.
2014-08-27 18:16:24 +02:00
Vishesh Handa
9ddbd93855 Dialog: Remove syncMainItemToSize
The only place it is now used is when the window x/y position changes.
There is now a dedicated function to handle that.

This brings us one step closer to removing the entire sync timer
2014-08-27 18:16:24 +02:00
Vishesh Handa
67810adbf1 Dialog: Replace QWeakPointer with QPointer
This simplifies the code as we do not have to call .data() everywhere
2014-08-27 18:16:24 +02:00
Vishesh Handa
7fd87741de Dialog: Simplify handling of min/max width/height changed
When the minimumWidth/Height of the attached Layout of the mainItem
would change. The following events would happen -

- updateMinimumWidth is called
--> results in resizeEvent being called
--> results in syncMainItemToSize
--> results in slots connected to mainItem widthChanged
---> syncMainItemToSize + syncToMainItemSize being called a few more
times. It's not entirely apparent why at thist point.

This kind of logic is quite hard to follow and more importantly because
of the timers in the middle, an extra paint event is called. This means
the user can first see the window resize and then the item getting
resized.

This patch introduces a little bit of code duplication (can be fixed in
future commits) to clearly establish what updateMinimumWidth should be
doing -
* disconnect signals to make sure mainItem's widthChange is not triggered
* update window size + item size + borders
* reposition if required

The repositioning is useful as currently if a dialog becomes wider if
will not reposition itself and will overflow. With this patch we always
make sure the entire dialog is shown.

Minor Point: On testing without the patch the dialog does reposition
itself if it is not already overflowing. I suspect this is kwin moving
the window.

A test called dialog_minWidthHeighRepositioning.qml can be used to see
how the change occurs before and after.
2014-08-27 18:16:24 +02:00
Marco Martin
6a190670ba create the Layout attached object in init()
always create it and create it immediately.
this way it's possible for other c++ users to find it
2014-08-27 13:37:56 +02:00
Marco Martin
49bb894a21 use QUrl::fromLocalFile 2014-08-27 13:11:26 +02:00
Marco Martin
2a575c810d noise-- 2014-08-27 12:22:22 +02:00
Marco Martin
20906f6b0d allow the private imports relative to alloewdPath 2014-08-27 12:20:39 +02:00
Marco Martin
ccab23fccb the config view can load files from the applet pkg 2014-08-26 18:11:11 +02:00
Marco Martin
2b7d633687 Merge branch 'mart/DialogBackgroundHints'
REVIEW:119860
2014-08-22 16:56:08 +02:00
Jonathan Riddell
8596689f2c add version cmake file for PlasmaQuick
add version cmake file for PlasmaQuick
this allows Plasma Desktop to be able to set a required KF5 version

REVIEW:119881
2014-08-21 18:18:01 +02:00
Marco Martin
f74bf9a8b8 don't call updateTheme 2 times 2014-08-21 15:49:29 +02:00
Marco Martin
fcb8c85951 remove dead code 2014-08-21 15:47:37 +02:00
Marco Martin
e0fd14903c fix comment 2014-08-21 14:55:16 +02:00
Marco Martin
a135c4de7d correctly enable/disable shadow 2014-08-20 18:01:47 +02:00
Marco Martin
c7d16008d7 centralize theme enable/disable 2014-08-20 16:46:46 +02:00
Marco Martin
38bcec95b0 a simple way to enable/disable background 2014-08-20 16:33:38 +02:00
Marco Martin
6dcd361943 remoev the extra screenshot file definition 2014-08-15 18:12:59 +02:00
David Edmundson
5478c7e3c2 Add more missing @class and @short descriptors 2014-08-12 23:15:57 +02:00
Marco Martin
d5ef46d43d add file definition for colors 2014-08-11 17:54:45 +02:00
Marco Martin
0d3a814e20 Don't leak
we were creating new packagestructures on each package creation
and never deleting them, causing a pretty big leak.

now keep a single instance of the structures, with prototype packages.
members are static for binary compatibility.
i would go for max one bic change in this library that's when and if
this library will be made pubic.

Patch by Aaron Seigo
2014-08-08 14:04:46 +02:00
Marco Martin
5f1abfbbe3 add definition for a screenshot 2014-08-08 13:29:46 +02:00
Aaron Seigo
9ee252475f setRequired actually works now 2014-08-08 08:25:26 +02:00
Aleix Pol
d7a7a4fb83 Use Qt API for figuring out the dialog screen
At the moment it's trying to translate the item position and iterating
through all screens, but we can get the screen through the item's window.

REVIEW: 119603
2014-08-05 19:48:28 +02:00
Marco Martin
11311f61e9 treat desktop location as bottom edge
swap edge only when the location is left or right
fixes tooltip position for things in desktop, like Folder icons

BUG:337112
2014-07-09 11:40:34 +02:00
Eike Hein
4153a2c8ee Catch popup menus by window type, not class name.
The latter breaks for subclasses of QMenu.

Follow up to review 118361.
CCMAIL:martin.klapetek@gmail.com

Fixes libkonq menus opened from Folder popup dialogs closing the
dialog.
BUG:336702
2014-06-25 16:17:26 +02:00
David Edmundson
dc79190b8d Fix dialog's check for isTooltip
Qt::Tooltip is a mix of other flags (0x0001101)

using a simple & is not correct as any Window will have (0x0000001) set
and the bitwise & operation will return a non-zero value

REVIEW: 118906
2014-06-24 21:17:58 +02:00
Marco Martin
6603334b9b make the view's qml know about the wallpaper
better giving the access to the view qml rather than the containment

Reviewed by: Bhushan Shah <bhush94@gmail.com>
2014-06-20 19:04:09 +02:00
Vishesh Handa
d3de99eb1e AppletQuickItem: Do not remember the popup dialog size
The popup dialog can currently never be resized, so it doesn't make
sense to record its height in a config file. Additionally, this also
causes problems when applet writers change the size of their plasmoid.
Since the old size is saved in the config file, it is shown with the old
dimensions instead of the new ones.

REVIEW: 118849
BUG: 336070
2014-06-20 17:31:57 +02:00
Kai Uwe Broulik
549361cb42 Fix typo 2014-06-19 20:12:51 +02:00
Marco Martin
4f14f4ceb9 "configure" icon for config dialogs
BUG:336461
2014-06-19 20:03:31 +02:00
Marco Martin
1f633ad0a1 fix tooltip resize in folderview
also, detach from old layouts if the mainitem changes
2014-06-17 21:55:45 +02:00
Marco Martin
751b773db2 if the applet has width/height in root, use it
CCBUG:336291
2014-06-16 14:35:04 +02:00
Marco Martin
c44c3b30e2 off by one in positioning
position the dialog at exactly the right-most edge of the screen
it was off by exactly one pixel
2014-06-13 13:54:23 +02:00
Marco Martin
71cf5a3e9a set window mask when composite is off 2014-06-10 15:22:12 +02:00