5th August 2007by Danny Allen
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!
|Commits||2720 by 224 developers, 6220 lines modified, 1557 new files|
|Bugs Opened||147 in the last 7 days|
|Bugs Closed||212 in the last 7 days|
Internationalization (i18n) Status
|Chinese Traditional (zh_TW)||
Bug Killers and Buzz
|Adriaan de Groot||
|Aaron J. Seigo||
There are 166 selections this week
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 :)
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.
#include kdefakes.h so we are sure to have the definition of setenv()
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.
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.
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.
- 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.
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 :)
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 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.
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
Comets (which aren't being labeled ATM)
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.
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.
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.
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.
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.
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 :/
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.
- 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
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.
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.
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)
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
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.
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)
* 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
from your ~/.kde/config/kopeterc
or replace it with
StyleName=Kopete (or whatever)
The PlasmaApplet painter works now.
svg = PlasmaApplet.widget("Svg")
def paintApplet(painter, rect):
svg.paint( painter, [20.0, 20.0] )
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.
* 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.
* Drop old "digits-assigning" algorithm, use new - much faster one which doesn't iterate over whole field
* Some code cleanups
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:
Speedup project loading by exiting the loop earlier.
Patch from opal scssoft com
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.
Remove the dirwatcher, it caused more trouble than its worth.
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.
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.
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.
* 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.
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
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.
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.
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.
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).
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.
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