|
| This Week... |
|
Introductions of a Dictionary, Photoframe, and Facebook Plasmoids, and a Weather and Solid DataEngine in Plasma. Usability improvements and optimisations in KListView, used for icon views in Konqueror and Dolphin. The start of a shared, common location for vocabulary files across KDE-Edu applications, with initial implementation in Kanagram. Support for application-specific caches in the Icon Cache implementation, and further progress in the KOrganizer Theming and KRDC Summer of Code projects. Better support for ALSA in KMix. Umbrello gets support for SQL code generation. The start of enhanced animation support in KPresenter. Scripting interaction with Yahoo! web services to provide weather and stock quote information in KSpread. Advancements in the KTorrent port to KDE 4. The creation of the PopUpDropper, a context-sensitive drag-and-drop widget in Amarok. Import of kollagame, a game development IDE. Systemsettings is moved to kdereview as a possible replacement for KControl in KDE 4.
|
Aaron J. Seigo continues the updates of previous weeks, giving us the third installment of his Plasma progress series:
|
This week the bulk of interesting work in Plasma happened in DataEngines and Phase/Animator.
DataEngines are plugins that get loaded on an as-needed-basis to provide access to specific bodies of information. This week we saw DataEngines for looking up the meanings of words in online dictionaries, facebook updates, weather information (currently only Canada, but it is fully extensible to include other country information) and hardware events (interfaces with Solid).
With these engines, a Plasmoid can ask to be connected to specific pieces of information and all the data fetching, processing, updating and clean up is handled for it. The interface is also identical regardless of the type of information so there is no need to learn different library interfaces to create different kinds of applets.
Phase/Animator is a system to provide centralized management of animations and other graphical effects. Like DataEngines, Phase/Animator is also plugin-based for flexibility and makes it very easy to add animations to Plasmoids and other desktop elements.
Animating a whole item is one line of code while animating an element within an item is ~3 lines of code. Animations for appearing, disappearing, slide outs, etc.. are provided and it is extensible to easily add more. This gives us the ability to provide consistent, efficient and pervasive effects on the desktop while also allowing them to be turned off (or otherwise chnaged) with the flick of a configuration switch, which is pretty important for thin client systems or accessibility concerns.
|
|
Thomas Georgiou writes about one of the many Plasma applets springing up, the Dictionary Plasmoid:
|
On the 18th June, Summer vacation started for me so I suddenly received a large amount of free time. The week before I had read that KDict was not going to be in KDE 4. As I had used KDict before and found it useful, I thought that replacing KDict would be a not-so-hard project to start developing on KDE with. At the same time, I also wanted to work on Plasma, the new, cool thing, so I decided to merge the two and write a dictionary Plasmoid. My friend, Jeff Cooper also wanted to get into KDE development so I asked him to help me.
On Monday, we easily wrote the plain text version of the Dict engine in a few hours after figuring out how to do TCP sockets in Qt. We were surprised at how easy it was to get working. That night, we started writing the beginnings of the applet until biological limits such as sleep overcame our enthusiasm about hacking on KDE. On Tuesday, we talked to Aaron J. Seigo on IRC about putting it into SVN. We then sent the engine to the Plasma (panel-devel) mailing list where we received some helpful responses on how we could improve the engine.
After we fixed a few things and resent the engine, Aaron committed it into playground. I also applied for a SVN account that day and received it that night. We were now able to commit directly to SVN. We continued hacking until we fell asleep that night too. On Wednesday, we committed the Dictionary applet and made the engine have pretty HTML output once we realized HTML was usable in the applet. We also added animation support in 1 line by using Phase. We continuously hacked at the applet and engine at a steady pace through Thursday. On Friday, I changed the layout/look of the applet after I received a cool mockup from the Oxygen team and Jeff recorded the screencast. On Saturday, I kept implementing cool new features like pages (which I just committed the preliminary version of) and dictionary selection, and I wrote these paragraphs.
The Dictionary applet mainly consists of 2 widgets, a word lineedit and a definition lineedit that is hidden until a definition comes from the engine. It currently looks ugly since the new background rendering code was committed to Plasma on Friday and the Oxygen team did not have enough time in the couple hours before the screencast was recorded to make a nice background. The word lineedit has instructional text that behaves like it does not exist except for a bug that is being currently worked on where the text sometimes stays grey. The definition lineedit is animated using Phase (that took only 1 line of code!) and has links to other related words given by the dictionary. There is also a bug with the definition lineedit disappearing leaving artifacts that is actively being worked on (an hour is not enough time to fix a bug that I had no idea about). The definition lineedit gets its text from the Dict engine. The Dict engine interfaces with dict.org using a Qt TCP Socket and can get definitions from various quality dictionaries that it hosts (but the applet can only select one right now... this is another feature that I will work on after I finish pages).
Getting started with KDE/Plasma development was extremely easy thanks to Qt, KDE's easy to use libraries, and the continuous help from Aaron and others in the #plasma IRC channel. If you want to start devloping or contributing for Plasma or KDE, just drop in to the #plasma or #kde4-devel channel on Freenode or visit http://techbase.kde.org/Contribute.
|
|
Thomas Moenicke introduces his work on bindings for PHP, PHP-Qt:
|
I am writing language bindings which allow one to write Qt and KDE GUI applications using the command-line version of PHP. Version 5 of PHP offers substantial object orientation and a C/C++ like syntax on one hand, and introspection and the easy-to-use nature of a scripting language on the other; PHP 5 is capable of far more than its normal job in web environments.
I hope not only to bring PHP into the KDE and Qt worlds, but also to bring Qt and KDE into the PHP world; thereby exposing people to KDE which may not otherwise have such exposure.
Currently developers using PHP-Qt can use a number of Qt technologies including meta objects, overriding virtual methods, most non-template classes, and slots. In the near future I will implement user-generated signals, write more examples and tutorials, and improve overall stablity. Also Katrina Niolet and I are working together on adding support for template based classes such as QList and QVector.
Long term goals for PHP-Qt include:- Support for QtDesigner based interfaces
- Ability to extend desktop software, such as Plasma, with PHP.
- Experimenting with combining Web and Desktop in new and innovative ways.
PHP-Qt builds upon the smoke library, which is is written specifically for developing Qt/KDE language bindings. It is already used by other KDE bindings projects and does an excellent job as can be seen in QtRuby, Korundum and Qyoto with Qt4; Smoke has also been used in Qt3 bindings as well.
There are already several projects which have started developing GUI applications with PHP-Qt, including a configuration application for Gentoo and translation tools for web environments. Additionally, Katrina Niolet is developing IQuiP on top of PHP-Qt which allows one to write AJAX applications with the PHP-Qt API. Since both PHP-Qt and IQuiP share the same API it is theoretically possible to run a large number of applications both on the web and on the desktop without a single line of code modification.
|
|
This is the last digest before the hackaton and talks extravaganza that is Akademy 2007, which starts Saturday, 30th of June in Glasgow, Scotland and will therefore be the location of Issue 65. See you there!
|
|
| Statistics |
|
| Contents |
|
|
Bug Fixes |
Features |
Optimise |
Security |
Other |
|
Accessibility |
|
|
|
|
|
|
Development Tools |
|
|
|
|
|
|
Educational |
|
|
|
|
|
|
Graphics |
|
|
|
|
|
|
KDE-Base |
|
|
|
|
|
|
KDE-PIM |
|
|
|
|
|
|
Office |
|
|
|
|
|
|
Konqueror |
|
|
|
|
|
|
Multimedia |
|
|
|
|
|
|
Networking Tools |
|
|
|
|
|
|
User Interface |
|
|
|
|
|
|
Utilities |
|
|
|
|
|
|
Games |
|
|
|
|
|
|
Other |
|
|
|
|
|
|
|
Bug Fixes |
|
Multimedia |
|
Michael Pyne committed changes in /trunk/KDE/kdemultimedia/juk:
|
Port bugfix for bug 116181 (Internet cover search doesn't work) to KDE 4. You can't see the thumbnails at this point but double-clicking still sets the cover like it should.
I still need to rename the files on Friday but I'm closing the bug now. |
|
|
|
|
|
|
|
|
|
|
|
|
Features |
|
Development Tools |
|
David Nolden committed changes in /trunk/KDE/kdevelop/languages/cpp:
|
|
Step towards correct include-file parsing: Port the lexer-cache implementation from kdevelop-3.4 to kdevelop-4. It is completely ported, but at the high level it still needs to be integrated with the du-chain and CppParseJob. |
|
|
|
|
|
|
Sharan Rao committed changes in /trunk/KDE/kdesdk/umbrello/umbrello:
|
* SQL Code generation for MySQL and PostgreSQL. Generates code for everything that's supported in ER diagrams except Auto Increment ( which will be coming soon. I need to figure out a nice way to combine the auto increment of Mysql and Sequences of Pg ) |
|
|
|
|
|
|
|
|
|
|
Educational |
|
Andrew Manson committed changes in /trunk/KDE/kdeedu/marble/src/lib:
|
|
this commit adds the necessary files for gps any gps datastructures allong with any necessary changes made to the AbstractLayer implementation. AbstractLayer will change in accordance with its usage. AbstractLayer.cpp was not included in the CmakeLists.txt because of a problem with linking during build. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Paolo Capriotti committed changes in /trunk/KDE/kdegames/kbattleship/src:
|
* Modified welcome screen. ** Now KBattleship has a single menu where the user can select the game type with just one click. ** Clicking on a multiplayer game shows a modal dialog where connection parameters can be set. * Buttons are vertically aligned in WelcomeScreen. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Jan Kundrát committed changes in /branches/work/kphotoalbum-iptc:
|
- support for viewing IPTC tags - character set selection for IPTC - some include re-shuffling in headers for preventing recursive inclusion - Exif::TreeView changes for supporting "multiple roots" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Rafael Fernández López committed changes in /trunk/KDE/kdebase/apps/dolphin/src:
|
|
New and powerful KListView. Still pending class renaming. There are two methods that I need to think about it, and boost. Small issues like reloading all data when sorting role suddenly changes. In general terms it will work nice when you sort by name or size. We have to work further when we sort by other roles. Nice times. |
|
|
|
|
|
|
Aaron J. Seigo committed a change to /trunk/KDE/kdebase/workspace/libs/plasma/widgets/icon.cpp:
|
* use EaseIn for the icon button show * show the button(s) in .2s rather than the very slow feeling .5s * don't leak the timeline * don't connect to the timeline signal more than once * comment in code that is ifdef'd out anyways * don't set the svg element for fg and bg unless it exists * remove some dead code |
|
|
|
|
|
|
|
|
|
|
Aaron J. Seigo committed changes in /trunk/KDE/kdebase/workspace/libs/plasma/widgets:
|
* make mini buttons "click" on mouse release like a proper button * don't click when moving (either the icon or the mini buttons) * only show the buttons on hovered states, allowing for proper button/hover/pressed painting * try and avoid unecessary if/else's and other codedamage * get rid of some dead code
now it's about ready to be phased =) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Matthew Woehlke committed changes in /trunk/KDE/kdelibs/kdeui/colors:
|
Add shade() to KColorScheme (get shades for 3d effects i.e. light, midlight, mid, dark, shadow)
WARNING: the current implementation sucks and may take a bit to get right (it may even be outright broken); the API is good though |
|
|
|
|
|
|
|
|
|
|
|
|
Luboš Luňák committed changes in /trunk/KDE/kdebase/workspace/kwin:
|
|
Interesting way of checking if a decoration needs a hard reset - as soon as one thing that does not need it has changed, it is not needed, regardless of the rest. Even more interestingly several styles have exactly the same copy of this nonsense. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Peter Penz committed changes in /trunk/KDE/kdebase/apps/dolphin/src:
|
|
Implement sorting by "tags". Same performance problems occur as when using sorting by "rating", but we must get a feeling first how we use the Nepomuk API before thinking about caching... |
|
|
|
|
|
|
|
|
|
|
Rafael Fernández López committed changes in /trunk/KDE/kdebase/apps/dolphin/src:
|
Small fixes, but that have an impact of how things are visualized.
* Move "not tagged" elements to the end. We sort the rest (when they have tags), but keep untagged elements (the category) at the end of the view, since the user had "less" interest on them.
* Break the law again of "dirs first". If we have on a folder only a tagged file (and is a file) and the rest are folders, that file goes first, since it was tagged.
* If we are on the same category, dirs go first. Here we make them citizens of first class.
* Commas instead of spaces when building categories for tags, they make it more readable and less error-prone (we can have tags "a", "dog" and "a dog" as tags, right?, so spaces here make the thing a bit hard to distinguish, I have two tags "a", "dog", or the tag "a dog") ;)
* Return an empty string when the item is not tagged at the method tagsForIndex. This way we always show untagged items the latest ones very easily (without nasty string checks). We will let the categorizer put a fancy name for them, if the returned string was empty. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Will Stephenson committed changes in /trunk/playground/pim/kfacebook/kfacebook:
|
Make authentication work with 'Desktop' type Facebook application api keys.
*) Use https for getSession *) Process the 'secret' field returned by getSession and use that for subsequent method signature generation
NB: There is still a bug in the FB server/application registration system, that causes an empty 'secret' field to be returned if the application was originally registered as being of type 'Website'.
Create a new app, fill the 'Optional' fields out accordingly, and use those keys if this affects you. |
|
|
|
|
|
|
Tom Albers committed changes in /trunk/playground/pim/mailody/src:
|
Started working on the composer. Random cleanups and bugfixes: - move subject below the splitter - remove code used for storing the size which are now automatically handled by qdockwidgets. - make addressess in the box editable again. |
|
|
|
|
|
|
|
|
Marco Gulino committed changes in /trunk/KDE/kdepim/kmobiletools:
|
Adding a very_basic (and probably not working) akonadi serializer plugin, derived from Mail's one.
Fixing testlibkmobiletools compilation.
date() as KMime::Header in SMS class. |
|
|
|
|
|
|
|
|
|
|
|
|
Marco Gulino committed changes in /trunk/KDE/kdepim/kmobiletools:
|
Adding namespace to SMS. Implementing (or better, starting) custom headers, starting with KMobileTools::Sender (based on phonenumbers rather than mailboxes). |
|
|
|
|
|
|
|
|
Will Stephenson committed changes in /trunk/KDE/kdepim/networkstatus:
|
Rework the Network Status module for KDE 4
*) Network Status kded module implements two interfaces under /Networking
*) Client provides network status info and signals to network aware apps *) Service allows apps providing or monitoring network status to register their networks and change their status
Service changes are aggregated and signalled over the Client interface to listening apps.
*) Add a KConnectionManager class to make using the Client interface stupidly easy. This caches status, preventing unnecessary dbus calls, allows control over connect/disconnect policy and can call registered slots on connect/disconnect.
*) Add a NetworkStatusIndicator class which is a simple widget shown when offline, which automatically hides() itself when online
*) Add a pair of GUI test programs 'client' and 'service' which allow the curious to simulate network changes and their effects on a client.
To use:
1) make install 2) qdbus org.kde.kded /kded loadModule networkstatus, qdbus org.kde.kded /Networking status qdbus org.kde.kded /Networking networks 3) in builddir/tests ./service 4) likewise, ./client 5) Change the service's status and observe the changes in the client. Set the client to Start Connect while the service is offline, then connect the service and see how the client responds. 6) Use KConnectionManager in your own code.
TODO: Move libs to kdelibs and the rest to kdebase. Merge my secret networkstatus 3.5 branches to trunk. |
|
|
|
|
|
|
Multimedia |
|
Christian Esken committed changes in /trunk/KDE/kdemultimedia/kmix:
|
The Sliders view is now a generic View, that is capable of showing all kinds of MixDeviceWidget's.
Fix a long outstanding issue with a capture switch showing "off" state when it was in fact "on" (hint: Capture exclusive group). This happens rarely, and there was no bug item for that, but users were confused and/or cmplaining. |
|
|
|
|
|
|
|
|
Jeff Mitchell committed changes in /trunk/extragear/multimedia/amarok/src:
|
Beginning of support for popupdropper. Uncomment line 743 to have it cycle on and off.
Problems: 1) Isn't actually transparent, can't figure out why yet. 2) Scroll bars on QGV turned off, but there are noticeable outlines of where they'd be. 3) Doesn't completely draw in the entire window, seems like there's a pixel-wide border that it doesn't cover. 4) Main window doesn't redraw right when the QGV is deleted, even though there's a repaint called. |
|
|
|
|
|
|
Aaron J. Seigo committed changes in /trunk/extragear/multimedia/amarok/src:
|
* move the popup dropper init into the playlist window, as it is just so much simpler to do things from there * have the popup init take the window to parent to as a param * make the translucency actually work * get the size of the graphics view right (essentially 2px more than size() reports =)
it really ought to use a qtimeline to fade the background in/out on ctor/dtor, but i can't do all of jefferai's work otherwise what would he have to hack on? ;) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Jeff Mitchell committed changes in /trunk/extragear/multimedia/amarok/src:
|
Wow, PUD is starting to get somewhere. Activates on drag from any collection view item. turns off if the mouse moves inside the widget and the button is released.
To turn it on edit the static bool ENABLED in PopupDropper.cpp to be true.
Known problem: releasing the drag anywhere other than the PUD keeps it up there. (move the mouse over it to destroy it in this event). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Mathieu Ducharme committed changes in /trunk/playground/multimedia/ktabedit/ktabedit:
|
Time Signature Dialog is now a Qt Designer 4 .ui file.
It mimicks the old dialog, but it will be easier to prettify/enhance now.
It doesn't set the time sig yet though, and the "old way" wasn't removed yet. (It's still commented out though) |
|
|
|
|
|
|
Networking Tools |
|
Joris Guisson committed changes in /branches/ktorrent/kde4port:
|
Changes : - Show empty window - Created GUI class which will implement GUIInterface - Reworked ideal lib a bit - Added desktop file - Added function to initialize the global log - Implemented unique app functionality |
|
|
|
|
|
|
Joris Guisson committed changes in /branches/ktorrent/kde4port:
|
The KDE 4 port of ktorrent is taking shape : - We can now load, start, stop and remove torrents - Implemented a very basic view to show the current running torrents (this is by no means the finished view, but it is good enough for testing) - Added icons (still using the old ones for now) - Fixed crash in ChunkManager when loading a torrent |
|
|
|
|
|
|
Urs Wolfer committed changes in /branches/work/soc-krdc/krdc:
|
|
* Implement support for libvncserver quality. GUI part is not implemented yet.* Fix port 'modification' (e.g. if the user typed :1, he most likely requests the server on 5901). Thanks Brad for the hint. |
|
|
|
|
|
|
Joris Guisson committed changes in /branches/ktorrent/kde4port:
|
Changes : - Added logviewer plugin (prefpage still needs to be added) - Fixed some bugs in the LabelView - Fixed several bugs in ideal lib - Added desktop file for ktorrent plugin service types |
|
|
|
|
|
|
Office |
|
Cyrille Berger committed changes in /trunk/koffice/krita:
|
|
- improve the cooking of the tangeant (depending of the angle between the tangeant and the direction of the painting, mix more or less of the direction of the painting in the tangeant)- add a smoothness parameter |
|
|
|
|
|
|
Thorsten Zachmann committed changes in /trunk/koffice:
|
o This is the start to add animations to kpresenter. Up to now only the framework for running page effects is done. Also we I did a cover page down effect to see that it is working.
Special thanks goes to David for pointing out syncX() so that I still get mouse events during a page effect. Otherwise X was 100% and no longer forwarding key events to the application :-(.
All the animations will be done by the KPrAnimationDirector once it has all the needed functionality.
There are still a lot of open points but it is a start.
o added some pages and a shape as test data to a kpresenter document for testing
o rework fullscreen mode of kpresenter
o split KoPAView::setActivePage to setActivePage and updateActivePage setActivePage only sets the active page updateActivePage also updates the gui |
|
|
|
|
|
|
|
|
|
|
Thomas Zander committed changes in /trunk/koffice:
|
Flake: * Introduce paste Text: * Allow creation and deletion of styles through the docker * Integrate clipboard stuff better * Set a trailing dot on numbered items
KoText: * Add properties to support ODF features list headers and outlines |
|
|
|
|
|
|
Sebastian Sauer committed changes in /trunk/koffice/kspread/plugins/scripting:
|
Added the yweather.py script that provides us the KSpread YWEATHER scripting function.
Those function does use the YAHOO! Weather web service to provide a scripting function that displays the current temperature of a defined location.
So, once those script got executed we are able to; =YWEATHER("GMXX0151";"c") where the "GMXX0151" is a US zip code or a Location ID.
You are also able to reference a cell where those location is defined; =YWEATHER("=C13";"c") |
|
|
|
|
|
|
Sebastian Sauer committed changes in /trunk/koffice/kspread/plugins/scripting/scripts:
|
Added the yfinance.py script that provides us the KSpread YFINANCE scripting function which uses the YAHOO! Finance web service to provide stock trading info.
Samples; =YFINANCE("YHOO";"20060119";"Open") =YFINANCE("=C14";"=C15";"=C16") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Jakob Petsovits committed changes in /trunk/KDE/kdelibs/pics/oxygen:
|
|
Bringing the device icons in line with the freedesktop.org icon naming specification, part 1: deletions (all *-mount icons and dvd-unmount, as discussed on kde-artists). |
|
|
|
|
|
|
Jakob Petsovits committed changes in /trunk/KDE/kdelibs/pics/oxygen:
|
Bringing the device icons in line with the freedesktop.org icon naming specification, part 2.1: cleaning up.
Specifically, I forgot to rename the small versions of the svg icons (in devices/small). Also, there were still PNGs of ksim-cpu (which now resides in apps/) in devices/, those are supposed to be deleted from here. |
|
|
|
|
|
|
Jakob Petsovits committed changes in /trunk/KDE/kdelibs/pics/oxygen:
|
Rename folder-home to user-home, in order to comply with the icon naming specification. lxr.kde.org does not list any occurrences of folder-home, so renaming is pretty much safe. |
|
|
|
|
|
|
|
|
Utilities |
|
Alexander Wiedenbruch committed changes in /trunk/KDE/kdeutils/superkaramba/src:
|
New Features: - Network sensors can specify a list of preferred devices: dev="eth1|eth0|ppp0" a) added a format of "%dev" which substitutes the active device or '<none>' b) added the ability to detect the IP and substitute it in the format for "%ip" - Named program sensors a) add "programname" to name and reuse an (existing) program sensor b) progam can specify a 'format' using positional indicators - Use double quotes with %quote
Patch from Jasen Minton |
|
|
|
|
|
|
|
|
|
|
Optimise |
|
Development Tools |
|
David Nolden committed changes in /trunk/KDE/kdevelop/languages/cpp:
|
|
Invent a new, on the long run much more efficient, way of hierarchically managing a global string-set repository. Intersection-tests and merging will be very cheap, so it will take away much of the overhead the lexer-cache created in kdevelop-3.4. It is not yet tested and not yet used. |
|
|
|
|
|
|
|
|
Inge Wallin committed changes in /trunk/KDE/kdeedu/marble:
|
Optimize memory usage by only having QPixmaps for those PlaceMarks that are actually shown. This saves a little less than 10% of the memory used by Marble, bringing it down from 63 MB to 58 on my machine.
The saving comes from the fact that there can potentially be 100,000s of PlaceMarks, but only a few 100 of them are visible at any given time.
Details: - Introduce a new class VisiblePlaceMark. - Move members from PlaceMark to VisiblePlacemark - Maintain a list of VisiblePlaceMarks.
A future improvement can be to move the list of VisiblePlaceMarks to the view, and have different lists for different views. |
|
|
|
|
|
|
Games |
|
Dmitry Suzdalev committed changes in /trunk/KDE/kdegames/klines:
|
Slight optimisation in background drawing plus some vars renaming.
Still startup is kind of not-so-fast. I figured out that KLinesRenderer::rerenderPixmaps() is faulty - it takes about 600 ms for medium-sized main window... It creates a bunch (about 100) of small QPixmaps and renders them from svg. Callgrind shows that most expensive call is QPixmap::fill(Qt::transparent).
But I have no idea how to implement this in other way. Scrathed my head for the whole day (while staring at this method) and came up with nothing useful... :) (tried to use QImage Slight optimisation in background drawing plus some vars renaming.
Still startup is kind of not-so-fast. I figured out that KLinesRenderer::rerenderPixmaps() is faulty - it takes about 600 ms for medium-sized main window... It creates a bunch (about 100) of small QPixmaps and renders them from svg. Callgrind shows that most expensive call is QPixmap::fill(Qt::transparent).
But I have no idea how to implement this in other way. Scrathed my head for the whole day (while staring at this method) and came up with nothing useful... :) (tried to use QImage & convert it to pixmap => same timings)
Perhaps some brilliant idea is floating somewhere near in atmosphere... I'm prepared to catch it immediately after I spot it in my line of sight ;) convert it to pixmap => same timings)
Perhaps some brilliant idea is floating somewhere near in atmosphere... I'm prepared to catch it immediately after I spot it in my line of sight ;) |
|
|
|
|
|
|
KDE-Base |
|
Luboš Luňák committed a change to /trunk/KDE/kdebase/workspace/kwin/scene_opengl.cpp:
|
|
I apparently misunderstood the semantics of texture_from_pixmap a bit - rebind only when the compositing pixmap changes (as in: a new one), not when its contents change. This finally makes TFP faster than SHM (70% vs 45% of non-composited performance) and should about match Compiz/Beryl. After this change also strict binding may finally make sense. |
|
|
|
|
|
|
|
|
|
|
Luboš Luňák committed changes in /trunk/KDE/kdelibs/kconf_update:
|
|
When the input config file does not exist at all, just skip the whole related update, this should noticeably decrease first login time (when all kconf_update scripts were otherwise run unnecessarily). I hope I was the only one stupid one to write .upd files in a way that'd break with this. |
|
|
|
|
|
|
Aaron J. Seigo committed changes in /trunk/KDE/kdebase/workspace/plasma/applets/clock:
|
* it occurred to me just now how to avoid half of the repaints in the clock when showing the seconds hand. *duh* * set the report seconds property in the ctor as well
(yes, i know that the direct qproperty method only works for idempotent methods) |
|
|
|
|
|
|
|
|
Other |
|
Development Tools |
|
Andreas Pakulat committed a change to /trunk/KDE/kdevelop/.krazy:
|
KDevelop is an application with no public libraries, so keeping BC is not needed. This means dpointer is not needed, so exclude KDevelop from dpointer krazy check. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
David Faure committed changes in /trunk/KDE/kdebase/apps/konqueror:
|
Started the big design cleanup: - Implemented visitor support to KonqFrameBase and children, to reduce interdependencies, moved printFrameInfo to visitor, and used visitor in unit tests too, to inspect structure. - Simplify KonqMainWindow ctor - Pass explicit mimetype to addTab() (fixed one performance bug, in kde3 branch as well) - Simplify splitView arguments - Unit tests for most of the KonqViewMgr API, to allow for further refactorings |
|
|
|
|
|
|
Peter Penz committed changes in /trunk/KDE/kdebase/apps/dolphin/src:
|
|
* move the "[ ] Show in Groups" checkbox from "View->Sort By" directly to "View"* same for the viewproperties dialog: don't hide "Show in Groups" under "Sorting" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Aaron J. Seigo committed changes in /trunk/KDE/kdebase/workspace/libs/plasma:
|
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. |
|
|
|
|
|
|
|
|
|
|
|
|
Aaron J. Seigo committed changes in /trunk/KDE/kdebase/workspace/krunner:
|
welcome our now system activity dialog overlord!
thanks to the awesome hacking of tapsell on ksysguard we now have access to the widget via a library and can therefore load the process table in-process. this makes popping up that window almost -instant- and with a very, very light UI.
we still have to do something about the slightly oddly placed buttons and add the expander to show system load, etc (and maybe a button/link to open the full sysguard app?). will talk and hack with john on these parts, but colour me one very happy camper right now. |
|
|
|
|
|
|
|
|
|
|
Matthew Woehlke committed changes in /trunk/playground/libs/ui/kcolor:
|
|
Test programs for KColorUtils::tint and KColorScheme::shade (specifically, these are what I used to tweak the algorithms), maybe they should move to kdelibs/kdeui/tests eventually |
|
|
|
|
|
|
|
|
Aaron J. Seigo committed changes in /trunk/KDE/kdebase/workspace/libs/plasma:
|
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? |
|
|
|
|
|
|
Robert Knight committed changes in /trunk/KDE/kdebase/apps/konsole/src:
|
|
Replace QTabBar with KTabBar in tabbed view container. Partly to follow the KDE guideline of using KWidgetType instead of QWidgetType and to enable easier addition of some user requested features. |
|
|
|
|
|
|
|
|
|
|
|
|
|