Commit Graph

229 Commits

Author SHA1 Message Date
Aaron J. Seigo
7d3327c884 add an init() method that will be called only after the applet is completely set up for those applets that care; also allows us to do delayed init in the case of expensive set up
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=712119
2007-09-13 17:00:57 +00:00
Aaron J. Seigo
b42db6a2ea should be using paintWidget, not paint
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=710733
2007-09-10 18:50:36 +00:00
Robert Knight
a29ae57a7d This breaks the existing Plasma applet API, see the contentSize()
comments below.

* New Flow Layout.  This provides simple icon view-esque layout of items.
  Useful for icons for documents , applications or other tasks on the desktop
  for example.  Supports non-equally sized items.

  Works well when used with the LayoutAnimator class to animate insertions
  and removals.

* Re-wrote BoxLayout and removed old HBoxLayout,VBoxLayout classes which had
  a lot of code duplication.  BoxLayout class now takes a direction argument
  in the constructor, ala. QBoxLayout.  New BoxLayout class actually takes
  minimumSize() , maximumSize() of items into account.  The Qt layout code
  for box and grid layouts is surprisingly sophisticated, so the results
  from BoxLayout probably will not be as good in certain situations but
  it should do for the panel.  New BoxLayout also has support for LayoutAnimator

* Fix Plasma::HBoxLayout and Plasma::VBoxLayout to use margin() 
  rather than spacing() for the distance from the top and left
  margins respectively.

* Fix Plasma::Applet::contentSize() to return the actual content size
  rather than a size hint.  Added a new method contentSizeHint() which
  applets use to provide a hint about suitable content size.  

  Existing implementations of contentSize() in applets need to be renamed
  to contentSizeHint().  The arguments and return type are the same as before.

* Install the LayoutAnimator header so that applets can use it

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=707275
2007-09-01 12:34:22 +00:00
Aaron J. Seigo
559647f5cc make Applet use the newer plugin loading mechanisms
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=705972
2007-08-29 02:33:22 +00:00
Robert Knight
93070ce1fd Implement the same sizeHint() logic in Plasma::Widget as QWidget. It returns the layout's sizeHint() if there is a layout or an invalid QSizeF otherwise. Implement sizeHint() in Plasma::Applet. It returns the same as contentSize() if there is no border or the content size hint plus the border size otherwise. Many of the applets need changes for setGeometry() to work properly on them. Fix various warnings.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=701192
2007-08-17 15:05:01 +00:00
Aaron J. Seigo
db4a7ebe61 copyright cleanups:
* Copyright (C) -> Copyright
* add "or later" clause to files that i have the sole copyright on
* add current year (2007) to my copyrights where it was missing

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=696946
2007-08-06 11:20:02 +00:00
Aaron J. Seigo
d10dba893e * Misc => Miscellaneous
* provide acccess to the applet id and plugin name

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=696629
2007-08-05 13:01:09 +00:00
Richard J. Moore
8d7e06a09d - Steps towards dataengine access from scripts
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=696620
2007-08-05 12:39:13 +00:00
Aaron J. Seigo
0eafb46fc4 * save applet config on exit
* introduce Applet::destroy which will perform cleanups, like deleting
  config files, etc..

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=696586
2007-08-05 09:39:32 +00:00
Aaron J. Seigo
21c804908e * add an updateConstraints to be used to do things globally that need to
prefix or suffix constraintsUpdated, e.g. manage the shadow
* add experimental support for dynamic shadow, based on a patch by
  zrusin; still issues to be addressed but it gives us the start of a
  layer-based means to do effects

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=696561
2007-08-05 08:41:55 +00:00
Matt Broadstone
be3c212374 Make all plasma/widgets inherit Plasma::Widget now. Holding off on committing change for icon as I have a massive patch for the new text drawing
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=696028
2007-08-03 16:00:10 +00:00
Aaron J. Seigo
8fce372a7c allow applets to register that they need to be configured before use
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=696023
2007-08-03 15:23:56 +00:00
Riccardo Iaconelli
075c1315ec Const QStrings
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=694679
2007-07-31 10:56:05 +00:00
Riccardo Iaconelli
5aaccf0489 The applets now can associate with (one or more) certain mimetypes, and be called when that mime is dragged onto the desktop. Very rudimental for the moment, we should pass the name of the file to the applet. Added some copyrights I missed in the past.
Aaron: your turn now to discover the 'Mimetypes' key problem.
CCMAIL: aseigo@kde.org

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=694676
2007-07-31 10:52:05 +00:00
Thomas Georgiou
999cd6ed57 Cache standard applet background.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=694542
2007-07-31 00:21:08 +00:00
Sebastian Sauer
d66a988732 added the QList<QAction*> Applet::contextActions() method. thanks aaron :)
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=694540
2007-07-31 00:20:19 +00:00
Aaron J. Seigo
8d5d8daeb3 give the configxml object our config object; probably works better that way ;)
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=694408
2007-07-30 16:19:07 +00:00
Aaron J. Seigo
947ed386ab * remove the lock/move stuff as it ignores kiosk and is already covered nicely by isImmutable and setImmutable
* on the base implementation of contentSize, check to see if we have a layout and if so use that to determine the size we ought to be

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=693769
2007-07-28 23:41:40 +00:00
Aaron J. Seigo
cedc2934c4 make it clear what services Applet provides in the apidox
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=693718
2007-07-28 19:59:22 +00:00
Laurent Montel
e94eba8882 Some applet mustn't be move (for example desktop applets)
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=693187
2007-07-27 11:42:43 +00:00
Aaron Eisenberg
8d4d0e0631 Applets in group mode change color based on category (Currently only date and time category)
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=693065
2007-07-26 22:58:30 +00:00
Laurent Montel
1553ae4492 Allow to lock applet position
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=693020
2007-07-26 20:22:04 +00:00
Alex Merry
b7187ab807 Make the local co-ordinate system clearer.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=692598
2007-07-25 23:48:15 +00:00
Alex Merry
f49f45411b More apidox
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=692591
2007-07-25 23:00:25 +00:00
Alex Merry
eddb8f294f Change how boundingRect() is calculated and backgrounds are drawn.
Instead of implementing boundingRect(), applets should now implement
contentSize(), to tell Plasma::Applet how much space they need.

