Commit Graph

471 Commits

Author SHA1 Message Date
Marco Martin
b68bbca6c8 check for validity 2014-01-31 20:03:33 +01:00
Marco Martin
89cb417e9f propagate sizehints from mainItem 2014-01-31 19:59:45 +01:00
David Edmundson
d7a3a10238 Align Dialog Popups to align to be outside the docks.
For the WidgetExplorer we want to show the tooltips to the right of the
scrollbar in the view, not to the right of the delegate the tooltip is
for.
This patch checks if the visualParent is in a dock. If so the popup is
positioned outside

I have also introduced a manual test for Dialog Positioning, and
includied some fixes in the original logic.

REVIEW: 115393
2014-01-30 15:03:28 +01:00
David Edmundson
60e0754f90 Reduce the number of times syncToMainItemSize is called in Dialog
syncToMainItemSize is rather expensive and gets called a lot in item
initalisation as various properties get set.
2014-01-29 18:49:06 +01:00
David Edmundson
9de921e34d Warnings-- if modelData.seperator is not set 2014-01-29 18:39:20 +01:00
David Edmundson
d43fa35c42 Remove triple include of the same file 2014-01-29 17:22:44 +01:00
David Edmundson
c9c79e7a42 Optimisation: Don't work out position based on visualParent if there isn't one 2014-01-29 16:54:56 +01:00
David Edmundson
a805af6e7d Don't emit widthChanged ourselves. QWindow does it in resize() 2014-01-29 16:49:50 +01:00
Martin Klapetek
2ea398f5a6 Detect current QScreen manually in Dialog
QWindow::screen() never ever changes if the window is moved across
virtual screens (normal two screens with X), this seems to be
intentional as it's explicitly mentioned in the docs.

Until that's changed or some more proper way of howto get the current
QScreen for given QWindow is found, we simply iterate over the virtual
screens and pick the one our QWindow says it's at.

This also fixes the OSD having proper shadows in multiscreen environment
2014-01-28 18:19:30 +01:00
Aleix Pol
87a7db3063 Create a MimeDatabase component that maps QMimeDatabase
Makes it possible to figure out mimetypes from QML.

REVIEW: 115348
2014-01-28 15:04:19 +01:00
Sebastian Kügler
6dfb4f240b Make setDevicePixelRatio(qreal) a simple slot 2014-01-28 13:49:23 +01:00
Sebastian Kügler
2a217dff0a Remove unneeded API
- dpi(QQI*) and printScreenInfo(QQI*) goes away, they're mainly useful for
  testing.
- setDevicePixelRatio goes private
- clarify DPI computation
2014-01-28 01:15:38 +01:00
Sebastian Kügler
b7fcea471c Add comment why we read the DPI the way we do 2014-01-28 00:17:32 +01:00
Sebastian Kügler
b102ae5e45 Complete apidocs for Units. 2014-01-27 19:51:08 +01:00
Sebastian Kügler
b1bc20259a units.dp and units.du be gone
- They're not used
- They're conceptually broken and arbitrary to our scaling concepts
- The implementation as Q_INVOKABLE isn't very useful
2014-01-25 03:35:00 +01:00
Sebastian Kügler
c8ba9746f2 iconSizes.default be gone
This is used nowhere, so better get rid of it before someone gets the
idea.

Leaves us with only one non-scaled icon size. Maybe worth considering to
get rid of this as well, and let Folderview decide?
2014-01-25 03:30:45 +01:00
Sebastian Kügler
11e3d687d9 Remove dialog and toolbar icon sizes
Add FIXME for small icon alignment
2014-01-25 03:25:07 +01:00
Sebastian Kügler
124ae423c1 Scale units.iconSizes with dpi
This is still pretty rough. It seems to work fine for larger icons, but
smaller ones get misaligned. This will need some corrections, such as
locking the smaller sizes to 16, 22, 32, 48, 64, which should take care
of this issue.

With this change, parts of Plasma scale depending on the DPI. This is
noticeable in Kickoff.
2014-01-25 02:40:52 +01:00
Sebastian Kügler
a2baa1c7c7 Merge branch 'master' into sebas/hidpi 2014-01-24 23:38:37 +01:00
Bhushan Shah
3c0007db22 Provide KFormat wrapper in PlasmaCore for unit conversion
REVIEW: 115284
2014-01-24 22:28:04 +05:30
Sebastian Kügler
6d9022dca2 Use int for units.gridUnit
It was an int already anyway, so let's be true about this and also
return an int. This reflects pixel-alignment in the API, not just in the
implementation.
2014-01-24 12:33:39 +01:00
Marco Martin
e0676f7501 use the new backgroundcontrast effect 2014-01-23 15:17:41 +01:00
Martin Gräßlin
188e421956 Do not overwrite the window type by calling setFlags
QWindow::setFlags is manipulating the same X property as
KWindowSystem::setType. Thus our setType never succeeded as the
setFlags overwrote the window type again. In the same way we
have to call setFlags when reverting to the default Normal type.

