8th July 2007by Danny Allen
the developer sprints, the increase in project specific branding and merchandising and just the general maturation of each of the teams is all resulting in good things.
i've received comments from some of the people visiting who aren't from the kde community about how friendly and open the event has been; and i have to agree. it's been a hugely successful event with very useful and important discussions touching just about every part of kde happening.
there's also been a lot of hacking with things like the infamous krunner bug finally getting fixed (lubos is a god; and even then it took god most of the day to figure out the problem which was in the netwm code in kdelibs), lots of plasma engines and other work, amarok hackery, edu apps greatness ... the announcement of webkit in 4.4 eclipses my excitement for widgets-on-graphicscene even, and seeing zack's opengl widgets on plasma is amazing =)
it's all too big to keep track of and visualize at one time, and it's moving yet faster. we haven't hit a scalability wall yet. i think that is in part due to the amazing people we have involved and in part due to us actually thinking about these things in past years.
Aaron condenses the widely-held opinion (and one that I personally subscribe to) that the "KDE Community" - which is in reality a composition of many smaller and highly-focused families - has never been as strong, vivid, and vital as it is at this point in time. With this energy, we can expect great things from KDE 4.
- Final Fantasy
- Mario Brothers
- Space Invaders
Currently, Kolladev is about 20% complete, with support for creating a game project, adding levels to the game project, and placing tiles into the various levels. Kolladev also supports level saving/loading. Kollagame, which is only currently about 1% complete, supports loading a current level.
What are the future plans for Kollagame and Kolladev? Kolladev is going to support advanced IDE functionality. For example, a user will be able to drag multiple items onto a treasure chest (including enemies, spells, and powerups) as a way to link items to a treasure chest. The user will also be able to drag items into enemies for the items the enemy will drop after it is killed. Each object in the game will have a series of properties that the user can set, to adjust the nature of the object. Also all spells, enemies, characters, weapons will support a scripting language to allow more advanced users to create custom objects. One last feature that Kollagame will support are mini games. As you know from playing Role Playing Games (RPG's), many of these games have mini games for winning special weapons and items - and even powerups. Throughout the development and planning of kolladev and kollagame, a lot of thought is going into customization and ease of use.
Here are some current development screenshots:
|Commits||3081 by 241 developers, 6742 lines modified, 1605 new files|
|Bugs Opened||197 in the last 7 days|
|Bugs Closed||137 in the last 7 days|
Internationalization (i18n) Status
Bug Killers and Buzz
|Adriaan de Groot||
|Aaron J. Seigo||
There are 182 selections this week
Make fortune work when variable expansion is turned off
- Added a version of the qtscript interpreter that supports loading QScriptBinding plugins.
- Added a plugin version of the uiutils and dbus bindings
- Added an initial version of the socket object implementation (currently incomplete)
- Renamed some methods to avoid infinite recursion where the C++ code looked up C++ methods that were exposed to js rather than user supplied js code.
- Added an exit method to the uiutils class.
1. Use text-archive instead of polymorphic archive for serialization. Compliation on 64-bit should work again. 2. Re-enable teamwork compilation. It is quite probable that the change of the archive also solves the other boost compilation problems. If it does not, contact me.
New Glossary with basic TBX format support.
KAider displays relevant (terms and their translations) on-the-fly and provides shortcuts to insert them into msgstr.
Also, you can add new glossary terms via context menu of the glossary.
It is a good idea to start filling glossaries for YOUR language and commit them as l10n-kde4/<langCode>/terms.tbx
see details on <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>
lower krazy warnings count along the way.
Make searching for a parsed chain in any environment work.
Also take enforce proper ordering of IdentifiedFiles to ensure consistent ordering when they are the key of a QMap
David, can you check that you're happy with this + it doesn't introduce any regressions (since I am new to the IdentifiedFiles class)
Port to Qt4's QProcess:
Now raw loading works!
QProcess is used here without an event loop, a lot of complexity is removed from the code, it can be used from everywhere outside an event loop context, and the problems with stopping the process at application exit is resolved.
libkdcraw from trunk (KDE4): update internal dcraw version from 8.60 to 8.76 (backport from KDE3 branch).
New digital still camera supported are given below :
Apple QuickTake 100
Apple QuickTake 150
Canon PowerShot A630
Canon PowerShot A640
Canon PowerShot A710 IS
Canon EOS-1D Mark III
Fuji FinePix S5Pro
Pentax Optio 750Z
I will add later new settings like chromatic aberration correction for ex.
Add the possibility to remember the contents of form fields when closing a document, and to restore them when reopening the document.
For now it's disabled, as I want to investigate a bit more with poppler wrt text fields, and to verify if that is an acceptable behaviour.
Change how we collect weather data. Now actually displayed real weather information. Add additional ion methods for weather observations such as pressure, visibility, dewpoint and such. Changed some of the weather data class member variables to use float had wrong type since XML data was not integer.
Support for per-session randomized color schemes. Mainly useful to allow each new session (from a particular profile) to have a different background color to make them easier to identify at a glance.
Randomization is specified in the color scheme as the maximum amount of difference in hue, saturation and value which a color is allowed to be randomly changed by. No GUI controls for this yet.
Added a 'Black on Random Light' color scheme to make use of this facility out of the box.
I've been hacking during akademy but unable to reach an internet connection. So sorry for the long commit.
User visible changes:
* Remove check box for showing totals
* Move kill button to next to the search line
* Do not pad the name column with a blank icon when in tree mode.
* Limit drawing the cpu usage to 100%. I'm not sure whether to show larger than 100% in some way. (E.g. using 2 cpus )
Developer-user visible changes:
* Add showTotals property to the KSysGuardWidget so that it's modifiable from designer
* Add updateIntervalMSecs property to the KSysGuardWidget
* Add setState property to the KSysGuardWidget
* Document the classes better
* Keep track of when a process was sent a kill signal. This is useful for pretty animations etc, but also useful for asking the user whether to kill -9 after some period of time, if the app refuses to die nicely.
* Remove various unused member variables. Stupid leftover cruft :(
* Use an enum for the process filter state, not #defines
* Expose the enum as a Q_PROPS and make it setable from qt designer
* Rename the function killProcess to killSelectedProcesses and killProcess(QList) to killProcesses. Same for reniceProcess.
* Make updateIntervalMSecs settable, instead of hard coded.
Significant changes. Now differentiates between 'Windsor, ON' and Windsor, NS'. Prepare dataengine support for Applet, need to see how to pass the list of cities each Ion supports to the Applet configuration (SLOT, SIGNAL likely). Allow for custom properties to be set for each Ion with setIonOption().
* Update the regular expression for the Url filter. Anything in the form letters://any-non-whitespace-characters is treated as a Url
* Correct the test which compares the old and new values and ranges when updating the terminal display's scroll bar.
This fixes the scroll bar being repainted unnecessarily often. Found with the nifty QT_FLUSH_PAINT debugging tool.
* Select the profile name (set to "New Profile" by default) and focus the profile name edit area when showing the Edit Profile dialog for a new profile to allow the user to easily set the name.
* Always use color scheme list animation, not just when the Edit Profile dialog is first displayed as per richmoore's suggestion.
* Update Edit Profile dialog caption when profile name is changed.
* Update favorite status icon in Manage Profiles dialog when the favorite status is changed by another object.
* Add disabled menu item which is shown in the 'Change Profile' list when there are no other profiles there
Experimental fade effect, blatantly inspired by compiz.
Note that this while this can reliably fade opened/closed windows, it will only fade opacity/brightness/saturation changes from previously loaded effects. Until we can specify effects' loading order, the results may not be what you expect. Don't be too surprised if this gets reverted.
When a virtual desktop is changed with separateScreenDesktops enabled, the following happens for each client if it's not on the correct screen:
1) Geometry updates are blocked
2) Maximize state is saved
4) Moved to the correct screen, with the same dimension proportions
5) Maximize state is restored
6) Geometry updates are unblocked
1,2,3,5 and 6 are new in this commit.
Make KListView capable of drawing categories on our own way. This make things easier when we are trying to customize it. We can also benefit from KStyle if some day it supports category drawing.
KListView keyboard navigation. Trickier than I thought.
Pending renaming to KCategorizedView. Seems a good name.
+ Disable old medianotifier autostart, it now has to be loaded explicitely to be used.
+ Add new applet solidnotifier wich will in future show new devices. I put it directly here because it was a default applet wich will be loaded on start. Send me email if problem.
+ Modify solidnotifierengine in order to connect it with solid. Just connect signal, no filter and so
+ Problem in solidnotifier applet-> don't find the solidnotifier engine. See it later.
Vertex redesign - redo the way windows are split into smaller parts for use in effects (and not only).
Now a list of window quads (=window areas) is created at the beginning of the paint pass, prepaint calls can modify the split itself (i.e. divide it into more parts). The actual paint calls can then modify these quads (i.e. transform their geometry).
This will allow better control of how the split is done and also allow painting e.g. only the decoration differently. Still work in progress, but it works.
Also pass data to prepaint functions in a struct, as there is already quite a number of them.
Improvements. We now do some parsing in the engine to allow things like traversing the modules and components, and having links to the html versions of the lists.
Also, the number of issues is returned on its own, so an applet can translate "issues" into the relevant language.
Put the creation of all actions not stored in a member variable in a private scope by enclosing the relevant lines in a pair of curly braces. This prevents accidental usage of those actions outside their scope as it has happened with the 'Select All Messages' action that was inadvertedly 'merged' with the 'New Subfolder' action. And while trying to compile after my change I found that the 'Remove duplicates' action was also 'merged' with some other action.
*added intersect selection action only used the rectangle tool at the moment
*added combobox to switch between pixel and shape selection
*rectangle tool now uses the KoRectangleShape if possible which makes rounded rect selections possible
* Use the shape property for text direction and use that for the text direction in new paragraphs. Using 'auto' (the default) will make sure that the text direction is detected while typing using a pretty smart concept of how many characters there are that are LTR v.s RTL in that paragraph.
* I also added a button that allows the user to switch layout direction of the current paragraph.
* update KoAction API slightly
Make the chart show up in the widget. This is a huge breakthrough!
We are now using KDChart version 2, and the Qt Model/View architecture. From here on, it's just a case of implementing the rest of OpenDocument and create tools for manipulating the chart.
One annoying thing: When I click in the chart area, the chart disappears. It appears as if something is covering it up. I guess I'll be able to get some help with that.
+ Now, clicking on the color spots increases the Paint Volume. Basically, the mixing algorithm works:
with very different amount of wetness and paint volume, it is clearly working. Still, it needs some tweaking because I've to get a role for pigment concentration, and let wetness to play a more important role.
Binding Bye, bye Cell- and ChartBinding. Welcome Binding!
Replace Cell-/ChartBinding by Binding. It is resized on cell range/column/row
insertions/removals and it provides a QAbstractItemModel one can use as data
provider. The model is encapsulated as one need an object pointer to connect to, but
the RectStorage does not take ownership of pointers.
This commit implements *true* alpha-blend fading for ContextBoxes in GraphicsItemFader, and it's fast too. This means that varying backgrounds like gradients and the like should correctly render. This does mean that it won't work for pixmaps, so if we want to fade pixmaps we'd have to figure something else out for them (although pixmaps contained in ContextBoxes should probably fade), or have the old method alongside.
One issue: Switching from QGraphicsTextItem to QGraphicsSimpleTextItem causes the title bars not to display...haven't figured out why yet.
Allow to receive ICQ online status messages.
Show status description if client supports it (in ICQ 6 it's called status title).
Add code for new TLV based user info.
Add a start page. It is shown by default at startup and should help to find out the proper protocol and makes the app look a bit friendlier. Later I can also add here for example recent used addresses or remote server bookmarks.
(It needs a small BIC change in KUrlNavigator next Monday to be committed, but it works already.)
I added a new class in libkdegames: "KGameDifficulty".
In many games, the player can select and change the difficulty level. Until now, this is rewritten from scatch in every single game and it's not uniform. With KGameDifficulty, it should be easier and more consistant.
- The class uses the standard icon "games-difficult.png".
- It's possible to use between 1 and 8 "standard" appelations for the levels (like "Easy", "Medium", "Hard", ...) or to customize them (and have more) if needed.
- The class can ask the player to confirm, if he wants to start a new game to change the difficulty level, so that the game itself doesn't need to care much about this.
- It's possible to defined a custom difficulty level (with a configuration dialog that has to be implemented in every game).
The class is in a 1st draft state. It's working, but not yet full documented and wihout D-pointer yet.
We should also discuss if it's OK to select the difficulty level in the menu bar and / or in the toolbar. Or if we also want a independant widget for this, that could be placed in the status bar for instance, like in bovo right now.
We should also include the menu item "Game difficulty" in the standard UI RC file of kdelibs. Before that, it has to be explicit added in the UI RC file of every game using this class.
So, please give some feedback. :)
(I spoke with Johann about this change at the aKademy.)
I fixed also KBlackBox to use this class now. It's the first game to use it as a proof of concept. (And in KBlackBox it's better to have predefined difficulty levels, so the player doesn't have to configure the number of balls and the grid size like before).
If the feedback is good, I would be glad to fix the other games.
Speed up image selection pulls from the document by changing the transparency mask cache to be the actual mask used for the transparent image - rather than a "brush" used to set mask pixels to transparent.
I have no idea why I originally opted for the more complex "brush" method when this is so much easier and executes faster.
Basically, we've inverted the meaning of each pixel of the cache, and transparent pixels of the base image are now transparent in this cache, rather than being treated like any other document pixel.
This means we don't have to use the deprecated and slow kpPixmapFX::paintMaskTransparentWithBrush() anymore.
Transformed EventListenerQueue into a StrigiThread child.
New features added (for performance improvement):
- simplify events, for reducing the number of events to be executed
- added event caching, prevents cpu hammering when frequent updates happen on single/multiple files
- use a pyramid to get an estimate of the camera curves at lower size, this decrease drasticaly the time needed to estimate the curve- limit the size of the image used for estimating the camera curves to 1000, this gives better results with noisy image (like with cheap camera), and I am not sure it is a problem with high-end camera, but I don't have one to test
Update to Astyle 1.21
Fixes: BUG:138699 and BUG:69106
clean up session workflow: when starting kate, the user can choose between
* Open (selected session)
* New Session (popup menu)
* Empty Session
* Use selected session as template
The hard coded "Default Session" is gone now. Instead, there is a new menu entry "Session > Save as default", which saves the configuration to share/apps/kate/default.katesession. All other sessions are still in share/apps/kate/sessions/*.katesession. New sessions use the configuration of the default.katesession.
Still polishing needed.
*Took away the alignment toolbar, and made it into a menu.
*Default Programing language is now stored as an enum (int) rather than string in config.(makes integration with KConfigXT easier)
*Some other string and margin related stuff (very small :P)
digikam from trunk (KDE4) : WhiteBalance Image Editor plugin is the first plugin ported to KDE4!
Marcel, Laurent: you need to install the minimal libdigikam shared library to be abble to use it on your computer.
We can now start to test the port on plugins framework under KDE4
Port to new selection and document API. KolourPaint finally compiles after days.
In summary, the API changes mean:
* Selections now finally have a proper class hierarchy
- It is now actually possible to maintain the selection code since it's all been split into separate files
- You can't accidently invoke text operations on image selections nor image operations on text selections anymore
* Text selections with no text are treated now as selection borders, so creating text boxes should not mutate the document, until text is typed
* Bugs have been identified even in KolourPaint/KDE3 (see added TODOs)
- Text selections are unlikely to work
- As we can't create an instance of the abstract kpAbstractSelection, we use pointers more often and so there are probably more memory leaks
- There were lots of change so I've probably broken lots of other things.
digikam from trunk : re-enable Color Management settings without using SqueezedComboBox but QComboBox instead.
There is an indeep bug in this widget ported to KDE4 which crash showfoto. Need to investiguate...
Laurent, SqueezedComboBox KDE4 port have be done by KOffice team. To be clear, this widget have been created by digiKam in the past, used in Koffice and ported to KDE4 as well. I have just backported this KDE4 port in digiKam without check the implementation.
Perhaps it will better to do a common widget in kdelibs...
First phase of porting done, and things look pretty well
- main window shows up, and is populated correctly
- thumbnail viewer works to a large extend
- It is possible to view simple images
- the datebar is fully ported and working
good progress in this short time, so I'm confident it will be fully ported when my holiday is over in three weeks from Monday.
remove borders around the content area allowing one to mash the mouse against the borders of the window when maximized and scroll! also removes yet another double line; now i need to add some visual differentiation to the statusbar because right now it blends a bit too much into the whole.
also remove the borders the buttons
First dumb and far from complete version of kfeed, a library for handling feed items (in memory representations, with status and whatnot, opposed to libsyndication which does parsing and only parsing), including a serializer to XML (Atom) and back
Nope, this doesn't need any kpgp headers.
In fact, kleo is not dependent on kpgp at all, contrary to what the dependency graph had shown.
Only KMail and KNode need kpgp, and we'd like to replace that with pure dependence on gpg.
IOW: the kpgp library should be moved back to kdepim from kdepimlibs and eventually be removed entirely.
GUI Some consistency:
Move the "Delete" command (complete clearing) into the "Clear" submenu.
Move the "Remove Link" command into the "Clear" submenu.
Move the "Validity..." command into the "Data" menu.
Remove the "Remove Comment" action, because there's already "Edit/Clear/Comment".
Remove the "Comment" submenu in the "Insert" menu.