I wrote a long commit log, then realised it belonged in the apidocs.


svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=692519
2007-07-25 19:15:23 +00:00
Aaron J. Seigo
2c251118fd * new background drawing code; 9 segments + center, documented at http://techbase.kde.org/Projects/Plasma/Theme#Current_Theme_Elements
* introduce contentsRect() and pass that into paintInterface instead of a widget

i missed monday so much i wanted to break SOMETHING, so i broke all the plasma widgets. i rock! ;P

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=692002
2007-07-24 21:04:31 +00:00
Aaron J. Seigo
39422a9a6b first draft of the ScriptEngine plugin
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=691244
2007-07-23 07:42:29 +00:00
Aaron J. Seigo
b8a9f72008 add an icon() accessor
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=691201
2007-07-23 06:12:38 +00:00
Aaron J. Seigo
0491b8b112 immutable -> isImmutable.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=691135
2007-07-23 00:24:36 +00:00
Matthias Kretz
1fd776be2e port to value based KPluginInfo
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=691115
2007-07-22 23:10:53 +00:00
Aaron J. Seigo
dd7b8b306b ebn fixes
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=691079
2007-07-22 22:01:10 +00:00
Richard J. Moore
23c1f996d2 First steps towards scriptability
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=690375
2007-07-20 21:00:11 +00:00
Aaron J. Seigo
51a0162fae started on docu fixes from ebn until i realized that the line numbers are all messed up in the apidox tests and so moved on
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=690174
2007-07-20 08:12:20 +00:00
Aaron J. Seigo
af043ca588 too tired to do much of anything else, i figured i could fix some ebn issues
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=690173
2007-07-20 08:06:27 +00:00
Aaron J. Seigo
8c8504964e * disable copying of Applet due to dptr-but-no-copy-ctor
* provide an accessor to the Package object.
* some const corrections

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=690105
2007-07-20 03:34:20 +00:00
Aaron J. Seigo
c7b13e477b don't crash when we are asked to create something bogus
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=689221
2007-07-17 22:26:18 +00:00
Aaron J. Seigo
f6a4e9612d * X-PlasmoidCategory => X-KDE-PluginInfo-Category
* allow filtering applets by category and parent app
* allow filtering categories by parent app

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=689200
2007-07-17 21:30:27 +00:00
Aaron J. Seigo
94a57ed051 * appletConfig -> config
* globalAppletConfig -> globalConfig
* add a convenience and safety method for accessing groups in the applet config, which namespaces the groups appropriately

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=687046
2007-07-12 19:14:23 +00:00
Aaron J. Seigo
8ee8f97aa1 * gaurd against an args with less than 2 items in it being passed in
* add a setFailedToLaunch method to applet to allow a generic way to set such status