REVIEW: 115258
2014-01-23 14:26:59 +01:00
Sebastian Kügler
e346c751ec Allow to reset devicePixelRatio
Setting devicePixelRatio to 0 re-reads it and resets it to its default
value.
2014-01-23 04:05:45 +01:00
Sebastian Kügler
cca8a86f98 Rename units.dpiScale to units.devicePixelRatio 2014-01-23 02:18:06 +01:00
Sebastian Kügler
f305950a80 Fix tooltip spacing 2014-01-23 01:50:37 +01:00
Sebastian Kügler
a70dd8c299 theme.defaultIconSize moves to units.iconSizes.default 2014-01-23 01:47:42 +01:00
Sebastian Kügler
4da01ebce0 spacing hints move from theme to units 2014-01-23 01:26:19 +01:00
Sebastian Kügler
cc7bd8e11e Port from theme iconsize to units.iconSizes.* 2014-01-23 00:24:38 +01:00
Sebastian Kügler
e10b77f236 Move units from PlasmaComponents into PlasmaCore 2014-01-23 00:06:43 +01:00
Sebastian Kügler
7e5604cc56 icon sizes move into Units
They go into the propertymap, so are accessible now with

units.iconSizes.huge, units.iconSizes.large, etc.
2014-01-22 23:59:23 +01:00
Sebastian Kügler
d51711edc6 Add dpi function from theme
printScreenInfo() has the debugging prints for now, removes random crap
from the shell output.
2014-01-22 01:36:30 +01:00
Sebastian Kügler
847a61b3d8 Delete ThemeProxy 2014-01-22 01:34:56 +01:00
Sebastian Kügler
e81db11f05 Export Plasma::Theme as theme, remove proxy class
The last bits have moved out of ThemeProxy, units is used for iconSizes,
which means we can finally directly use Plasma::Theme, and don't need a
ThemeProxy class anymore.
2014-01-22 01:33:26 +01:00
Sebastian Kügler
0c3e49866a Add dpiScale property to dynamically scale the whole ui 2014-01-22 01:18:54 +01:00
Sebastian Kügler
60950e8333 Correct api docs 2014-01-22 00:39:54 +01:00
Sebastian Kügler
416029ec4f Default tooltip uses units.iconSizes -- works fine 2014-01-22 00:30:04 +01:00
Sebastian Kügler
0dc8a7ee53 Move iconSizes from theme here
This is means two things:
- icon sizes have moved from theme.iconSizes.* to units.iconSizes.*,
  will provide porting script and update docs
- we can kill PlasmaCore's ThemeProxy now. Icon sizing and dpi handling
  is kept outside of Plasma::Theme for now, as it pulls in too many
  deps.
2014-01-22 00:28:09 +01:00
Sebastian Kügler
c84e549715 Use msize.height, not width for gridUnit
This change does two things:

- it increases the gridUnit to 11 pixel on 102DPI, 18 on 170DPI. This
  means on the one hand larger sizing, but aligns gridUnit and
  theme.largeSpacing consistently, and thus makes these types work
  together better.
- it scales the gridUnit with the DPI. The width of the font's bounding
  box doesn't change on the displays I've tried, the height does.
  As a result, gridUnit now scales linearly with the DPI setting.
2014-01-21 23:47:32 +01:00
Sebastian Kügler
13a6a38628 Some debugging for gridUnit 2014-01-21 17:55:47 +01:00
Sebastian Kügler
af691a9897 Merge branch 'master' into sebas/hidpi 2014-01-21 16:47:52 +01:00
Sebastian Kügler
18c4fc7c60 Improve tooltip spacing, increase allowance for text 2014-01-21 02:47:41 +01:00
Sebastian Kügler
22c12b8424 Temporarily add an invokable to read dpi value 2014-01-21 00:28:40 +01:00
Martin Gräßlin
bdc2ad2a84 Add outputOnly property to PlasmaCore.Dialog
The outputOnly property allows to specify that the dialog should not
accept any input. Thus it's an output only window which supports click
through. This is obviously platform specific and so far it is only
implemented for the X11 platform using the shape extension.

The input shape needs to be set once the window is visible and thus
the functionality is bound to the visible changed signal. The code
ensures that the required shape extension version is present and only
fetches it once.

REVIEW: 115139
2014-01-20 15:57:44 +01:00
Martin Gräßlin
e4d4f5fc1c Allow dialogs to be Notifications
Extending the WindowType enum by NET::Notification.

