23rd July 2006by Danny Allen
But threading is not enough. Actually, it's a bit *too* logical for most human minds to arrange e-mails in such a tree structure. Furthermore, KMail threads has some other problems:
- It's hopeless to navigate in a thread of 70-80 e-mails since most relevant information is indented past the right margin.
- A thread is sorted by its root e-mail and not by its most recent e-mail.
- Sorting is based on the time an e-mail was sent, not by the time the e-mail arrived. I suspect that humans prefer to work best with a kind of mixture of these two.
- The sorting of a folder isn't honored inside a thread.
The conversation metaphor groups all related messages as a conversation, much like KMail threads. But where threads are a tree, a conversation is a plain flat list. The whole conversation is sorted by the date and time of its most recently received message. In the e-mail view, the entire conversation is shown, but old and already read e-mails are collapsed per default. Thus, the unread e-mails are shown per default, but the older ones are easily accessible.
At this stage, all the main parts of the implementation are "there", but the e-mail view is terribly bad and doesn't support collapsing or expanding e-mails. Furthermore only dummy data is used, not the akonadi backend. The conversation list is pretty much "finished", but not "done".
When SoC ends I have some wider plans, but I'm keeping them to myself to avoid the risk of vaporware. I like hard code to show my ideas rather than fluffy words.
Our approach was to modify the core of WebKit as little as possible and only add our own porting layer into the platform component. As a webkit committer, I will be responsible for merging patches upstream while we continue with this fork of the WebKit code. Apple has expressed interest in having as much as possible of this code merged upstream. I think we can even put our cmake files and platform directory into the WebKit SVN.
All in all, this simply means that we have a port of WebKit to Qt4. The interesting part starts here. We can wrap this port with a KPart and really compare it to KHTML in trunk. If it turns out to be roughly equivalent from a technology point of view, then I think it would be great to start porting all of our recent work into WebKit. I'm referring to the work done recently by Allan, Germain, and Maksim in particular. If we were able to keep sync with WebKit (and possibly do some organizational shuffling), we would have a much larger developer base for our engine, while at the same time reducing the impact on our own development team. I think this is a win all-around. In the future, if we don't like where WebKit is going, then we can re-fork, so we're never committed.
In terms of organization, I would insist that we are equal partners with Apple and all other WebKit developers if we go down this road. KHTML is as important to us as it is to them, and our contributions are just as significant. I think we can work together as a team, and it's definitely worth a try.
KDE 3.5.4 will be tagged on the 24th July 2006.
|Commits||2450 by 201 developers, 6363 lines modified, 1119 new files|
|Bugs Opened||250 in the last 7 days|
|Bugs Closed||202 in the last 7 days|
Internationalization (i18n) Status
Bug Killers and Buzz
|Aaron J. Seigo||
There are 65 selections this week
digikam from trunk : camera gui improvement and fix :
- fix rename customizer rule about custom prefix widget focus (#127614)
- Add small icon on top/roght of camera ites to indicate download status (#131034)
- Fix some minor internal bugs.
- Polish implementation.
- using d private class to speed up compilation
- camera gui support digiKam theme now. A screenshot :
BUG: 127614, 131034
You should not be able to interact with actions that are supposed to have been deleted in clear().
This fixes an inability to keep items in the KolourPaint "View / Zoom" menu selected. KolourPaint was calling setItems() every time a zoom level was selected (evil, yes). This called clear(). KolourPaint then called setCurrentItem() and an apparently-deleted item was selected.
When the event loop was re-entered, the apparently-deleted items were really deleted, hence currentItem() would now return -1.
Unfortunately, this will sometimes trigger an assertion in Qt. Watch qt-copy for my next
Prevent flickering on the tab bar and slowness with prompts such as the one suggested in http://bugs.kde.org/show_bug.cgi?id=47684#c4 which set the Konsole session name by ignoring updates if the old and new title are the same and buffering multiple calls to update the window/session/etc. title and icons
* Fix display of bold text. This got broken sometime in the KDE 3.x series I think.
* Enable Qt 4 double buffering to eliminate flickering
* Performance improvements by drawing text in chunks (split up by appearence) rather than by character. Also cut down number of calls
Tested with Vim , cgdb and a few colour charts.
Background images and tints are still not working yet - more to do on that.
Lots of things:
1) Fix regression that happened when I tried to sacrifice sanity for speed.
2) Fix a few other highly uncommon bugs no one was ever likely to encounter.
3) Make ATF not require a restart to be activated!
Please note...I can't test the final few changes I just made yet, but I will later...compiles fine though.
jpetso proudly presents...
Rule Arguments for kdevelop-pg!
They make it possible to tune the abstract syntax tree (AST)
in order to make it clearer and more usable for later on.
If your grammar doesn't use rule arguments, you get exactly
the same output parser than before this patch.
Syntax for rule "calls" (example):
singlearg_rule[arg] doublearg_rule[arg1, arg2]
-> rule_argument_calls ;;
Syntax for rule parameter declarations (in pseudo-rule form):
-> rulename [
("argument"|0) storage_type common_variable_type ("#"|0) name: type;
| ("argument"|0) storage_type "token" ("#"|0) name;
-> declaration ;;
("member" | "temporary")
-> storage_type ;;
("node" | "variable")
-> common_variable_type ;;
Example for a declaration:
0 [: temp_counter = 0; :]
(item [: temp_counter++; :] )*
[: (*yynode)->type = class_declaration_ast::item_list; :]
-- this was the example rule body, now for the parameter declaration:
-> class_declaration [
argument member node mods: optional_modifiers;
member variable type: class_declaration_ast::type_enum;
temporary variable temp_counter: int;
temporary token #blah; -- a sequence, like in normal annotations
I'll port the kdevelop-pg/examples/ grammars tomorrow.
Questions, suggestions, complaints and praises go to
Lots of changes... Let's summarize:
* Implement the new config framework.
This means that project files are now INI style and split between a global FOO.kdev4 file that is safe to share, and a local .kdev4/FOO.kdev4 file that stores non-shareable settings like paths and environment variables.
* Change CMake settings to use new config framework
* Replace src/projectmanager.* classes with a projectcontroller.* class. Add a languagecontroller.*
class that will allow more than one language part to be
loaded at one time.
* Add a kdevelop.kdev4 global INI project file that should be safe to share and commit to svn. Remove the old kdevelop4.kdevelop file.
* For now, project loading only takes place via the command line OR if you have Last Project=/path/to/kdevelop.kdev4 file in your local kdeveloprc. I'm going to work on the action classes necessary to open projects soon ;)
* Introduce a kdevenv.* class in lib/interfaces where all plugins that need access to the environment variables will get them. This means we'll no longer have separate plugins running with different variables and the user can expect to set/get env variables in one central KCM. You can get the environment from KDevApi... although it is not complete yet.
* I'll be creating a tool to convert between kdevelop3 project files to kdev4 project files sooner or later.
Let kdevelop-pg generate namespaces for the parser, the ast nodes,
the visitors and the user-defined namespaces. Basically, everything
except the user-defined code insertions from the start and the end
of the grammar file is namespaced now.
That has several positive aspects:
- be good neighbors with other kdev-pg based parsers
(two clashing expression_ast structs, anyone?)
- the parser class is finally named as such: class <language>::parser;
- better readability for most stuff
Drawback: You have to port some code,
how much it is depends on the amount of custom code extensions.
(As usual, kdev-pg's example grammars will be updated right away.)
First usage of rule arguments in the Java and C# grammars:
Make the status variable ellipsis_occurred / parameter_array_occurred
local to the parameter declaration lists instead of needing them
to be an instance variable.
This is something I had been wanting to do for a looong time :D
First commit for Satellite tracks. It doesn't work yet, but the framework is reasonably complete. Bernard, let me know if you have problems adapting your code to this framework. In addition to adding Jean-Baptiste Butet's SatLib library, I added two new classes:
1) SatelliteTrack: this encapsulates a single satellite track across the sky, as a QList<SkyLine*>
2) SatelliteComponent: component for managing all the current satellite tracks.
FIXME: I am getting "undefined reference" linker errors for the two
SatLib functions I use. I can't figure out what the reason is; maybe
there's something wrong with one of the CMakeLists.txt files. Both of
the SatLib functions are in SatelliteComponent::init(). To keep trunk
working, I have commented out this function for now. I would really
appreciate it if some people could try uncommenting the function to see
if they get the linker errors as well.
Prerequisite: you'll need OpenBabel SVN revision at least 1525.
Reorganization everywhere, especially:
- Make much more use of OpenBabel, especially for the geometry-stuff
- Molecule rendering style and related data is now stored using the
- Big reorganization in the way display lists are used, when this
option is enabled. It is currently disabled, though, because of what
might be a bug in Mesa3d.
- draw multiple bonds
- support for van der Waals radius. Different atoms are now rendered
with different sizes.
- the sphere now uses 2x less memory when not using display
lists (achieved by using the same unique array as vertex&normal arrays)
- improved specular color computation in Color::applyAsMaterials()
- reorganized styles, removed "lines" style (looked useless, was
inconsistent with multiple bonds)
- when the uses clicks "cancel" in the Load molecule dialog, don't try
to load the molecule with filename "".
- lots more that I can't list
This is a patch with some new functionality from Robert L Krawitz. His description of the changes can be seen below.
The patch needs a bit of tweaking here and there, stuff I don't have time to do right now, so before the patch rots, I better get it into the code base.
1) A new option to permit smooth scaling vs. non-smoothed scaling
(which is much, much faster, particularly with large images).
2) A new viewer option to permit showing image size in the info box.
3) A new viewer option to permit showing file name in the info box.
4) An option to allow specifying thumbnail size in the settings dialog.
5) A new command in the viewer to zoom pixel for pixel (if the image is larger than the viewer, of course :-( ) -- typing `=' will do this.
6) Ability to scale to less than full screen. This means that displaying pixel for pixel will always display pixel for pixel, in
addition to the ability to zoom out beyond that point.
7) A new "standard size" setting, which can be one of three things:
* Full screen (the default, as today)
* Natural size (i. e. pixel for pixel)
* Natural size if possible (pixel for pixel if it would fit, otherwise full screen).
In addition to being saved in the preferences, typing the `/' key
at any time will display the image at "standard size".
This isn't perfect. In at least some cases it initially flashes the image at full size before rescaling it up or down. Fixing this will require more extensive work. In particular, doing most
efficiently will require reorganizing the cache so that it actually keeps track of the image sizes rather than assuming that they're at the display size, and the cache code in general will require some
work. I probably won't have time to do this before I go back to work.
8) New options to skip forward and backward by 10, 100, and 1000 images. This was inspired by our 3500 photos from Alaska that we're trying to categorize. We did some of them last night, and I want to restart in the middle (I know where we left off, but it's a pain to find it in the thumbnail view and then select everything from that point on).
9) The display code checks if the stored size is -1 (i. e. KPhotoAlbum doesn't know what size it is), and fixes it up (and calls back to the viewer to update the image box). This could happen in cases other than already-present thumbnails; for example, if you try to view images for which thumbnails aren't yet created.
10) A new option to specify whether or not to load RAW files if corresponding JPEG or TIFF files also exist. Default is that it doesn't, which is a change from the current behavior. This is useful with cameras that store both a raw image and a JPEG or TIFF. Related to this, I've changed the new image finder code to pass the entire filename to canReadImage rather than just the file extension. I believe this is the right thing to do because it allows the code to determine whether it actually can read the file or not.
Add support for mouse-dragging. This means that actions such as dragging the window splitter bar in Vi using the mouse or left-dragging to select text now work. Technically speaking there are 4 mouse modes which xterm terminals should support - Konsole now supports two of these (modes 1000,1002) - see http://rtfm.etla.org/xterm/ctlseq.html#mtrack
implement on-demand creation of widget() for kdevelop
this unbreaks katepart again for any apps using multiple views
while this breakage was more a accident by a commit of a kdevelop dev
to fix their probs, which is not bad, mattr has shown again, that cooperation
with kdevelop devs is just close to zero, as neither they care to
tell kate devs in advance what they need or which probs they have but more
like to commit fixes which cause probs for any other app than kdevelop...
But yeah, mattr has explained it to me, why cate, it will only break kate....
perfect logical ;)
for future: next time ask for changes, if you don't know how to make them correct without breaking other people code just to avoid to have 2 more qobject_casts in your own code. if nobody on kwrite-devel reacts for reasonable timeframe, you still can
kill the stuff on your own...
it's pure fun to implement features for people not even respecting at all that there are even people maintaining katepart, don't think they would like that other people do the same in kdevelop's code, but sure, why take the same care on the code of other people :)
btw., the kate devs even created a ktexteditor-devel mailinglist for that purpose and on request
of kdevelop guys like mattr, nice to see that it is used that well............
have fun with the feature, hope it works, if not, please report on kwrite-devel or fix it if you are sure you know how....
Karbon can now create shapes. Yay!
* vdocument contains now a list of all the existing shapes,
which i used by the shape managers for drawing
* vdocument is not longer a KoShapeController derived class but karbonpart is,
to have easier access to the shape manager of all the attached views
* to create shapes the shape id of the CreateShapeTool is set manually for now
* removed test code which added rectangle shapes from the layer shape
Make importing old fileformat work partly again; all text is loaded without
markup. I created a new class thats just for kword-old xml files; KWDLoader
Rewrite layouting for columns as this was different for PageSpreads
Remove pageLayout structure from PageSettings class as its already available in the KWPageManager
Make "always show local cursor" and "view only" permanently configurable via krdcrc.
Since we're in a GUI/message freeze, I can't add any GUI to these options until KDE4.
The options and their defaults are:
Work on using ingredient weights to do accurate unit conversions.
So far it:
1) Loads weights from the USDA's WEIGHT.txt file when loading nutrient info from the setup wizard.
2) Allows modifying existing weights
3) Allow removing existing weights
4) Uses weights in nutrient analysis
Added Tools->Measurement Converter. The GUI isn't yet polished, but it should be fully functional.
If the conversion fails, it will give the reason why, which can be any of: missing ingredient, missing ingredient weight, missing
unit conversion, or unable to convert based on unit types (i.e. converting Other->Other, Other->Volume, Other->Mass)
I'm finding this handy for testing the new conversion routines.
Add a property status indicator in the ingredient tab of the recipe input. This currently tells whether or not all nutrient information is known for each ingredient in the recipe.
The GUI isn't done yet, so no, that giant LED isn't going to stay that big. Also, the "Details..." button doesn't do anything yet. At the moment, the information that this button will give is just spit out onto stdout (the console). You'll notice this information is prefixed with "NUTRIENT STATUS:".
So this should be fully-functional, but the GUI will be finished later.
Use the reference depth approach also for changed cell regions.
Otherwise, we'll get unnecessary recalculation events in some cases. In 1.5
some cells were recalculated twice, if one of its references were changed.
Changing A1 has recalced A2 first, which triggered a recalc of A3, which in turn recalced A2 again.
TODO: Catch circular dependencies.
Don't keep changing the Undo/Redo toolbar button text - show no context instead
(i.e. "Undo" instead of "Undo: Line"). The tooltip still contains context
(useful if one switches back to "Icons Only").
Resolves usability problem regarding "Text Under Icons" default in KDE4, pointed out
by blog commenter.
* Reduce the number of icons in the main toolbar (Open and Save were kept due to popular demand)
- we no longer use XMLGUI merging
* Order the zoom actions more naturally i.e. [-] 100% [+] like acroread (other KDE apps like oKular use [+] 100% [-] so there needs to be some discussion here);
I personally prefer [+] [-] 100% myself since I adjust zoom by pressing buttons quickly.
* Drop the "Zoom In" ([+]) and "Zoom Out" ([-]) text as the buttons' purposes are now dead obvious due to their positions. I am starting to hate this already because I have to aim very hard to press these small buttons.
This is based on feedback on my blog about "Text Under Icons" toolbars.
Put a copy of kdelibs/kdeui/keditcl into kmail and knode.
This was done because Ben wants to remove the KEdit class and
the changes needed to port to the new KTextEdit class
are pretty substantial. So the KMail and KNode development
teams will have some time to port to the new class this way.
I'll leave it to Ben to remove KEdit from kdelibs (which is ok on Mondays).
Remove the rgb, cmyk and grey colorselectors.
Everyone should use the UniColorSelector
hsv_widget will go too at some point - whe Uni supports it!
Rename kdualcolorbutton to KoDualColorButton
Change behavior of dual butto to allow dragging of colors better, as
requested by Thomas Zander
Change KoIconChooser to Model/View Architecture
At the same time improve the usabillity of the resource popups in krita
Now you only have to click to select and it pops down.
The magnified view of the pattern/gradient is gone temporarily until I
get "tooltips" to show it.
Rewritten font support:
* Font support is now Unicode based and TeX font support is dropped.
* cmex TeX font is still used for big brackets.
* The rest of BaKoMa fonts are no more packaged with KFormula. Arev fonts are
* Unicode table has been separated into different set of tables to
allow symbol selection separation in the future.
* All the symbols in tables are supported in Arev font. If the font selected
by the user doesn't contain the symbol, Arev font will be instead.
Okay, although the original podcast database schema change should have been done in updatePodcastTables, it probably isn't worth the giant effort of moving stuff around. So, still bump podcast episodes version number.
Also, update changelog.
I would advise backing up your database.
krdc now compiles. It even runs. It just doesn't run very well yet.
Won't connect to RDP hosts
The preferences dialog has the three tabs, but no content in any
of them (except the label).
Haven't tried VNC protocol.
No special key input
No dbus support
There are probably patches in KDE 3.5 that need to be forward
Ported KAsteroids to QGraphicsView! :)
Finally I found the cure to QGraphicsView's slowness, and it's called
QGraphicsView::setCacheMode( QGraphicsView::CacheBackground )
I guess the next step will be de-Q3PtrList-ifying ;).
Few issues remain though.
Like the "Press L to start" thing floating around _during_ a game :).