20th August 2006by Danny Allen
the release itself is for developers to start porting applications with, to start stressing the newer APIs and seeing what kde4 development will start to look like. there's still a lot more to come though, even in the libs, with changes coming to kwizard, kconfig, khtml (the rather exciting unity stuff) and certainly more. but a lot of the big rocking the boat stuff is there, from here we can build Cool Visible Stuff (CVS?)
|Commits||2216 by 208 developers, 5297 lines modified, 1462 new files|
|Bugs Opened||291 in the last 7 days|
|Bugs Closed||253 in the last 7 days|
Internationalization (i18n) Status
Bug Killers and Buzz
|Aaron J. Seigo||
There are 79 selections this week
Made DCOP notifications to kicker instances on non-primary dual-head screens work.
In english: changing kicker settings on the non-primary screen will no longer require a restart to take effect.
Set the main translation catalog(ue) explicitly in kwin, kdesktop and kicker.
Fixes the most hated multi-head bug that caused localized KDE setups to display
original english strings on non-primary displays.
Right now, backspace and delete don't actually update the screen to show the changed text; the attached patch fixes that by giving them the same repaint() treatment that we do for text insertion.While we're at it, delete and backspace should also hide the cursor, since they too indicate an intent to sit down and edit the text.
patch by: Benjamin K. Stuhl
This mostly completes the safety patch for ATF. The following conditions are handled:
Collection Scanner + Playlist tag editing
Collection Scanner + Tag Dialog tag editing
Collection Scanner + DCOP UFID changing/stripping
What remains are the various Collection Scanner + Collection Scanner scenarios.
* Don't insert multiple consecutive remember lines. This doesn't get us the "have one, moving remember line" behavior we'd really like to have, but gets rid of the most annoying property of the current system.
* Morph the option to insert a remember line when the window is mini-mized into an option to insert a remember line when a chat window is hidden (i.e. on tab switches, too).
* Support inserting remember lines into DCC Chats and Status windows, too.
* Clean up the remember line-related prefs strings.
Start a binder for the C# codemodel. It only supports namespaces at this time, but you can already see them in action inside the codeview.
Now I really got to do something against that input character corruption which is messing stuff up.
If a user goes offline who is part of a file-collaboration-session, he is automatically re-invited once he's online again. If a file-collaboration-host goes offline while a session and comes online again, the users that were part of the session automatically invite him to continue the session and send the necessary synchronization-data. If he accepts, all old clients are automatically inserted to the new(continued) session, and everything continues as before.
create a widget to control the history of a file-collaboration. Here it should be possible to reach any arbitrary state(allowing undoing edits by certain persons, or selectively undoing changes done far back while leaving other, new ones). Is not usable yet for performance-reasons.
A lot of work on the file-collaboration-management. Collaboration-files communicate better now. They resolve conflicts by sending each other reject-messages and then correcty seeking back to a conflict-free state. If the host allows it, each session-client can add his own files to the collaboration-session. The host can remove files from the session, and temporarily disable editing on files. Each collaborator can save single or all files of the session either as normal files, or as a patch which will automatically be added to the patches-list. Much more. Everything yet completely untested.
Major rethink of definitions occurring in function parameters and if statements.
Now utilises the direct acyclic graph design (suggested by Roberto), rather than being a plain tree. If this was what Roberto meant to start with, I didn't understand it until now ;) This is one of those commits that makes you feel content that you've done it the "right way".
So, the DUChain is looking much better. Perhaps now it's time to work on getting #include-ing of ASTs, or incremental parsing, I haven't decided yet...
make the patch-management nearly ready. When a patch is applied/unapplied, a libkonsole-part is temporarily integrated into the patch-editing-widget for that job. Also there's a button that can determine whether a patch is applied or not. For patches, it is possible to browse all affected files, jump from hunk to hunk, and highlight affected lines, from right within that widget. Much more other work. To extract information from the patches libdiff2 is used, which seems to be extremely unstable(it crashed again and again), but after about three little patches it seems to work ok for now.
Implemented most of the LU algo with complete pivoting. Will do the rest tomorrow.
Currently it compiles but don't run it!
Implemented function to find the entry of a matrix that has biggest absolute value, ignoring a given number of rows and columns (used by LU algorithm)
Implemented isNegligible function to help determine when a floating-point number can be considered negligible in comparison with another one. This is a classical workaround for the strangeness of operator== for floating-point numbers.
Added myself to the copyright lines of kmatrixn.h
Draw outlines around the selected window while doing Alt+Tab.
* Make new sessions start in the active session's current working directory
(if both sessions are of the same type - otherwise the default working directory
for that session type is used)
* When creating a new session via the tab-bar button or "Ctrl+Shift+N" shortcut,
make the new session the same type as the active session.
This behaviour will probably be made an optional default, pending feedback from the KDE4 Alphas/Betas
When rendering SVGs multiple graphic contexts are used.
CanvasQt constructs a QPainter + GraphicsContext, and for
example RenderSVGText also constructs a GraphicsContext -
but the painter is shared. That leads to the problem that
the painter's end() method is called too early. Fix that.
As soon as the paintEvent() function is left, the QPainter
is destructed anyway - same affect as calling end() before.
Investigation by Rob.
Also enable antialiasing for SVG :-)
* Tidy up right-click menu.
- Remove Bookmarks and Settings sub-menus (what on earth were they doing here?).
- Remove "Send Signal" sub-menu (still available via Edit -> Send Signal)
- Fix "Show Menubar" not reappearing after hiding/showing the menu bar a few times
* Remove the "Move Session Left / Move Session Right" items from the menu since the tab bar supports drag and drop reordering. A keyboard shortcut for moving tabs would still be
* Remove clutter from window title. If a terminal has set the window title then just show that, otherwise show the session title. Fixes #63249
Initial code for Kross2
The backend got replaced and is build up on Qt's metatypes now. This means we are able to throw any QObject/QVariant in and just use the slots as script-functions and the properties as script-members. So, we don't need wrappers/bindings any longer (and provided scripting-interfaces don't need to depend on Kross) on the one hand and and earn a more cleaner interface on the other. Beside the try to follow KISS, we should earn much more speed that way cause everything talks now Qt internal :)
The python backend works mostly already. Ruby is disabled for now while the existing bindings will be ported to on QObject/QMetaType-stuff based scripting-interfaces later.
So, I started working on doing proper layouting text, and the QText* stuff
looks pretty cool. I'm using the testDriven development here; first write
the unit tests, and then write the implementation.
So far I can layout text in different fonts / sizes with different margins etc.
Not much more just yet :)
- tooltips are displayed for cells with too large contents
CSV Import Dialog
- delimiter detection is now even more clever, allowing
to import more complex data:
characters outside quotes have higher priority;
additional algorithm counting number of candidates
for delimiters is used.
Behold, the Commit of Doom! Although I prefer to think of it as the Commit of Bliss. In any case, it's massive (diffstat < 10k lines). Here goes:
- Implement a tree list as a vertical alternative to the tab bar, supporting all cosmetic and interactive features of the tab bar, including, but not limited to, text notifications, LEDs, (hover) close buttons with delayed activation, context menus, drag'n'drop, and mouse wheel events. Plus a few tricks of its own.
- Refactor KonversationMainWindow: The view management duties are now performed by the new ViewContainer class, which internally abstracts the differences between the two tab switching widgets. All of that code has seen major cleanups. Also, the status bar management is now happening - mostly rewritten, too - in the new KonversationStatusBar class.
- Cleanup all around.
- Delete obsolete class DccTransferHandler.
- Delete obsolete class Popup.
- Delete obsolete class KonviSqueezedTextLabel.
- Fix status bar not being reset correctly when the last view is closed.
- Fix the status bar temp text not being cleared when the window loses focus or
the cursor leaves the window after a link is launched.
- Don't set allow empty temp texts to be set in the status bar.
- Fix the "No answer from server for ..." lag text interfering with the status bar temp text mechanic by using the proper API to set it.
- Improve consistency of status bar lag label updating to avoid the UI jumping around too much.
- Hide the info and lag status bar labels until text is set for the first time.
- Fix the "DCC Status" and "Channel List" panels leaving the status bar info label empty.
- Reset the status bar properly when the last view is closed.
- Tweak the grouping behavior for "Channel List" and "Raw Log" tabs.
- Fix change of the general UI font not being propagated down to the various types of tabs.
- Fix changes of the iconset not being applied to tab bar close icons.
- Fix the name of the "Watched Nicks Online" tab changing under certain circumstances.
- Fix Reconnect action not being updated on /disconnect.
- Fix Reconnect action not always working.
- Fix "Hide Nicklist" action not being disabled when the current view doesn't actually have a nick list.
- Fix the menu bar shown/hidden state not being saved across sessions.
- Show the "Show Menubar" action as the first item in the IRCView context menu when the menu bar is hidden, as is established good practice among KDE applications.
- Distribute actions in the menus a little better.
- Make the ban list and other channel settings easier to find by adding an action to open the Channel Settings dialog to the "Window" menu as well as the IRCView context menu of channel tabs.
- Fix switching off notifications for a tab not unsetting active notification.
- Fix server tabs not preserving their on/off notification state across sessions.
- Change the names of various actions temporarily when the (modal) shortcuts dialog is opened. Toggle actions are prefixed with "Toggle", since the list lacks the context in which they're understood as toggle actions. The insert actions are prefixed with "Insert". And the context-adaptive actions ("Open Logfile for ...") are stripped of their context.
- Disable the "Close All Open Queries" action when there are no open queries.
- Fix the "Close All Open Queries" action not actually closing all open queries.
- Don't focus Url Catcher when the "Open URL Catcher" action is triggered the second time. A toggle action isn't tri-state.
- Don't add bookmarks to the action collection (i.e. to the list of shortcuts) when the bookmark menu is opened.
- Update rough changelog.
- Bump build number.
(PS.: You will need to do a 'make -f Makefile.cvs' in order to build this successfully out of an existing checkout.)
Added support for EPRT.
Handle simultaneous filetransfers properly.
NOTE: filetransfers containing several files at once are still not supported.
Shrink the size of JS objects by 2 pointers, so
8 bytes on 32-bit, 16 bytes on 32-bit.
This is done by pushing pointers that are not really needed
inside ObjectImp to subclasses; and also by rearranging and bitfielding
some things inside of the RegExp constructor.
Makes the cell size (32-bit, I need configury for 64-bit!) go
56->48 bytes, with GC adjusted accordingly.
Makes things may be 1.2%-1.5% faster; this version of the patch
is after adjustment by Apple to reduce divergence...
Don't create a huge pixmap for every shadow we draw.
Makes the "for transparency" taskbar style a *whole* lot faster.
Removed check_licenses and licensecheck. Both of these programs were out-of-date and we hardly need 2 anyway. The most of up-to-date license checker is the EBN Krazy Source Code Checker which is available in SVN in playground/devtools/krazy and does everything that these two programs did only better. :)
Adding a patch which removes all libcurl usage, and replaces by KIO. In theory it works fine, though as KIO is totally broken, I can't continue. It seems related to dbus - whatever..
I should calm down, I wasted about 6 hours today just because it's broken. If you are the one who broke it, better hide otherwhise I'll get a knife and stab you!
(some weeks ago kio worked fine in kde4...)