it's pretty fugly looking at this point, but it works; i'll work with the artists to make it prettier later.

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=687027
2007-07-12 18:34:53 +00:00
Alex Merry
71c21577d3 Add categories to plasmoids. The actual category names are subject
to change at some point - a definitive list on techbase will probably
be assembled.


svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=686945
2007-07-12 13:24:35 +00:00
Alex Merry
2b4b22883d Make the APIDOX not lie, and change the logic to make sense
(loadDataEngine will always return a data engine - it just
might not be valid).

I changed it this way, rather than changing the test to
engine->isValid(), since all the plasmoids written so far
blindly assume a valid pointer is returned.  (In fact, they
all blindly assume the correct data engine is returned, but
at least this way they shouldn't crash plasma :-P)


svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=686301
2007-07-11 01:24:43 +00:00
Alex Merry
3d4b57b118 Clean up the APIDOX a little: spelling mistakes, seperating
the "brief description" from the "main description",
"Reimplemented from QGraphicsView" should be a comment, not
an APIDOX (so Doxygen will copy the original APIDOX down),
added docs for the export macro.


svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=684556
2007-07-06 22:20:57 +00:00
Aaron J. Seigo
5496acb8e9 configureDialog -> showConfigurationInterface
more explicit as to what it does and falls in line with
setHasConfigurationInterface

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=682296
2007-07-02 10:58:03 +00:00
Aaron J. Seigo
8e6578bf18 allow applets to note whether or not they provide a configure interface
and pay attention to that when creating the context menu

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=682287
2007-07-02 10:47:34 +00:00
Aaron J. Seigo
fbbab1b9b6 time to break everyone's plasmoids.
- add setDrawStandardBackground(bool) to get our common background
- make paint private and introduce paintInterface (with the same params) instead

this should make standardizing looks a bit easier and give us a way to paint the on-hover applet interface. we may need to do the same with boundingRect?

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=679036
2007-06-22 20:28:42 +00:00
Aaron J. Seigo
c2815e1f84 add the concept of immutable to applets
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=678565
2007-06-21 18:24:05 +00:00
Aaron J. Seigo
5f8c6be988 make Applet (and lineedit) usable with qgraphics_item cast. we probably want to do this with all of our QGI subclasses.
i introduced a new enum in the Plasma namespace, ItemType, so we can keep track of these id's centrally.
however, the right click mechanism is rather broken in its implementation; we need a way to offer a centralized menu on appets no metter where they are clicked.

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=678562
2007-06-21 18:07:39 +00:00
Aaron J. Seigo
fb8d5d353f * take an optional list of arguments to passs into applets
* create button applets not icon widgets on drop

honestly, not sure i like the qstringlist of argument approach, but that's what klibloader gives me

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=677941
2007-06-20 08:11:59 +00:00
Aaron J. Seigo
5e2b8cfd95 make applet a QGraphicsItem not a Group; as bibr explained to me on irc this evening a group is really, really a group ;) iow, the children lose all sense of identity. this causes all sorts of problems for building the sort of interfaces we are aiming for.
however, making them items makes it possible to drag children outside of their parents (c.f. the button applet) which causes another set of problems. i'll look into this tomorrow though. it's 01:00 and i was trying not to work on kde tonight.

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=677904
2007-06-20 06:45:08 +00:00
Pino Toscano
bbabb1fea4 headers cleanup
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=676483
2007-06-16 23:38:56 +00:00
Aaron J. Seigo
37869e0326 move the libraries that will be kept into libs/ ( was lib/)
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=676120
2007-06-16 04:16:17 +00:00
Riccardo Iaconelli
fddaf2dcf2 * Show the plasmoid name on the contextual menu.
* Applet => Plasmoid, still in the contextual menu

svn path=/trunk/KDE/kdebase/workspace/lib/plasma/; revision=671913
2007-06-05 19:31:48 +00:00
Aaron J. Seigo
bbaebc6b1b move workspace/plasma/lib to workspace/lib/plasma so that we can do:
#include <plasma/foo.h>

in headers in libplasma. this is important so that they can be used post-install by third party plugins, apps, etc.

also, changed Applet::loadDataEngine to just Applet::dataEngine and make it actually return the data engine; move the applets to using it. safer and fewer LoC

svn path=/trunk/KDE/kdebase/workspace/lib/plasma/; revision=670850
2007-06-02 17:29:39 +00:00
Aaron J. Seigo
df56575ef4 add the ability to get at the max size hint constraint
svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=670578
2007-06-02 04:47:09 +00:00
Aaron J. Seigo
7212ae5b5f applets are no aware of their constraints. the simple solution is often the best one.
svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=670285
2007-05-31 22:40:38 +00:00
Aaron J. Seigo
3d51733018 * more api documentation
* changes to reflect api movement

svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=668671
2007-05-27 08:01:31 +00:00
Riccardo Iaconelli
4090084e34 Plasmoids are now configurable! =)
Also cleaned out a bit the code, and improved the painting algorithm. Removed the harcoded values for adjusting the hands, now they're calculated runtime. Still have to make it more flexible, permitting to the artist to specify his center for the hand.

svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=668557
2007-05-26 19:01:32 +00:00
Aaron J. Seigo
a62bd49c9a only expose a KConfigGroup to applet subclasses to encourage correctness and allow for future flexibility.
svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=668085
2007-05-25 02:36:22 +00:00
Aaron J. Seigo
4d4f9e0140 convenience method for loading applets via a KPluginInfo
svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=668033
2007-05-24 20:51:59 +00:00
Aaron J. Seigo
1f797b162f * applet loading
* make the library names appear in descending order of specificity (plasma_kind_instance)

svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=668019
2007-05-24 20:01:12 +00:00
Matt Williams
199833129b Mmm, gotta love those APPLEYLAYOUTs :P
svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=667779
2007-05-23 22:45:21 +00:00
Andreas Hartmetz
308b2bb907 a strange compile++
svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=667709
2007-05-23 17:25:30 +00:00
Riccardo Iaconelli
62dbab141d The clock is now a Plasma::Applet.
Thanks a lot to millams for helping with the porting.
Enjoy the clock! Configurability is coming!

svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=667677
2007-05-23 15:47:27 +00:00
Matt Williams
4f6c36f3af Add some vaguely useful entries on the desktop menu
svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=667407
2007-05-22 18:29:12 +00:00
Matt Williams
dfb58b44c1 EBN Fixes
* Include own header file first
* Make d-pointer const
* Use references-to-const

svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=667001
2007-05-21 14:28:03 +00:00
Aaron J. Seigo
b8cc485705 * split DataSource into its own files
* move DataSource::Data to DataEngine::Data; this means consumers of DataEngine have no need to know about DataSource as a class

svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=666756
2007-05-20 20:36:59 +00:00
Aaron J. Seigo
520553079a PLASMA_EXPORT
svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=666752
2007-05-20 20:13:46 +00:00
Pino Toscano
d8c17250ce header cleanup
svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=656747
2007-04-22 09:35:04 +00:00
Matt Broadstone
72dbcaf4f0 Clean up the push button class
svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=642016
2007-03-13 03:00:09 +00:00
Aaron J. Seigo
454c29f187 let's use KPluginInfo
some api refinements

svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=639363
2007-03-05 00:07:21 +00:00
Aaron J. Seigo
736e81e422 SVN_SILENT let's just get this over with and reformant the classes that are pretty much expected to remain
svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=638722
2007-03-03 01:41:27 +00:00
Matt Broadstone
390e97b48c Made applet a QWidget/QGraphicsItemGroup, moved plasma lib building from workspace to plasma dir, added applet directory and test applet directory
svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=638182
2007-03-01 01:09:20 +00:00
Matt Broadstone
95bed44242 Fix build
svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=637823
2007-02-27 22:32:35 +00:00
Aaron J. Seigo
ecee37b67c --appletChain.. did this on the wrong system, am committing so i can
test on the dev box

svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=637812
2007-02-27 21:53:12 +00:00
Stephan Kulow
b5a36666ab merged kconfiggroup_port branch
svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=635490
2007-02-20 07:00:30 +00:00
Aaron J. Seigo
2664e2d35b starting work on dataengines, datasource, datavisualizations, the plasma
app and applets ... doesn't compile atm as it's a work in progress off
the design concepts. but dinner becons and i don't want to lose progress
in case my laptop degrades further.

svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=529282
2006-04-13 00:11:16 +00:00
Script Kiddy
2c0224231b Fix FSF address (old address)
svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=501565
2006-01-23 11:37:31 +00:00
Laurent Montel
9eaaa7d4ce Use QT macro for signal/slots
svn path=/trunk/KDE/kdebase/workspace/kcontrol/crypto/; revision=500480
2006-01-20 11:09:06 +00:00
Aaron J. Seigo
b645137010 some pieces that compile at the moment
svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=492417
2005-12-29 21:55:22 +00:00