Issue 70
5th August 2007 by Danny AllenThis Week...
krunner started to get search engine integration using xesam (well, a reasonable facsimile of it given that it isn't a completed spec yet) with strigi as the current reference implementation and the new krunner interface is approaching completion.
the control box, panels, menu, systray are on the hit list of things to kill off the list.
I have started the project from scratch. The new user interface is tab-based. This is very useful for people who need to connect to more than one remote deskop at the same time.
The new bookmark system and the improved KWallet (KDE password saving) support should help, too.
The user interface is now more KDE-standards based. A new configuration dialog brings a lot of new (requested) options.
The fullscreen toolbar now has the ability to be transparent.
This not only looks nice, but is also very useful to see things that would otherwise be hidden (e.g. the window title) without moving the remote window.
Of course, I have not only done user-visible changes. The VNC backend has been completely rewritten, and is now libvncclient-based. The old VNC backend was approximately five years behind the upstream source. This update has solved a lot of long term KRDC issues and makes new features possible. The RDP backend is better integrated and supports new features for rdesktop (rdesktop is used for the RDP support).
Planned features include (for example) NX support.
The new KRDC is already part of KDE 4.0 Beta 1. Try it out and let me know any comments!
Statistics
Commits | 2720 by 224 developers, 6220 lines modified, 1557 new files |
Open Bugs | 14095 |
Open Wishes | 12895 |
Bugs Opened | 147 in the last 7 days |
Bugs Closed | 212 in the last 7 days |
Commit Summary
Module | Commits |
/trunk/KDE |
981
|
/branches/work |
325
|
/trunk/playground |
302
|
/trunk/l10n-kde4 |
300
|
/trunk/koffice |
193
|
/trunk/extragear |
158
|
/trunk/www |
107
|
/branches/stable |
74
|
/trunk/kdesupport |
65
|
/trunk/l10n-kde3 |
60
|
Lines | Developer | Commits |
224
|
Matthias Kretz |
154
|
271
|
Laurent Montel |
149
|
205
|
Pino Toscano |
86
|
146
|
Andreas Pakulat |
73
|
206
|
Stefan Nikolaus |
58
|
50
|
Antonio Aloisio |
50
|
203
|
Clarence Dang |
44
|
70
|
Loïc Corbasson |
43
|
90
|
Dirk Mueller |
43
|
91
|
Christian Weilbach |
42
|
Internationalization (i18n) Status
Language | Percentage Complete |
Portuguese (pt) |
99.69%
|
Swedish (sv) |
98.96%
|
Greek (el) |
94.51%
|
Japanese (ja) |
93.38%
|
Chinese Traditional (zh_TW) |
89.42%
|
Spanish (es) |
83.6%
|
German (de) |
81.7%
|
Dutch (nl) |
76.81%
|
Persian (fa) |
75.84%
|
Catalan (ca) |
73.68%
|
Bug Killers and Buzz
Person | Bugs Closed |
Pino Toscano |
54
|
Stefan Nikolaus |
37
|
Bram Schoenmakers |
29
|
Harald Sitter |
19
|
Thomas McGuire |
15
|
Joris Guisson |
10
|
Mark Kretschmann |
7
|
Dmitry Suzdalev |
6
|
Percy Leonhardt |
5
|
Klaus Staerk |
5
|
Program | Buzz |
Amarok |
6305
|
K3B |
5640
|
KMail |
5120
|
Kopete |
4330
|
Kontact |
3948
|
Kate |
3880
|
KDevelop |
3205
|
digiKam |
2798
|
Kicker |
2436
|
SuperKaramba |
2154
|
Person | Buzz |
David Faure |
856
|
Sebastian Kügler |
854
|
Stephan Kulow |
771
|
Matthias Kretz |
654
|
Adriaan de Groot |
630
|
Allen Winter |
629
|
Waldo Bastian |
440
|
Aaron J. Seigo |
364
|
Boudewijn Rempt |
340
|
George Staikos |
322
|
Commit Countries
Commit Demographics
Sex
Age
Contents
Bug Fixes | Features | Optimization | Security | Other | |
---|---|---|---|---|---|
Accessibility | |||||
Development Tools | [] | [] | [] | [] | |
Educational | [] | [] | [] | ||
Graphics | [] | [] | |||
KDE Base | [] | [] | [] | [] | |
KDE-PIM | [] | [] | [] | ||
Office | [] | [] | [] | [] | |
Konqueror | |||||
Multimedia | [] | [] | [] | ||
Networking Tools | [] | [] | [] | ||
User Interface | [] | ||||
Utilities | [] | [] | |||
Games | [] | [] | [] | [] | |
Other |
There are 166 selections this week
Bug Fixes
Development Tools
1. Correctly store the reason of SSL certificate failure. This fixes a bug where "save permanently" checkbox didn't work, although the certificate file is saved and exists on disk.
2. Fix the order of memory freeness.
kcachegrind: fix hex code column with in InstrView
When hex code mode was disabled on filling the InstrView with assembly, we did not get any width of a hex column, because it was set manually to width zero.
Enabling the hex code mode afterwards did *not* show the column, because we still set the column width to zero.
Now, on refresh of InstrView data, we set the mode of the hex code column to automatic resizing, get the width, and reset to 0 if hex mode is off.
If we have the checkbox for "Automatically add extension ..", then why do we check for the existence of the extension in the file name ? When the checkbox is in the "off" state, I guess, it should allow to save the file with any extension.
I guess this also solves BUG #146061. Please verify :)
KDE Base
#include kdefakes.h so we are sure to have the definition of setenv()
Fix bug that caused corruption in KIO downloads and file copies.
The new KIO::Connection backend can receive and queue more than one MSG_DATA per loop.
That means KIO::Slave can emit data() more than once and, this, FileCopyJob would drop one data packet. Instead, simply append.
KDE-PIM
Change the filter commands for bogofilter.
The old behavior corrupted the bogofilter database because KMail unregistered messages which were not registered with bogofilter in the first place.
With the new behavior, messages which are classified automatically are no longer added to the bogofilter database.
For more details and a better explaination, see the bugreport and especially the bogofilter mail archives (linked to from the bugreport).
The export history to clipboard function allows for exporting all tasks.
Office
Fix moving command so it also works when you cancel the move half way through
Add feature that pressing ctrl will restrict the movement to one axis.
Multimedia
Wikipedia artist lookup would freeze Amarok if the artist was not found and the locale was not English.
This was because of this nasty detail: QString.endsWidth( "" ) always returns true, not false.
Networking Tools
Kopete doesn't crash anymore while accessing an UVC Video Device (tested with a Logitech Quickcam Pro 5000 - 2006 model. WFM. YMMV). The image is gray with some blue, red and magenta lines. I know what's the cause (image controls not implemented in V4L2, WIP, needs a new class and a way to put arbitrary controls on a widget).
V4L2 is enabled again (for some reason outside of my knowledge it was disabled).Partial implementation of YUYV and UYVY formats.
Games
Exclude the need for random guessing on the game start.
I.e. ensure that the first clicked cell will always be an empty one.
I got convinced after I implemented this feature and tried it :-)
Having this feature just lets the player to, well, play, instead of starting a dozen of new games until she finds the one where he didn't explode after a few first clicks.
Thanks, ossi :)
- Reset the clock to 00:00 at the start of a new game and not only after the 1st click.
- Stop the game before the 1st click. (There was a bug here by starting a new game before having a "game over": Time was still running...).
- Don't bother with the confirmation dialog of KGameDifficulty when the game did not start yet.
Features
Development Tools
Translation memory. (todo for tomorrow: add shortcuts for suggestions, move suggestions visual diff generation to thread, use projectid for db name, store db somewhere in $HOME/.kde.)
Greatly improved wordDiff algorithm along the way.
Added some config options (few regexps and colors)
Also, moved mergemode code from KAider to MergeView
- implement bulk sending
- reduce overhead by not sending a full path
Implement the widget using a .ui file and port to KDialog usage.
Also do some cleanup and use the document API of kdevplatform instead of the partmanager. One bug: The directory sync doesn't work, because the documentcontroller returns a 0-pointer when asked for active document, even if a file is open.
Implement project importing in a new way: import - opens the project, parse - parses one directory only
Educational
Tried to improve the .svg usage. Some parts are better now. Others are the same as before :-(
Added planets, comets, and Jupiter's moons to the list of classes using SkyLabeler to prevent label overlap. Cleaned up the SkyLabeler interface by adding drawLabel() and drawOffsetLabel() methods. In addition, added two static methods to SkyLabeler: setZoomFont() and zoomOffset() which allows us to share this code with StarObject and SkyObject so we can adjust the parameters for these routines in just one spot and always stay synced with the drawLabel() routines in those other classes.
Added an intermediate font size between the one used when zoomed out and zoomed in.
AFAIK, all classes in skycomponents that write labels (except LineListComponent) are using the SkyLabeler now.
The only thing left to do with the SkyLabeler is time shifting which will let us set the priority of the labels independently of when the objects themselves get drawn. I think this would be best implemented using addLabel( point, text, LABEL_CATEGORY ) where we have predefined categories for each type of label. This will also make it possible for us to let the users choose the label priorities.
NOTE: this is the HTM branch, not the trunk.
Preparing for primetime.
The indexing needed three tweaks in order to be ready for the masses:
1) Reverse precession correction in the SkyMesh::aperture() call.
2) Fine tuning of the LineList JIT updating.
3) Re-indexing of stars every 150 years.
The first one is done. The second is almost done and I expect to have the third one done by the end of today.
The reason the 2nd task is unfinished is because I don't know if the constellation boundaries should precess along with the stars or if they should be fixed to the Earth's axis like the coordinate grid.
If anyone knows if the constellation boundaries should precess or not, please let me know and I will implement it that way. Currently the boundaries drawn on the screen precess but the polygons we use to determine which constellation a point is in don't precess. It is easy to do it either way but I can't do it both ways at the same time (unless someone provides me with an Options::function() to let the users choose :-).
Also, added prioritization to SkyLabeler so the most important labels get drawn first and have a better chance of showing up since we no longer draw labels that would overlap existing labels. The priority
is currently:
Planets (SolarSystemSingleComponent)
Jupiter's Moons
Asteroids
Comets (which aren't being labeled ATM)
Constellation Names
Stars
SkyLabeler prevents labels from overlapping. You can adjust the vertical density with "F" and "G". The "B" keys prints brief statistics. These key actions are probably for development only.
The speed and size of the SkyLabeler both scale linearly with the number of screenRows (part of the "B" key output).
I implemented re-indexing of the stars every 150 years. I'm haven't run extensive tests yet to verify it is doing exactly what it is supposed to but it seems to be working and hasn't broken anything. The only big surprise was that it only takes 3 to 4 seconds to re-index all the stars on a single core of an amd64 3600+.
I'm working on precessing the constellation boundary polygons but this has turned out to be a little messy because the data is stored in QPointF's, not SkyPoints so I need to create a new SkyPoint for every point on the boundaries in order to do the precession.
I also need to re-index the constellation lines every 150 years just like I do for the stars because stars form the vertices of the constellation lines. To do this the right way I will have to change the data members that hold the index in LineListIndex into pointers (instead of simply values). I'll probably do this tomorrow.
I fixed a minor bug I had created in KStarsData where I was updating m_updateNum more frequently than necessary.
Finally, I found a bug in the constellation lines that I don't understand. You can see it by zooming in on Markab, Homan, and Baham in PEGASUS and setting the time step to one minute. The stars will jump away from the constellation line just a bit. I'm a little baffled by this because the vertices of the lines are supposed to be the actual stars so I don't understand how they could ever not line up. Also, you can jump back in time 1000 years and the stars are all attached to the lines again but if you march time forward at one minute steps, the little jumps appear again. I don't think this is an Earth shattering problem, it is probably due to my lack of understanding of the subtleties of updating StarObjects and SkyPoints.
I'll try to figure this out tomorrow.
Graphics
Try to extract the text entities (thus the text) from a DjVu document.
At the moment the granularuty of the extracted text is "word", as "char" is quite difficult to find in documents.
Kind of works, let's hope it will like all the documents around.
And... we're drawing plots :)
I'm leaving in the debugging code until I have a chance to go through it and document/refactor the kstvcurve drawing code.
The plots are still fully transformable via QGV. Rotating plots ;)
I'm still hardcoding the zoom box to this particular vector, but at least we're drawing this one good... more later.
Thumbnails with an alpha channel:
Do we want real transparency for thumbnails? I vote "no".
- remove the code that I added to speed up drawing by setting the composition mode to source.
This broke the rating pixmap, and thumbnails with an alpha channel
- In thumbnail creator: images without an alpha channel are not converted to have one.
Images with an alpha channel are composed over white to remove the alpha channel.
TODO: Find out if this is necessary. Find out about FreeDesktop spec.
Move the compressed files handling from openUrl() to openFile(), this way we can really handle remove compressed files.
Tested with local files only, remove files should work but their download seems to give broken files at the moment (kdelibs bug, I think).
This should hopefully complete the support for compressed files (eg .pdf.gz, .ps.bz2, etc).
Rewrite the special TagsPopupMenu action.
This was quite a major undertaking. But no, we have a very nice menu with a checkbox on the left, followed by icon and text.
Even the submenus have a checkbox.
All this is done by drawing directly with QStyle, so it needs to be tested.
TODO:
You will notice that the menu frame on the right is not drawn.
Actually there is code that draws it, but I dont know why it is not visible.
KDE Base
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.
Initial development of the BBC UK MET Office Ion. Right now, it can figure out the place name you typed and gets the 5 day forecast XML. No parsing of that XML is done yet.
Correct the fade out animation timing. Use KColorScheme to get hover background colour. Better margins around items. Draw group title.
Add methods to parse the Observation XML data. These need to be further refined. Create separate job lists for search and forecast. We have a big problem now with the user typing in locations that conflict. Ie, London. BBC returns a listing. aseigo, we'll have to discuss :/
Add intitial documentation for the font installation kcontrol module.
Global shortcuts system: Deletion of entries now becomes visible immediately + some miscellaneous improvements. The unit tests are already paying off. Unit tests are good :)
My first ever commit, so lets keep it simple and start as I intend to go on: add more unit tests.
Added XesamQueryLanguage queries support. Now is possibile to translate xesam queries formulated using XesamQueryLanguage (see <a href="http://www.freedesktop.org/wiki/XesamQueryLanguage">http://www.freedesktop.org/wiki/XesamQueryLanguage</a>) into Strigi::Query objects.
Work on the translation of XesamUserSearchLanguage queries (<a href="http://www.freedesktop.org/wiki/XesamUserSearchLanguage">http://www.freedesktop.org/wiki/XesamUserSearchLanguage</a>) will be integrated soon.
Added simple test program for strigi xesam query builder.
What does it do?
1) it loads a file containing the xesam query
2) it converts the xesam query into a Strigi::Query object
3) it serializes the Strigi::Query object to xml (the stream can be saved also to file)
The produced xml can be used for inspecting the Strigi::Query object and evaluate the conversion quality.
Implmented recursive/file monitoring modes when using inotify. FAMD implementation will be committed really soon (still some little problems to solve).
add the ability to include a screenshot with packages
Basic implementation of drag and drop re-ordering of tasks.
Basic dragging and dropping of one task on top of another to create a group.
* 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
o cleanups
o extract more data of the tweets
o download user images
Big improvement in parsing ms word files. With relative ease documents with mixed windows 1252 and utf16 codecs can be parsed.
KDE-PIM
- more dbus touchups
- note--we have to call KAboutData::setOrganizationDomain("kpilot.kde.org") so that our dbus connections show up as org.kde.kpilot.*. If we don't do that, then the reverse name is driven by the URL in the about page, which is <a href="http://www.kpilot.org/">http://www.kpilot.org/.</a> All of our dbus connections were showing up in qdbusviewer as org.kpilot.*, so none of the dbus communications were working.
- pulling out the KAboutData stuff from kpilot.cc, pilotDaemon.cc, and main-test.cc and putting it in kpilotConfig.h as a #define
- pilotDaemon->kpilot configure is now working properly, woot!
- have to make kpilot's configure a slot
make notes printing work again
Now working with new API changes across Drupal, LiveJoural and Wordpress.
KODecorationLabel:
* Work on size/sizeHint
* Fix: do not open a browser when clicked with no url set...
This should now be +/- complete and stable :)
Picture of the Day:
* Further reduce bandwidth waste!!
* Add ID to deco elements* Make method names more consistent and self-explanatory
Add more caching support and ability to select number of posts to download.
ktimetracker has now an open file option and a multi document interface. New files can be created which will be saved to a new location when the user explicitly wants to save the file or requests closing the file. There are some improvements on my todo list, so this is not the final but just the beginning...
Initial skeleton of the bluez bluetooth security backend and a few more changes. NOTE: Right now if I try to load the SolidBluetoothSecurity backend I get an instance of Solid::Control::Ifaces::BluetoothManager instead of the expected Solid::Control::Ifaces::BluetoothSecurity. Input welcome...
An Incidence (Event, To-do, Journal) can now be identified as RichText in an iCal file with the new X-KDE-TEXTFORMAT parameter for summary, description, and location properties.
For vCalendar and Qtopia formats, a heuristic is used to determine if these properties contain RichText.
More unit tests added.
Office
* Make it possible to create multiline connections.
* left click on canvas creates new control point, right click an end point.
This means connections should be more or less on par with what could be done with kivio 1.x
A working version of the mixer. Hopefully, this will work fine for you too.
It mixes correctly almost all colors. Do not be surprised that yellow and blue give gray instead of green: just "correct" them so that they're less "pure".
That's an obvious point, since in real paints, yellow and blue give green just because they're not pure. The same with other mixtures. I'll change the basic palette with a more realistic one soon.
This commit disable the whole illuminant-reflectance implementation, because it's not finished and it doesn't work as good as I want to. So the mixer uses a more basic "RGB/KS" color space, that uses RGB values as reflectances and then convert it to Kubelka Munk without any extra calculation. It's a pretty good approach until I finish the "real thing" (tm).
I removed (definitively) gmm matrices and std::vectors. The first because I do not need the features of gmm, the second because they're too slow (once I removed them, my mixer started to be smoothly fast again).
The mixer (temporarly) doesn't depend on glpk (GNU Linear Programming Kit), until I reimplement the illuminant-reflectance color spaces.
So... enjoy something quite interesting, finally! :-)
Implemented writing off pattern fill style. This requiered special handling because the actual pattern images had to be written too.
So the KoShapeSavingContext now has functions to add the pixmaps and write them later to the odf store. I added a helper class KoShapeStyleWriter for handling the shape style adding and writing of the office:styles styles for convienience. Added a new StyleFillImage style type to KoGenStyle for fill-image styles.
added a new path selection tool based on KoCreatePathTool
add code for testing krita file loadingadd the "official" png test suit (that krita miserably fails, not surprisingly as it was allready known that png files needed to be at least of 64x64 to be correctly opened ;) ) and some other files that krita can open but that were causing problem in the past (and for which I know that I can make them public)
Auto-update of the statistics. After the user stops typing, update the statistics automatically. Thanks to Tomas Mecir for the idea.
allow reading of png file with bit depth != 8 and != 16 (doesn't help much for the test suit, as reading of small files is still wrong)
Improve document saving by removing the useless draw:frame and draw:text-box tags.
That way the document really looks like an OpenDocument Text, and not a generic OpenDocument file with a lot of text boxes...
internet access again after two weeks of unforeseen abstinence results of hacking session at the beautiful Challes-les-Eaux with view to the alps
- removal of kformuladefs
- clean up of includes
- reworked cursor handling
-> great simplification in comparisson to the old way
--> on the road to a usable cursor
Multimedia
Sending all doubleclick events from the QListView to the relevant scene.
It works!
Except to see more of these as poor Playlist::View morphs into QGraphicsView.
Got playlist animations to work, but it uses some a lot of CPU time.
You can see for yourself by double clicking on some text in the playlist to start the cursor. Going to try a slight variation on this that probably won't work either and then think of something new hopefully.
big thanks got to Lee Olson for the spiffy current track svg! now added current track data engine, as well as current track engine. i'm having problems putting the text inthe right place, that is a problem for tomorrow. also, plenty of various other fixes etc.
added workaround code for matrixForElement. you will currently need to patch plasma for this to work, i have patches to plasma pending on the panel-devel list that need to be approved.
added configuration box for the current track widget, although it looks really f*cked up right now, not sure why. also, now displays the album art! it even resizes if you make the applet bigger... but only on next track as it needs to tell the engine what size to return the pixmap. that is all.
Making a new Interview view from scratch using QGraphicsView.
So far adding items and clearing the playlist works. Still don't have width sorted out though.
As discussed in my blog, this is to allow simple animations for now (text editing) and perhaps more advanced animations in the future easily using all the GGV tools.
* Highlight selected tracks. Will need to implement shift-click selecting.
* A gradient overlay for the currently playing track.
added new last.fm svg. looks *much* better than before... basically gutted all the previous last.fm code in order to use the new svg.
beginning of layouting code, but i need to resolve a few issues with subclassing/reimplementing Plasma:: classes.
there is (again) a crash on exit, i removed the call to clear() from ~App, because it was broken (ContextScene::appletDestroyed is broken, i need to do more investigation)
some reworking of the column layout. no crashes, but it doesn't work, even though columns report the correct positions, they still appear stacked instead of side-by-side. committing now as i want to change direction but want to save what i have so far.
Networking Tools
* Better RDP (rdesktop) integration:
* Option for sound output (local, remote, disabled).
* Line Edit for additional rdesktop arguments. This way experienced users can use all rdesktop options inside KRDC, but the UI does not become bloaded. Probably I will more important and often used options to the UI later (if there are more...).
* Explanation in the RDP tooltip for port option.
* Toolbar has autohide / sticky feature back.
* Fix changing config could lead in a removed start page.
* Forward port form okular floating toolbar: Port form KImageEffect to QLinearGradient. Thanks Pino!
Promised patch that makes Kopete use chatwindow style names instead of style paths.
Few things are still todo: like figuring out whether global directories follow local ones as returned by KStandardDirs or vice-versa, and adapting the code to prefer local styles over global ones with the same name.
If you currently have some style set, I think you'll want to remove
[Appearance]
StylePath=/path/to/style
from your ~/.kde/config/kopeterc
or replace it with
[Appearance]
StyleName=Kopete (or whatever)
enable word-wrap for info tab in chat window. really helps if you have crazy people in contact list
User Interface
-arrows now drawn antialiased
-pushbutton geometry fixed
-textposition inside non editable combobox changed a bit
-groupbox title placement fixed
-tab widget now draws frame border correctly when no tabs
removed lots of unused code
make oxygen round buttons look better when color is very dark/light
finally fix the dark-color bg behavior like I said needed to be done in the initial commit :-) (well, we'll see what pinheior thinks but it is at least much, much better)
implemented preview variable editing. it's a nice way to play with different values... :)
Utilities
Make a screenshot that works. Thanks to the code from fredrikh! Solves the distortions.
The PlasmaApplet painter works now.
import PlasmaApplet
svg = PlasmaApplet.widget("Svg")
svg.setImageFile("widgets/clock")
svg.setContentType("ImageSet")
svg.setSize(150.0,150.0)
def paintApplet(painter, rect):
svg.paint( painter, [20.0, 20.0] )
PlasmaApplet.setPainterEnabled(True)
PlasmaApplet.connect("paint(QObject*,QRect)", paintApplet)
Games
Meet shiny new theme with nice animations from it-s!
Background is still a to-do as Eugene mentioned.
There's still unsolved bug (in klines I think) - the pixmap cache is discarded only partially on theme switch. You can do some resizes to regenerate pixmaps until bug will get fixed.
Thanks Eugene!!!
* Implement field generation on the first click - now you won't blow up from start :-)
I don't think that it should generate the field in a way so the first click is on an empty cell - this would be too easy IMO.
Currently it just ensures, that first click is not on mine.
Objections?
* Drop old "digits-assigning" algorithm, use new - much faster one which doesn't iterate over whole field
* Some code cleanups
Optimization
Development Tools
Only load the icons for the completion-list once and store them. Looks like KIconLoader does not do any fast caching.
Several obvious optimizations that make file scanning (for translation memory) faster: done ru/messages/kdebase and few others (18mb) in 50 seconds (kaider scans in background so you may translate files while it works).
Shortcuts for suggestions.
Database is stored in kaider data dir (~/.kde/...), its name is based on id of the project (hence new option in project config).
I added screenshot to techbase page:
<a href="http://techbase.kde.org/Projects/Summer_of_Code/2007/Projects/KAider">http://techbase.kde.org/Projects/Summer_of_Code/2007/Projects/KAider</a>
Speedup project loading by exiting the loop earlier.
Patch from opal scssoft com
Educational
KDE Base
Index entries are now stored as a tree instead of as an array.
This allows us to do binary search to find an entry with given key which is much faster than linear search.
The linear search had overhead of about 1us per entry (on my quite fast machine), so if there are thousands of entries in the cache it accumulated to several milliseconds per find(). And if you need to find several entries(some apps need hundreds) then the overhead got quite big.
Office
Severly limit the areas that are being redrawn to only the parts that are needed. Now I can edit a vector shape again without my laptops fan making a lot of noise :)
Games
Somewhat big optimization
Do not do two contains() calls + 2 [] calls (4 "searches") when one constFind is enough
BTW, this file is using both tabs and spaces for indentation ... insane!
Other
Development Tools
Copy autobind to playground/bindings in order to start porting it from KJSE to QtScript
Remove the dirwatcher, it caused more trouble than its worth.
Educational
Move UI file include from the .h file to the cpp to make it easier to use for external applications.
Thanks to Prashanth N Udupa (<a href="http://prashanthudupa.livejournal.com/">http://prashanthudupa.livejournal.com/</a>) for his nice work that promted this.
Graphics
As requested by Florian, set the defaul annotation author to the full name of the current user, or to the username if there's no full name available for it.
Change/set the efault shortcuts for some actions:
- the tools now have Ctrl+1/2/3/4 for Normal, Zoom, Select, TextSelect modes resp.
- the Show/hide navigation panel has F7 now, Ctrl+L conflicts with Konqueror
KDE Base
* call prepareGeometryChange when the darw default background setting changes
* add in a completely untested-but-should-work ;) implementation of config ui loading; requires a package with config/ui/main.ui and config/xml/main.xml in it. should shave 7LOC off of the clock's Script.js, which is ~10% of the code line count!
The new version of kDebug() & family.
This now uses QDebug for output, as opposed to the previous, own class. This also means that it automatically adds spaces, the final newline. And you can use all QTextStream manipulators. No more QVariant-based stuff either.
Drawback: we cannot override Qt's operator<< functions that already exist.
Temporarily, this new code eats up final newlines from kDebug (but not other outputs). As soon as the "endl" are gone, I'll remove this temporary code.
Add some notes on the goals of the tasks applet for KDE 4 and grouping UI concepts and interaction. Also added some abstract classes related to task grouping which will be used later on
Implement AccessibilityPrevious, AccessibilityNext, and AccessibilityAccept(the enumerators to access widgets embedded in the completion-list by keyboard). The general rule now is: When you press shift while navigating in the completion-widget, you navigate within the embedded widgets. shift+return triggers AccesibilityAccept, shift+up/shift+left triggers AccessibilityPrevious, and shift+right/shift+down triggers AccessibilityNext
move Phonon-NMM to playground (no 4.0 material :-()
I couldn't get anyone to complain about this, so here it is... the Big Massive Update to KDE4PORTING.html
This does the following things:
- s/<li>/<p>/ for 'deprecated', 'renamed', 'removed' etc.
- Use consistent wording for the above (instead of e.g. 'deleted', 'removed' and even 'gone').
- Reshuffle classes into correct modules (and to a limited extent, try to alphabetize better).
- Changelists now appear under the NEW class name/module.
- Try to list such classes in the module overview from which they were removed.
- Renamed classes have the 'renamed' line and link to the new name (when there are other changes).
...and maybe some other stuff I forget about.
Most keys are in form "<foo><bar>" where <foo> is either constant or one of very few choices.
This sucks when searching for a key because we need to compare several superfluous bits and the tree goes out of balance because many entries are alike.
So now we prepend key's checksum (in hex) to it. It makes the tree much more balanced (it's now only about two times as deep as optimal one would be) until I implement real balanced trees and it savessome character compares.
Assure that the view properties of a column view are always stored in the folder represented by the first column. It is assured now, that all columns use the same view properties. Although one reason is because of technical 'restrictions' (KDirLister properties like 'show dot files' are applied to all sub directories too), I personally think it also makes sense from a usability point of view.
- A working version of the plasma analog clock written in js
- Don't print stuff each time we paint, it's annoying
new approach: don't fight against the selection behavior of QColumnView, but improve the visual appearance be indicating the shown folder visually
branch off yesterdays code to work on the changes we discussed last week here at Trolltech
there's only no difference between audio/video anymore. Video effects might not get supported at all but rather support Quasar.
Add global setting for smallest readable font and remove the static variables from the header, as suggested by Thiago.
Remove fourcc from the api. Use our own colorspace formats.
Their list will likely change over the next two days.
Don't let the VideoDataOutput set the format (we want the conversions to happen on the layer above, in here we want just decoded frames)
Adjust fake backend to those changes.
KDE-PIM
Branch to add security features to the solid bluetooth stuff.
The filename is no more loaded from config file. instead you can start ktimetracker with no argument to load the stadard file in apps - directory or give a custom filename to store data in it.
This step is b/c of switching ktimetracker to a multi file application, where you can open and manage several files. This progress is already in work but not comittable b/c of too many crashes at moment.
Import pimpl_ptr.h and kdtoolsglobal.h from www.kdab.com/kdtools for the home feeling
I commented out this screenshot for the time being. It is unknown what plugins will be available for KDE 4 and Kontact so there is a good chance this section will get rewritten.
Since I am working on KDEPIM docs, I have this as a TODO so I will automatically be highlighted when working on it.
Office
I know many people have been waiting for this one;
* Don't bother the user with a dialog when inserting a non-text shape
This means you can drag and drop a shape onto a KWord document and get it inserted without a dialog being shown. The default settings should be good enough, and the user can change those afterwards easilly.
Move the switching of knot-type from right-mouse-button to left + shift.
This way we can allow context menus again and we are a little more compatible with inkscape. The only difference there is that we switched ctrl and shift for consistency (ctrl-click is alter selection everywhere).
KOffice 1.9.92
Multimedia
never compiled anyway - would be nice to have a Phonon-KPart as replacement, but Kaboodle has to go...
move gst2 backend to playground
(lib)kmid is gone
Networking Tools
Utilities
work done on porting kompare to KDE4 by me at akademy. I won't go into details of exactly what because there's too much.
A lot is just s/kdDebug/kDebug/ and s/URL/Url/.
Other things included are porting the config code to the new APIs, removing some redundant stuff in kompareshell, and removing my ghastly hack to override splitter handles in Qt3 because trolltech allowed the overriding of them in Qt4.
More porting work. Some code for graying out as we did in the 3 series. It seems the kde logout screen does not use it any more, so we have to come up with something else. The implementation in this commit is pretty slow, so we need something cooler.
The gray down effect is back and up to speed now. Commit before I start moving it to it's own file.
We are now able to connect a Plasma::DataEngine to a SuperKaramba meter-widget and it works fine :)
See also the second sample at <a href="http://techbase.kde.org/Development/Tutorials/SuperKaramba#Plasma">http://techbase.kde.org/Development/Tutorials/SuperKaramba#Plasma</a>
As SuperKaramba uses Kross for running themes, Python is now optional.
- Move the check for Python to the CMakeLists.txt of SuperKaramba
- Add config-header for ifdef-ing the remaining legacy Python binding code
- Compile the Python binding code only when the lib and includes are found