REVIEW: 115138
2014-01-20 15:57:10 +01:00
Aleix Pol
db3dd7a994 Improve clipboard types support
Try to be more accurate about the translations mimetype <-> variant.
2014-01-18 16:21:57 +01:00
Aleix Pol
6b86584dd0 Make it possible to fetch data for a said format 2014-01-17 17:24:04 +01:00
Aleix Pol
1a68e9aabf --debug 2014-01-16 19:16:08 +01:00
Aleix Pol
2ad7b38392 Create a new Clipboard component
Can be used to keep track of the clipboard by setting and fetching
information from it.
2014-01-16 19:15:51 +01:00
Sebastian Kügler
ca76aa29f8 Fix some TypeErrors in DefaultToolTip 2014-01-15 12:50:18 +01:00
Sebastian Kügler
0a3a236dfb Merge branch 'sebas/theme' 2014-01-15 12:49:42 +01:00
Marco Martin
92fe107329 put namespace around KDeclarative 2014-01-13 21:21:14 +01:00
Sebastian Kügler
374d230932 wallpaperForSize moves to Plasma::Theme 2014-01-13 02:11:37 +01:00
Sebastian Kügler
cf049f28cb Merge branch 'master' into sebas/theme 2014-01-13 02:05:44 +01:00
Marco Martin
4235ec4842 export the location as tooltip property 2014-01-13 02:00:45 +01:00
Sebastian Kügler
ea2a4db7ab Move spacing, stylesheet and mSize into Plasma::Theme 2014-01-13 01:31:46 +01:00
Sebastian Kügler
563035a1fa themeName is already gone 2014-01-12 23:05:55 +01:00
Sebastian Kügler
a9b1f2c619 Most of iconSize moves to Plasma::Theme
The QQmlPropertyMap isn't moved with this commit, this needs a bit more
changing, so we do a separate one for that, once the more trivial stuff
is moved out.
2014-01-12 20:10:19 +01:00
Sebastian Kügler
25dcdd39a4 Color properties move into Plasma::Theme
They're now convenience API in Plasma:Theme, PlasmaCore.Theme is
becoming smaller and smaller. Another nail in its coffin.
2014-01-12 19:49:56 +01:00
Sebastian Kügler
13242c8a5f Move smallestFont and defaultFont properties into Plasma::Theme 2014-01-12 19:33:56 +01:00
Sebastian Kügler
eba1a79b57 themeName, useGlobalSettings and wallpaperPath move into Plasma::Theme 2014-01-12 19:17:37 +01:00
Marco Martin
69efa8d941 simplify the qml of the default tooltip 2014-01-12 19:10:06 +01:00
Marco Martin
331b6c5d0d resize and move the tooltip in one move 2014-01-12 17:29:49 +01:00
Aleix Pol
5c88e300bd Small changes
Fix typo on API documentation
Remove pointless debug output
Remove unneeded loop
2014-01-11 11:17:53 +01:00
Sebastian Kügler
b54b42fcc0 Merge branch 'master' into mart/ToolTipArea 2014-01-10 18:57:58 +01:00
Sebastian Kügler
30d1e6bdba Fix reference error 2014-01-10 18:57:42 +01:00
David Edmundson
d200bd0d16 Add a new component ModelMenu
This is a wrapper round ContextMenu that allows one to populate
the menu items from a model

REVIEW: 114925
2014-01-10 12:28:29 +01:00
Marco Martin
b233c6e735 simplify 2014-01-09 16:36:59 +01:00
Marco Martin
1f2f706c10 bit better with animations 2014-01-09 16:10:17 +01:00
Marco Martin
c53a00ce4b first crude direction support for tooltips
it still needs support for diagonal movements
2014-01-09 15:09:53 +01:00
Aleix Pol
9e46c82733 Remove duplicated calls
setPosition will call setGeometry internally, no need to do both.
Only call setEnabledBorder once, with the enabled borders
2014-01-09 13:35:07 +01:00
Marco Martin
3f094d59a5 tooltips always have all the borders 2014-01-09 13:13:29 +01:00
Marco Martin
5836128789 animated tooltips are back 2014-01-09 12:10:22 +01:00
Marco Martin
bb7157a59e reposition when resize if there is a visualparent 2014-01-09 11:39:18 +01:00
Sebastian Kügler
fb52783c48 Experiment with size limits in tooltip 2014-01-09 05:26:49 +01:00
Sebastian Kügler
62580bc331 Port calendar to ToolTipArea 2014-01-09 05:26:20 +01:00
Sebastian Kügler
f21ad15ed6 Fix up showing and hiding of the dialog
ToolTipArea.containsMouse allows the use to update the tooltip way
before it's shown, or when the contents of the tooltip should change
within an open dialog.

dismiss() and keepalive() allow handing over the tooltip dialog to
another item, in order to allow for a smoother handover when a new item
recycles the tooltipdialog. This avoids flickering when the tooltip
moves from one item to another.
2014-01-09 04:09:03 +01:00
Sebastian Kügler
b8fc3aea7f Merge branch 'master' into mart/ToolTipArea 2014-01-09 02:33:11 +01:00
Hrvoje Senjan
18def6e560 Fix accessdenied's install location
CCMAIL: notmart@gmail.com
2014-01-08 23:28:59 +01:00
Marco Martin
6a0525c1c3 ToolTip->ToolTipArea 2014-01-08 18:13:07 +01:00
Aurélien Gâteau
3b7fe5f2e6 K_GLOBAL_STATIC => Q_GLOBAL_STATIC
One less use of kde4support
2014-01-08 13:18:19 +01:00
Aurélien Gâteau
c6e0b56d79 sortfiltermodeltest: qtest_kde.h => QtTest 2014-01-08 13:18:19 +01:00
Marco Martin
9f3af64dac new way to do tooltips
manage it in c++
it still steals hover events from their target and not all features are there.

better than before tough
2014-01-07 21:44:50 +01:00
Aleix Pol
e1a868e4f6 Fix QMenuItem connections
Don't emit twice textChanged when changed.
checkableChanged signal doesn't exist anymore. Use changed instead as
suggested by the Q_PROPERTY
2014-01-07 16:45:27 +01:00
Marco Martin
3feb6ac3ae use a QQmlPropertyMap instead of a variantmap
this way when a source is updated, only that will be updated, and not the whole data

so whould be way more efficient.

it remains API compatible
2014-01-07 14:33:20 +01:00
Marco Martin
569ad6a41d applets can only import from their own private
importing from the private imports of another applet makes the applet fail to load
2014-01-07 11:16:11 +01:00
Sebastian Kügler
8c797fce42 Improve PlasmaCore.ToolTip
- Derive from MouseEventListener as to let input through
- react to target changes: reparent the MEL accordingly
- kill a bunch of warnings

This "helps" a bit, but still filters out input events since the MEL
only passes events down to children, but the tooltip's target becomes
its parent.

Reparenting the target crashes, and it seems a pretty ugly thing to do,
anyway, since we don't want to mess with the scenegraph structure just
to filter events out for tooltips. Grmblz.
2014-01-05 04:26:29 +01:00
David Edmundson
0bf60ad1b4 Add missing license 2014-01-03 19:27:55 +01:00
David Edmundson
919954ab90 Add a simple manual test for MouseEventListener 2014-01-03 19:24:39 +01:00
David Edmundson
04f2f8bd8d Fix memory issues in MouseEventListener
Delete KDeclarativeMouseEvent when emitted

Do not leak KDeclarativeMouseEvent press and hold events when the mouse
moves.

Do not create KDeclarativeMouseEvent when the mouse is hovered. It's
pointless.
2014-01-03 19:24:39 +01:00
David Edmundson
635d02e7c2 Add documentation for MouseEventListener 2014-01-03 19:24:39 +01:00
Marco Martin
2eaf80456f till sync the item size even without visualparent 2014-01-03 12:40:10 +01:00
Marco Martin
ad4fecf426 don't autoposition if there is no visualParent 2014-01-03 12:32:19 +01:00
Marco Martin
692c436960 get rid of toolbar-icons
simplify svg icon management: all svg icons are in icons/ and have the same style
2014-01-02 18:35:29 +01:00
Marco Martin
84df832f5c Merge branch 'mart/modelsInDataEngine' 2014-01-02 11:05:20 +01:00
Sebastian Kügler
e9a43b165b Quicker animation in pagestack 2013-12-28 06:57:57 +01:00
Sebastian Kügler
682affabf8 Allow to switch off pagestack transitions 2013-12-28 06:44:58 +01:00
Sebastian Kügler
e5ad29dabf Adjustments to theme.textColor changes
The larger headings are a bit softened, to make their stick out less,
the font is meant to take care of this. Result: visually more consistent
colouring, strangely. Human eyes are beautifully complex things.
2013-12-28 01:07:06 +01:00
Sebastian Kügler
781ba8b4c7 Make theme.smallSpacing useful
On normal dpi displays, this will give two pixels, but will scale up for
higher DPI.
2013-12-28 01:06:07 +01:00
Sebastian Kügler
84b6e6a245 Adjustments for theme.textColor
textColor is now used from the theme, there it is made grey, similar
effect, less code, more consistency.
2013-12-28 01:05:09 +01:00