Konversation has switched to Git (December 10th, 2009)
As many of you probably already know, KDE has its eyes set on moving to Git, the revision control system developed by the Linux kernel developers in 2005 (and now in use at a great many places). Everyone's favorite music player Amarok already made the switch in July of this year, and today Konversation has followed suit! The nitty-gritty follows, Q&A style:
Why Git?
Most Konversation developers have used Git for some time already, either on other projects or even for their Konversation work (via git-svn), and have developed a strong preference for it, especially due to the superior performance and the way it greatly improves the local workflow by adding powerful branching and merging features over a Subversion working copy. We're also looking forward to sharing in some of the benefits reported by the Amarok developers after using it for some time.
Another advantage of Gitorious specifically is a lowered barrier to entry for external contributors, thanks to the possibility of making personal clones of the project on the platform and filing a merge request for any changes made.
Why now?
Konversation is moving ahead of the bulk of KDE. Here are some reasons why:
- Due to the fact that most of us have some level of Git experience already, and due to us having a relatively small and stable development team, it's easy for us to make the switch without anyone getting left behind in the process. The goal for the migration of all of KDE is the same, of course, but more work is yet needed to be able to meet it, as detailed here. We hope that by migrating early we can increase the momentum behind the entire transition and make ourselves useful in getting it done thanks to the experience garnered.
- We have some plans, such as making a special version of Konversation for the Nokia N900, that are greatly eased by Git's much better support for multi-branch development.
Where?
You can find the repository information and spy on our activities on our Gitorious page. Build instructions are, as always, found on our wiki. If you want to jump right in, here's a clone command for read-only public access:
git clone git://gitorious.org/konversation/konversation.git
Or, if you have a Gitorious account, are a member of kde-developers (if not, file a request here), and want to start working:
git clone git@gitorious.org:konversation/konversation.git
Does this mean you're no longer part of KDE?
and
I'm a KDE developer, can I still commit changes to Konversation?
Konversation without KDE would be unthinkable! :) The project and its repositories on Gitorious are owned by the kde-developers team (the same is true for Amarok), which is the official extension of the KDE community into the realm of Gitorious. Anyone with an existing KDE SVN account can very easily ask to be added to the team by filing a sysadmin request (a more scalable solution for the big KDE move might be in the cards, though), and anyone in the team can commit to any projects owned by it.
Bottom line: Konversation hasn't parted ways with the KDE community, and never will. The move to Gitorious is done on the assumption that KDE will soon follow, which is the direction things have been going in for a while. However, should the KDE community end up deciding that it would rather host its own Git infrastructure, Konversation will definitely move there.
I'm a KDE translator doing work on Konversation, what changes for me?
In short: Nothing! :) Just as with Amarok, Konversation's translations remain in SVN, and KDE's infrastructure (i.e. the scripty bot) takes care of moving data between Git and SVN as needed.
I want to work on the Konversation handbook, but I can't find it in the Git repository.
As with the translations, Konversation's documentation remains in SVN for integration with KDE's l10n infrastructure.
I used to get my hands on Konversation by checking out all of extragear, now I need to go to two places. This sucks.
Yes, this is a bit of a downside at the moment, sorry :(. This has been identified as a problem for the KDE transition to Git some time ago, and work is underway to solve it. The todo entry on the KDE Techbase wiki points to a tool meant to be capable of combining SVN and Git projects into virtual sets that can be checked out or updated at once, keeping the established SVN workflow intact. Give it a try, it might work for you already.
Why am I still seeing you in KDE SVN?
The directory will be removed shortly (as Amarok's has been), once KDE's l10n infrastructure has been updated to look for Konversation at the new place. If you had been planning to commit a change to Konversation, please commit to Git instead!
That's it, folks! If you have any more questions, don't hesitate to stop by on our IRC channel or hit our mailing list.
Konversation 1.2.1 has been released! (November 12th, 2009)
This second release in the Konversation 1.2.x release series for KDE 4 adds a number of new features to the bookmarks system and support for reacting to changes in network availability as signaled by KDE's Solid, along with a number of fixes for bugs discovered since version 1.2 was released last month.
Changes from 1.2 to 1.2.1:
- Fixed a crash when cancelling the warning dialog that is shown upon receiving two incoming DCC file transfer requests using the same file name.
- Fixed a crash when using the "Clear Completed" action in the DCC Status tab after having previously used the "Clear" action to remove specific transfers from the transfer list.
- Fixed a crash when using the "Clear" or "Clear Completed" action in the DCC Status tab after creating a mixed selection of removable (e.g. completed, or failed) and non-removable (e.g. sending) transfers and the last addition to the selection was a removable transfer.
- Added a "Bookmark Tabs as Folder" feature.
- Added the ability to open the contents of an entire bookmark folder at once (aka "Open Folder in Tabs").
- Made the default generated bookmark titles more verbose: The Format is now "Channel (Network-or-Server)".
- Added support for reacting to changes in network availability as reported by KDE's Solid subsystem. If the network goes down, Konversation will now no longer make futile attempts to reconnect the affected connections. Instead, it will reconnect once the network comes back up.
- Variable expansion (%B, %C, %I, etc.) is no longer done in text segments recognized as URLs to avoid clashes with percent-encoded characters in URLs copied from web browsers, such as German umlauts.
- Made tooltips for truncated labels in the listview version of the tab bar work again with newer versions of Qt.
- Fixed a bug that caused the Watched Nicknames Online list to show the wrong or no tooltip when hovering a list item with the mouse pointer.
- The default destination folder for incoming DCC file transfers is now the "Downloads paths" configured in System Settings or the equivalent in other desktop environments (under the hood, this is a shared XDG setting).
- Making and then comitting unrelated changes in the Channel Settings dialog could cause unintentionally setting the channel's topic to an older version if someone else had changed the topic since the first time the dialog was opened or while the dialog was open, due to a bug in the code that avoids such external topic changes interfering with concurrent local editing of the topic. This has been fixed.
- The contents of the topic edit field in the Channel Settings dialog will now reflect the selected item in the topic history list until the user starts editing.
- Fixed a bug that could cause user mode changes occurring directly after joining a channel not to be reflected by the channel's nickname list.
- Fixed a bug causing the "Open File" context menu action for DCC file transfer items in the transfer list in the DCC Status tab not to work for incoming file transfers.
- Added support for RPL_HOSTHIDDEN.
Konversation 1.2 has been released! (October 9th, 2009)
Konversation 1.2 is the first release of Konversation for the KDE 4 application platform and desktop environment. In addition to preserving the full functionality of the KDE 3 version, this release offers a significant amount of new features and improvements to the user interface, performance, memory usage, energy efficiency, correctness and stability. Sum total, the changelog of all development releases since Konversation 1.1 and of this final release combined once again make for the longest changelog in Konversation's release history.
Some of the highlights compared to Konversation 1.1 include support for SOCKS v5 and HTTP proxies, a redesigned DCC file transfer user interface (and much improved DCC code under the hood with several new features, such as support for IPv6 and DCC REJECT), support for UPnP for NAT traversal, rewritten and much improved support for Blowfish encryption (now supporting DH1080 key exchange, for example), a significantly better performing channel list, a rewrite of the channel nickname lists for better performance and improved battery-friendlyness, a new channel join invitation user interface, an improved auto-replace feature, expanded media player support and many improvements to the IRC protocol implementation.
Enjoy!
Changes from 1.2-rc1 to 1.2:
- When dragging a link from the chat text view, the drag object will now contain a plain text version in addition to the URL version. This allows dragging a link to places that don't accept URL drops, such as Konsole, the Konqueror address bar or Konversation's own input line.
Konversation 1.2-rc1 has been released! (October 3rd, 2009)
After a pleasantly uneventful two weeks with beta1, this release candidate for our first KDE 4 stable release brings a handful of bugfixes that, while definitely worth having, are fortunately none too scary. We thus expect the final Konversation 1.2 release to follow in the very near future.
Changes from 1.2-beta1 to 1.2-rc1:
- Fixed the scrollbar thumb not remaining at the bottom when the chat text view is resized (such as when the window is resized or the input bar increases in height after typing more than one line with auto-expand mode enabled).
- Fixed a bug that could cause the progress bar for DCC file transfers not to be updated when "Fast DCC send" was enabled.
- Fixed a bug that could cause a crash when resuming an incoming DCC file transfer.
- Fixed characters that require the Alt Gr modifier to be typed (such as the '@' symbol in German keyboard layouts, for example) not causing keyboard focus to move to the input line when typed while the chat text view has keyboard focus and thus not showing up in the input line.
- Fixed a bug causing both the link and the marker or remember line to be selected when a line is appended directly after a link that has just been clicked.
- Fixed a bug causing the automatic scroll-down not to work when more backlog is replayed than the viewport can show at once at channel join.
- The "Advanced Modes" listing in the "Modes" tab of the Channel Settings dialog will now properly vertically expand as the dialog is resized even to a very large height.
- Fixed a bug that could cause a crash while manipulating a channel's ban list.
- Fixed a bug causing the moving of child tabs of a network tab in the treelist version of the tab bar not to work using the keyboard shortcuts, context menu actions or "Window" menu actions.
Konversation 1.2-beta1 has been released! (September 21st, 2009)
Konversation 1.2-beta1 marks the departure from active feature development for Konversation 1.2 and the entrance into the much-vaunted halls of bug-fixing-until-the-final-release, which we expect to materialize in early October. Until then, you can enjoy what this beta has to offer: HTTP and SOCKS v5 proxy support, further redesign of the DCC Status tab (many of you will be happy to find the minimum window size with the DCC Status tab open much reduced now), the long-awaited return of marker and remember lines and the resurrection of link dragging from the text display widget are of particular note, but the changelog has the details on a variety of other additions, plus the usual assortment of bugfixes, as well.
Changes from 1.2-alpha6 to 1.2-beta1:
- Added a topic widget for Konsole windows and hooked it up to the KPart's setWindowCaption signal
- Added tooltips to items in the new DCC transfer lists that describe the transfer's status more verbosely.
- Fixed the OSD stealing focus when it appears on Windows.
- Running DCC file transfers are now properly aborted on application quit.
- Removed the 'ucs2' encoding from the encoding list, as it is is not supported on IRC. This also resolves a crash when sending messages after selecting it (however the crashing codepath has been independently made more robust as well).
- Fixed a crash when sending a message containing only spaces.
- Added a "Manage Profiles" button to the information area above the terminal area in Konsole tabs.
- Added SOCKS v5 and HTTP proxy support. Proxy credentials are stored in KWallet.
- Moved the buttons in the DCC Status tab to a toolbar, similar to how things were already laid out in log viewer tabs.
- Redesigned the DCC transfer info panel in the DCC Status tab to have a smaller minimum size. This should mean that less people will see their window size increase when a DCC transfer is initiated, as it reduces the minimum size of the window with the DCC Status tab open.
- Added a "Clear Completed" item to the DCC Status tab's toolbar.
- Fixed a crash on the processing of illegal lines sent by the server that contain only spaces (as sent by the buggy lidegw lide.cz gateway script).
- Made DCC transfer speed reporting more reliable.
- Fixed sorting the transfer list in the DCC Status tab by its "Started At" column. Previously, sorting by that column would sort alphabetically by the string value of the fields rather than properly by date.
- Fixed the Channel Settings no longer disabling interface elements allowing the manipulation of channel properties when the user lacks the necessary operator privileges in the channel.
- The position of the splitter handle determining the size of the info panel in the DCC Status tab is now saved across application restarts.
- Fixed a crash when changing settings after the "Insert Character" dialog had been used.
- When an attempt to set up a port forward via UPnP fails, an error message stating as much will now be shown in the currently active or last active tab for the associated IRC server connection.
- Made the '/amsg' command work properly again.
- Fixed two close icons (one on the left, one on the right) being shown on tabs when close buttons were enabled and the tabs were in top or bottom position.
- Fixed incorrect colors in the listview version of the tab bar when initially switching to it within a session.
- Fixed a regression vs. the KDE 3 version that caused a failure to correctly parse shortened IPv6 addresses except when using RFC 2732-style bracket notation and explicitly stating a port to connect to.
- Made the display of server address and port number in various connection-related chat view messages more consistent and IPv6-friendly (with the '
: ' forward previously used, it could be hard to tell where the IP ended and the port began -- now it's ' (port )'). - Updated the scripting documentation to talk about D-Bus rather than DCOP.
- The initial width of the nickname lists in channel tabs is now more sensible.
- Added back the ability to drag links out of the chat view.
- Resurrected the RTL text support in the chat view.
- Fixed a crash during UPnP discovery when the router doesn't respond in the expected way.
- Various actions that operate on the active tab (e.g. those found in the "Insert" menu) are now properly disabled when the last tab is closed.
- Fixed a bug with Qt 4.5 where after closing a tab a tab adjacent to it would briefly be activated before subsequently activating the tab that was active before the just closed one (i.e. only noticable when 'a tab adjacent to the just closed tab' and 'the previously active tab' are not the same).
- Marker lines and the remember line are back.
- Fixed a bug that could cause queue flushing rates to be entered into the configuration that would prevent successfully connecting to Freenode and potentially other IRC networks.
Konversation 1.2-alpha6 has been released! (August 8th, 2009)
Konversation 1.2-alpha6 is primarily a hotfix release addressing a serious DCC crash that we unfortunately only discovered after releasing alpha5. To sweeten the offer, however, it also includes a nicer DCC tranfer list that separates incoming and outgoing transfers into distinct categories, allows you to enable/disable individual columns and saves the sort column and direction across application restarts. Furthermore, Konsole tabs may now be renamed and there's also a fix for the handling of certain rare mode characters.
Changes from 1.2-alpha5 to 1.2-alpha6:
- The transfer list in the DCC Status tab now separates items into "Incoming Transfers" and "Outgoing Transfers" categories, using the same category headers employed in System Settings and other places throughout KDE 4.
- It's now possible to enable/disable the display of individual columns of the transfer list in the DCC Status tab. This is remembered across application restarts.
- The sort column and direction of the transfer list in the DCC Status tab is now remembered across application restarts when using Qt 4.5 or higher.
- A "Rename Tab..." action has been added to the context menu of Konsole tabs.
- Fixed a crash when the client observes channel modes being modified that carry a parameter when used as user modes.
- Fixed a crash when an incoming active or outgoing passive DCC file transfer either timed out or was manually aborted while in "Connecting" state."
Konversation 1.2-alpha5 has been released! (August 5th, 2009)
Konversation 1.2-alpha5 features significant performance and memory usage improvements in several areas of the application, such as channel nickname lists, backlog loading, Channel List tabs and the URL Catcher - the latter two have also seen a fair number of interface refinements, making them much more enjoyable to use. The DCC subsystem has seen the addition of IPv6 support and a '/dcc get' command to accept an incoming file transfer from the input line. Various smaller additions and improvements have been made as well, including the usual share of bug fixes.
Changes from 1.2-alpha4 to 1.2-alpha5:
- Added back "Do not ask again" checkbox missing in the rewritten invitation dialog that appeared in v1.2-alpha4. By implication, the dialog now also observes the "Automatically join channel on invite" option from the "Warning Dialogs" page in the configuration dialog again.
- Fixed problems reconnecting an SSL-enabled connection using a self-signed certificate.
- Fixed a build problem with KDE trunk (i.e. what will one day be KDE 4.4).
- Fixed loading and saving of the settings toggling the invitation and multi-line paste warning dialogs in the "Warning Dialogs" page of the configuration dialog.
- Improved wording of the description of the invitation dialog setting in the "Warning Dialogs" page of the configuration dialog to reflect that the dialog being disabled doesn't imply that the channel the user was invited to will be joined automatically, as the user might have rejected the invitation when he got the dialog along with checking "Don't ask again".
- Decreased memory usage (the objects created for every IRC user encountered are lighter now).
- Initializing Phonon is now delayed until it is actually needed, resulting in less memory usage for those not using highlight sound notifications and less work being done during application startup.
- Fixed DCC file transfer problems with files larger than 4 GB on 32bit systems, along with some other correctness improvements to the file transfer code.
- Backlog loading is now more efficient.
- Added IPv6 support for DCC file transfers.
- The fallback default file name for unnamed files received via DCC now contains the date of when the file was received in ISO format.
- Fixed a crash when trying to perform a tab completion with an empty nicklist (i.e. shortly after joining a big channel, before its nicklist has been filled in).
- Channel nickname list updating is now more efficient and pleasant to look at. Rather than resorting the entire list after the addition of a new nickname, the nickname is now inserted directly at the correct position (using a binary search), avoiding a lot of CPU-intensive comparisons between nicknames. The same optimization is also done for nickname and user status (as relevant in case "Sort by status" is enabled) changes - rather than triggering full resorts, items are moved directly to new positions as necessary. Resorting after both new additions and changes was previously done only after a delay of one second (as part of a scheme to throttle the update rate to a maximum of once per second given how CPU-intensive it was), which meant that new nicknames would initially appear at the end of the list and move to the correct position only after one second, and that nickname and status changes were similarly reflected in the sorting only after one second - this delay has now been eliminated, making the nickname list much snappier in reacting to what's going on.
Note however that when more than ten events requiring an update to sorting occur within one second, a fallback to the old scheme of doing a full resort at a maximum rate of once per second, after an initial delay of one second, occurs, as this is believed to be more efficient in situations of very high activity (such as merges after netsplits). Thus the new scheme described above should be seen as an additional optimization for the common case. - In addition to the broad strokes optimization described above, other minor optimization work has been done on the nickname list updating code, improving the efficiency of updates further.
- Fixed topic label text color not reacting to system color scheme changes.
- Added a '/dcc get [nick [file]]' command to accept an incoming DCC file transfer request.
- Fixed a crash when using the 'Insert -> IRC Color...' menu item without there being any tabs.
- Nickname changes of the discussion partner are now announced in query tabs, provided the information is available (i.e. when one shares a channel with the discussion parther, so the server informs Konversation of the nickname change).
- Fixed building on OpenSolaris.
- The channel item context menu in Channel List tabs now has a "Join Channel" action, and the list of URLs extracted from the channel topic has been moved to a sub-menu.
- Increased use of the IRC icons found in recent versions of the Oxygen icon set.
- Fixed a bug causing the time a user went online not to be displayed in WHOIS information (provided the server reports it).
- Fixed close button icons not immediately appearing on newly-added tabs when enabled (a preferences change would cause them to appear).
- A significant revamp of the Channel List code, especially around the way the list data received from the server is being moved into the UI, has brought about significantly improved behavior. The application should now no longer be bogged down for extended periods of time while the list is being processed - in extreme cases, this could even lead to disconnects by timeout.
- The "Apply Filter" button has been removed from the Channel List interface. Instead, the filter is (re)applied automatically as its settings are changed, i.e. briefly after stopping to type into the "Filter pattern" field or after changing one of the spin- or checkboxes.
- Fixed the display of human-readable mode descriptions in place of traditional mode characters (toggled by the "Show raw mode characters" preference and only applicable when Konversation knows a description for a given mode char) being inconsistent between '/mode
and '/mode / +/- ' - separate, unequal lists of mode descriptions were being used; this has been unified now. - Fixed the "Modes" tab of the Channel Settings dialog not using human-readable mode descriptions in place of traditional mode characters when the "Show raw mode characters" preference is disabled (as it is by default) and a description for a given mode char is available.
- Fixed the mode list shown by "Show Advanced Modes" in the "Modes" tab of the Channel Settings dialog not showing all modes announced as supported by the server.
- The Channel List, when hovering a list item with the mouse pointer, now shows a tooltip with the entire topic of the channel when it doesn't fit the topic column's width.
- Konversation will now display a warning dialog box when the user is trying to send a character not supported by the chosen encoding.
- When a message containing characters not supported by the chosen encoding is sent, the chat view will now display the '?' replacements for those characters that are sent to the IRC server and thus seen by other users. Previously, the chat view would display the version of the message before this encoding step, and thus usually show the characters, as the Unicode character set normally used by KDE/Qt is considerably broader than many of the encodings that can be selected in Konversation. In other words, the chat view now accurately portrays what is sent to other users when a message contains characters not supported by the active encoding.
- The URL Catcher should now open considerably faster with long lists of caught URLs and mail addresses.
- The list items in the URL Catcher now have the same context menu as links in the chat view. Previously there was no context menu.
- Caught mails and mail addresses not coming from an IRC user (an example would be links contained in a server's Message of the Day text) now have their "From" field filled in with the tab name instead of it being left blank in the URL Catcher.
- Fixed a bug causing the DCC Status tab to sometimes prematurely claim a transfer status of 100%, as well as an unrealistic transfer speed, when sending a file to another user. The transfer would go on until actually finished; merely the information shown in the interface was defective.
- Fixed log viewer tabs not observing the chat window background image setting.
- Fixed log viewer tabs not reacting to changes to the chat window background color or font settings.
- Fixed raw log tabs only applying the chat view background image setting on configuration changes, not when initially being opened.
- The removal of the frame around the tab widget is now exclusive to KDE 4.3. We do it by way of enabling document mode for the tab widget (which is new in Qt 4.5), which renders badly in versions of the Oxygen style found in KDE versions earlier than 4.3, and the workaround we previously applied to make it work even with those older Oxygen versions had the unwelcome side-effect of breaking the application of color preferences to the input bar and nickname list.
Konversation 1.2-alpha4 has been released! (July 4th, 2009)
Alpha 4 marks a significant milestone on the way to feature completeness for the v1.2 release of Konversation. New features in this release include UPnP NAT traversal support for DCC file transfers and chats, DH1080 key exchange support for Blowfish encryption and the ability to automatically split very long actions (i.e. usage of the '/me' command) into multiple messages conforming to the maximum length of an IRC message (this was already supported for regular messages for some time).
Many bugs have also been addressed, including an important fix for invitation dialogs causing disconnects by timeout if they were not dealt with quickly enough - and not only is the rewritten dialog non-blocking, it also allows for handling multiple outstanding invitations in a single dialog, rather than a new dialog being displayed for every additional invitation received. Other fixes include further interface polish and robustness and correctness improvements to Blowfish encryption, the Watched Nicks Online system and the storage of per-tab encoding preferences in the configuration file.
A closing note for packagers: In this release we have replaced our custom implementation of the Blowfish encryption algorithm with an optional dependency on the Qt Cryptographic Architecture (QCA) library in version 2 or higher. By implication, Blowfish encryption support is now optional: A QCA2-enabled build will have it; a build not using QCA2 will not.
Changes from 1.2-alpha3 to 1.2-alpha4:
- Changed links to KDE's (and hence our) bug tracker throughout the codebase to use https://bugs.kde.org/ rather than http://bugs.kde.org/
- Fixed the "Show Menubar" item not getting removed from the chat view context view after showing the menubar again. Also added a separator after the item (only visible when it is present).
- Switched the timestamps in log files to use KDE's locale settings for formatting the date and time, as the equivalent Qt API used previously seems to look at the value of LC_NUMERIC to detemine the format in Qt 4, which doesn't meet user expectations.
- Fixed the "Date" column in the topic history of the Channel Options Dialog not using KDE's locale settings to format the value.
- Fixed the "Date" column in the Channel Settings dialog's topic history sorting alphabetically rather than by date.
- Improved Windows support in the bundled 'media' script.
- Fixed the vertical alignment of the topic label when using Qt 4.5 (it's now top-aligned rather than vertically centered, i.e. making the topic area bigger than the topic by dragging the splitter down won't cause the topic to move down to stay in the vertical center anymore -- Qt 4.5 is needed because a method to retrieve the document margin from the chat view to use as the top margin for the topic label is new in that version).
- Fixed various chat view messages containing date/time values (channel created, topic set, online since, ban info) not using KDE's locale settings for their display format.
- Added support for using UPnP for NAT traversal for DCC file transfers (both active send and passive receive) and DCC chat. When UPnP is enabled in both Konversation and your router, Konversation now knows how to ask your router to set up the necessary port forward, and also how to to ask it to remove it later.
- Added support for the KDE 4 version of JuK to the bundled 'media' script.
- Fixed '/msg <channel> <message>' not displaying the resulting message in the target channel when the user is attending that channel.
- Made the appearance of the line informing about the message being sent with '/msg <nick|channel> <message>' consistent between channel, query and status tabs (it now looks like in the former in the latter two as well).
- Fixed the visualization of '/msg <nick|channel> <message>' (i.e. the '<-> target> message' line) being shown only after adding the resulting message to the target chat view (if present), causing an odd-looking order if the origin view and the target view are the same.
- Watched Nicknames Online now generally operates on networks by their internal unique IDs rather than names, enabling it to handle multiple configured networks with identical names properly.
- Konversation's custom implementation of Blowfish encryption has been replaced with an optional dependency on the Qt Cryptographic Architecture (QCA) library version 2.
- The '/setkey [nick|channel] <key>' command now recognizes 'cbc:' (cipher-block chaining) and 'ecb:' (electronic codebook) prefixes in the key field to set a particular Blowfish block cipher mode of operation, defaulting to the value of a config dialog preference (Behavior -> Connection-> Encryption -> Default Encryption Type, the default is Electronic Codebook (ECB)) when no prefix is given.
- Fixed crash when opening links with ' in them when the "Custom Browser" preference is enabled in Konversation's config dialog.
- Improved consistency of link opening behavior between the chat view, the topic label and the URL catcher (all three now use the new-in-KDE-4 KToolInvocation API to invoke the KDE default browser, whereas the topic label and the URL catcher were still using KRun until now).
- Fixed a bug that could cause the state of the spell-checking setting for the input line to be lost across application restarts.
- Added support for considering square brackets ([]) part of URLs.
- Fixed the code producing multiple JOIN commands for auto-join as necessary to stay under the 512 byte limit for a single command to take the length of the commas in the commands into account when calculating the distribution of the channels among the multiple lines, as well as not to list channels falling at the boundary twice, once in the current and once in the following line. In English: Fixed auto-join with a massive amount of channels possibly not joining all channels correctly.
- Fixed a bug causing re-joining of password-protected channels to fail on reconnects when those channels also had another mode with a parameter set.
- Fixed a bug that caused query lines written by the user that are so long that they need to be split up into multiple messages not to display in the query text color.
- Fixed a bug causing query lines written by the user that are so long they need to be split up into multiple messages for sending not to be displayed in the configured query text color.
- Fixed the status bar showing HTML data when hovering the contents of the info label area at the top of query tabs. The data was actually supposed to be displayed as a tooltip (just like the nickname list item tooltips in channel tabs), and is now.
- Fixed a bug causing the automatic away system to set the user away again on the next periodic activity check when no further mouse/keyboard activity occurs after unlocking the screen/ending the screensaver.
- Implemented splitting up of overly long actions (i.e. usage of the the '/me' command) into multiple messages to stay under the 512 byte message length limit (in raw format) imposed by the IRC protocol. As with the normal message splitting, this is aware of how multi-byte/variable-width text encodings and sender hostmask length (which is part of the message on the receiving end) factor into the matter. Note that only the first message is actually sent as an action, the other messages are sent as normal messages - intentionally, as this seemed to make the most sense formatting-wise.
- Fixed the dialog box appearing upon receiving an invitation to join a channel causing a disconnect by timeout when not being dealt with by the user swiftly enough.
- Multiple invitations to join channels are now being handled by a single dialog box per connection, so that receiving many invitations in short order no longer means getting flooded with dialog boxes.
- Implemented DH1080 key exchange support for Blowfish encryption. You can use the '/keyx' command to initiate a key exchange.
- The raw log now shows encrypted incoming and outgoing messages in their encrypted form. Previously, incoming messages were being decrypted before being shown, and outgoing messages were being shown before encryption took place, thus not capturing what was actually coming from or going to the network socket as is the intent of the raw log.
- Fixed a bug causing unrecognized channel mode characters being shown as their decimal value in the chat view messages announcing them having been set or removed.
- Per-tab encoding settings for tabs belonging to a connection to a configured network (i.e. one found in the Server List dialog) now reference the unique ID rather than the name of the network in the config file, making things work reliably across restarts even when there are multiple identically named networks. Encoding config file entries for tabs belonging to connections to servers that are not part of a configured network continue to reference the server hostnames.
- Fixed the "(away)" label in front of the input line, indicating away status, not showing up in query tabs.
Konversation 1.2-alpha3 has been released! (June 2nd, 2009)
This third alpha fixes a fair amount of annoying bugs encountered in day-to-day usage, as well as a serious bug in handling NAMES messages from IRC servers. We've also made some UI changes that we'd like to get your feedback on: We've changed the default tab completion mode to "Cycle Nicklist", and we've removed the frame around the tab widget when using the listview version of the tab bar.
Changes from 1.2-alpha2 to 1.2-alpha3:
- Worked around a Qt bug that has a text selection in the chat view that includes the last line in the view grow to include the new text when new text is appended to the view.
- Fixed Konversation exposing various signals on D-Bus that it shouldn't have.
- Fixed a regression causing '/names #channel' to end up duplicating the nickname list contents when already attending '#channel'.
- When using Qt 4.5, Konversation no longer paints a frame around the UI elements of a view (e.g. a channel) when using the listview version of the tab bar. Feedback on this change is appreciated!
- Fixed duplicated messages about DCC transfer failures in the chat view.
- When the menu bar is hidden, the top-most item in the chat view context menu is now the option to unhide it again.
- Fixed the OSD disappearing also cancelling the system tray blinking notification.
- Fixed a crash on quit by D-Bus / by KDE session logout.
- Fixed the tab completion nickname list sorting behavior for the "Shell-like" completion modes. The behavior now matches the "Cycle Nicklist" mode and the "Shell-like" modes of previous Konversation 1.x versions again: The last active nick for the given prefix is at the top of the list, with the rest of the list sorted alphabetically.
- The default tab completion mode has been changed to "Cycle Nicklist". Feedback on this change is appreciated!
- Changed the bundled 'bug' script to perform a quick search with the given parameter, rather than try to use it as a bug ID directly. The resulting behavior is unchanged for a numerical parameter, but with a string, much more useful.
- The 'mail' script, which was disabled in the build system up until now, is now getting installed again.
- Fixed a bug causing the "Set Encoding" menu not to work.
- Fixed a bug causing the bundled 'media' script not to work when used to retrieve song information from Amarok 2 for a song which has any of the following meta data fields not set: title, artist or album.
- Fixed the 'Self' field of the DCC transfer details panel not showing the port when available.
- Fixed DCC transfers showing an average speed of 1 TB/s in their first second.
Konversation 1.2-alpha2 has been released! (May 26th, 2009)
After just under a week's worth of adding back some missing functionality, polishing the interface and, of course, of fixing bugs, we've decided to bring you Konversation 1.2-alpha2. While there were no major defects discovered in alpha1, this one should yield an overall more refined user experience, and brings us another good step closer to our first stable release for KDE 4.
Changes from 1.2-alpha1 to 1.2-alpha2:
- Fixed nicknames in action messages using the message text color when nick coloring is disabled rather than the correct action text color as the rest of the message.
- Added back the context menus for nicknames and channel links in the chat view.
- Fixed the topic/info area in channels, queries and DCC chats, the nickname list in channels and the listview variant of the tab bar not keeping their sizes when the window is resized.
- Added missing actions ("Reconnect", "Disconnect", "Join channel ...") back to the context menu for server status tabs.
- Improved the placement of the "Join on connect" channel tab context menu item (back under "Enable Notifications" as in v1.1).
- Added the use of some of the new irc-* icons found in recent updates to the Oxygen icon theme.
- Fixed crash when joining a channel after having been blocked from getting the topic for the channel.
- Made the initial size of the "Edit Network" dialog more reasonable.
- Improved vertical size of and text alignment inside the input line.
- Added back support for drag and drop reordering of views to the listview version of the tab bar.
- Added back support for "surfing" in the listview version of the tab bar by pressing and holding the left mouse button on a view and moving the mouse up and down in the list view.
- Fixed mouse handling for close buttons in the listview version of the tab bar.
- Added back support for showing tooltips for truncated view items in the listview version of the tab bar.
- Fixed crash when receiving lines terminated by LFCRLF from buggy IRC servers (such as the shroudBNC IRC proxy when it relays a private message received while no user was connected to it).
- Worked around a Qt bug that has a text selection in the chat view that includes the last character in the view grow to include the new text when new text is appended to the view.
- Sound notifications for highlights now reuse a single Phonon MediaObject by enqueuing notification sounds rather than instanciate a new one for every notification, improving resource efficiency and hopefully taking care of some high CPU usage reports that seemed to be linked to Konversation's Phonon usage.
- Fixed the enabling/disabling of the "Find Previous" action.
- Fixed several bugs in the Server List dialog (sort indicator disappearing while dragging items, stray pixel in the top-left corner of the listview, hover decoration while dragging not always showing).
- Improved handling in the Identity editor dialog: When Konversation complains about one or more required fields not being filled in, the dialog will now put focus on the field when it opens.
- Fixed the 'Self' IP field of the DCC transfer details panel not showing a value when on the receiving end of a DCC file transfer.
- Handle DCC REJECTs. A DCC SEND is now automatically aborted when the partner rejects it.
- Fixed a bug causing the ordering of views to be partially reversed when switching from the listview version of the tab bar to the regular tab bar.
- Improved consistency of the context menu for links between the topic area and the chat view.
- Fixed repeated searches for the same search pattern (i.e. "Find Next") sometimes not working reliably with the chat view search bar.
- Minor code cleanups and performance improvements.
Konversation 1.2-alpha1 has been released! (May 20th, 2009)
We're happy to bring you this first public release of the KDE 4 version of Konversation.
Despite the "alpha" moniker we've settled on for this one, mostly due to not yet being feature-complete (see below), this port has already been used productively by a fair number of people for some time and should be stable enough for general usage. In fact, certain features, notably DCC file transfers and auto-replace, are expected to be more robust than in Konversation 1.1.
While this version largely achieves feature parity with Konversation 1.1 (and adds several new features on top), notable exceptions are the lack of support for marker lines as well as nick and channel context menus in the chat view. These are pending the merge of a rewritten chat view and will make a return before the final Konversation 1.2 release. Other known issues in this version include a lack of KDE 4 HIG compliance in the configuration dialog and various minor interface polish problems; these will be addressed as well.
Enjoy, and don't forget to report any bugs you encounter!
Changes from 1.1 to 1.2-alpha1:
- Ported to KDE 4 (KDE 4.1 or higher is required).
- Enabled the (experimental, hackish) Amarok 2 support in the 'media' script.
- Fixed a bug that could cause channel notifications to be lost across reconnects.
- Removed the code to recreate hidden-to-tray state across application restarts. It was broken after the shutdown procedures were moved to a point in time after after the main window is hidden to cover quit-by-DCOP, and Konversation 1.1 features an explicit hidden startup option that fulfills user demands more accurately anyhow. This fixes a bug that made Konversation always hide to tray on startup regardless of the aforementioned option when the system tray icon was enabled.
- Added a network settings lookup fallback to retrieving the key of a channel. Previously, this relied solely on the channel's mode map. Closes the brief gap between a channel join and the server's reply to MODE where possible, so that e.g. reconnecting directly after auto-joining a channel with a key doesn't result in a failed rejoin due to not having the key by way of the MODE reply yet.
- Fixed opening URLs from the channel topic context menu in Channel List tabs.
- When connecting to multiple selected unexpanded network items from the Server List, don't also try to connect to the hidden server sub-items selected by implication, avoiding unwanted connection duplicates.
- Mask the password field in the Quick Connect dialog.
- Fixed a bug causing passive DCC file transfers to stall at 99%.
- Fixed "/leave" command in queries.
- Fixed auto-replace rules containing commas in the pattern not being loaded correctly from the config file.
- Fixed non-regex mode auto-replace rules containing regex special characters and character sequences not working correctly.
- Improved performance of non-regex mode auto-replace rules.
- Added option to open log files with the system text editor instead of the built-in log viewer.
- Made the Oxygen nicklist icon theme the default nicklist icon theme.
- Removed the bundled 'weather' script (it relied on a KDE 3 service no longer present in KDE 4; a replacement will need to adopt a new approach).
- Fix sending and receiving of files with names containing spaces
- DCC Protocol adjustment to proper handle passive DCC resume/accept requests. (this breaks passive-resume compatibly with
- Send proper DCC reject commands when rejecting a queued receive.
- Improved error recovery during dcc send.
- Fix time left for transfers that finished in under 1 sec displaying infinite time left.
- Increased default DCC buffer size to 16384 to reduce CPU load while sending or receiving files.
- Added KNotify events for "Highlight triggered", "DCC transfer complete" and "DCC transfer error".
- Fixed Automatic User Information Look Up not being started upon channel join on some IRC servers (namely those that don't send RPL_CHANNELCREATED after joining a channel, such at those used by IRCnet).
- Updated the server hostname for the pre-configured Freenode network to the one given on their website these days, 'chat.freenode.net'.
- Added support for browsing the input line history by using the mouse wheel.
- Fixed problems the bundled 'tinyurl' script had with certain URLs by converting it to use the TinyURL API rather than screen scraping.
- Added initial support for the MODES parameter of RPL_ISUPPORT. When giving or taking op, half-op or voice to/from multiple people at once, Konversation will now combine as many of them into a single MODE command as the server advertises it supports (as long as it advertises an actual value; the value-less unlimited MODES case is not supported yet as it requires more work on limiting MODE commands to the 512 byte IRC message buffer limit for extreme cases). If MODES is not given at all by the server, the fallback is an RFC1459-compliant value of 3.
- Added support for formatting variable expansion in the replacement part of auto-replace rules.
- Rewrote multi-line paste editor, improving handling and appearance.
- Added button to intelligently replace line breaks with spaces to the multi-line paste editor.
KDE 4 port: New SVN path, translations
The work to port Konversation to KDE 4 has been progressing well since the last update. While there are still some odds and ends left to tie up, the port has generally been fairly stable and usable for some time now, and many of you have switched to it already. Reflecting that, we have moved back from /branches to /trunk in KDE SVN. In other, more succinct words:
The new SVN path for the KDE 4 port is now: /trunk/extragear/network/konversation
... just as it used to be in the old days.
A welcome side-effect of the new (old) SVN location is being back on the radar of KDE's awesome translation teams and their infrastructure, so many of you should now be able to enjoy KDE 4 Konversation in your native language - the existing KDE 3 translations have been moved as well to form a strong basis for this.
A public alpha release is not far off at this point. If you want to get involved as we zero in on the target of our first stable KDE 4 release, check out the todo list on the bug tracker.
News update: KDE 4 port, 1.1.x plans, Qt 4.5 Beta 1
A bunch of noteworthy items:
The initial KDE 4 port of Konversation has landed in SVN. There's still a lot of work to be done; join us at #konversation on Freenode or at our mailing list if you're interested in helping out.
We're planning on shipping a 1.1.1 maintenance release for KDE 3 this quarter, rounding up the bug fixes done since 1.1 and enabling Amarok 2 support in the bundled 'media' script.
Speaking of the 'media' script: If you're using Qt 4.5 Beta 1, you might have noticed Amarok 2 support no longer working. This is due to a change in the default output format of the 'qdbus' application included with Qt. This change has since been reverted, so a recent Qt 4.5 snapshot should get you back in the game.
Attention Amarok 2 users
Those wishing to query their Amarok 2 music player (Beta 1 released) from within Konversation using /media or /audio will be interested to learn that the 'media' script shipped with Konversation 1.1 does in fact contain experimental Amarok 2 support, albeit disabled due to being merged during feature freeze.
If you're familiar with Python coding, you may simply want to edit your existing copy yourself. Alternatively, grab the latest version (with Amarok 2 support enabled by default) from SVN, move it to ~/.kde/share/apps/konversation/scripts/ and mark it as executable to override the system-installed version.
To those in the know, please note that the implementation is presently Amarok 2-specific; a generic MPRIS client implementation for the 'media' script is planned to be included with the initial KDE 4 release of Konversation (and yes, we're making progress on that).
Konversation 1.1 has been released!
We are extremely pleased to announce Konversation's newest major release, v1.1. Konversation 1.1 is a special release for us in multiple ways: It's our farewell to KDE 3, by way of being the last major release built upon that venerable platform. It's also our biggest release yet, in terms of the number and magnitude of the changes.
The additions and improvements in this release are both user-visible and under the hood. Some of the highlights are rewritten connection handling (robustness and correctness improvements, better support for IRC URLs, bookmarking and more), redone DCC with better UI and Passive/Reverse DCC support, a redone away system with the addition of auto-away support, redone and much more useful remember / marker line support, a new outbound traffic scheduler that is capable of aggressive throttling to avoid flooding while smartly reordering messages to improve latencies, great convenience additions like a "Next Active Tab" shortcut, and much, much more, along with a large number of bugfixes and tweaks to round things out. Note: All fixes made since RC1 are marked with a "[New since RC1]" label in the changelog.
We're confident that this release is the best and most robust version of Konversation published so far, and upgrading comes highly recommended to all users. Enjoy!
Changes from 1.0.1 to 1.1:
Text views
- Added an option to hide the scrollbar in chat windows.
- Don't scroll to bottom if the view was scrolled up before resizing.
- Fixed chat views occassionally not being scrolled to the bottom at their inception with long backlog appends.
- Fixed an off-by-one error in scrollback culling.
- Fixed a bug that lead to single leading whitespace characters in lines being omitted from display in chat windows.
- Now preserving trailing whitespace in raw log tabs.
- Fixed display of '<' and '>' in backlog lines.
- Fixed copy/paste with shortcuts other than the default Ctrl+C/V ones.
- Fixed onotice display.
- Fixed middle-click-to-open-in-new-tab on chat window URLs when Konqueror wasn't running.
- Fixed superfluous closing parenthesis being inserted after links in lines which contain multiple links followed by closing parenthesis.
- Fixed URLs with encoded hash mark %23 being incorrectly passed off to handler.
- Fixed variable expansion causing certain URLs to be corrupted when pasted.
- Added a "Save Link As" item to the context menu of links in the chat window.
- Have the "Save as..." dialog suggest a file name.
- Implemented Shift+Click to "Save as..." URLs..
- Made the channel links context menu work in server status views.
- Fixed nickname links in chat view messages created as a result of '/msg
' commands erroneously prepending '->' to nicknames. - Fixed operations on nicknames containing "\" characters from the nickname context menu.
- Fixed query view context menus operating on the wrong nickname under certain circumstances.
- Fixed a bug that caused the "Send File..." action in the generic query context menu to pick the wrong recipient after hovering the user's own nick in the chat display.
- Fixed date display not using the locale's date format.
- Fixed IRC color parsing so that the colors gets reset to default if no color numbers were given.
- Fixed a bug that could cause the text selection in a chat window to be messed up when new text was appended.
Marker/Remember Lines
- Konversation now distinguishes between manually and automatically inserted marker lines, making the "show line in all chat windows" preference less confusing.
- The automatically inserted remember lines when chat windows are hidden are now "sliding", i.e. there is only one per chat window, and it moves.
- Automatically inserted remember lines will now optionally only be inserted when there's actually new text being appended to the chat window (enabled by default).
- The automatic remember line will now also be inserted when the window has lost focus.
- Added an action to clear all marker lines in a chat window.
- Improved marker lines-related preferences and terminology.
- Improved the appearance of marker lines in the chat window.
- Made the (marker line-related and other) identity default settings consistent between the initial identity and additional newly created identities.
- Fixed hidden join/part/quit events marking tabs as dirty, allowing multiple consecutive remember lines to appear.
- Fixed crash when minimizing or closing the application window prior to any tab switch when the auto-insertion of remember lines is enabled.
Input line
- Fixed input line contents rather than actual sent text being appended to the input history upon a multi-line paste edit.
- Special characters and IRC color codes will now be inserted at the cursor position rather than the end of the input line contents.
Nickname list
- Implemented an additional "Sort by activity" nicklist sorting mode.
- Added Oxygen nicklist icon theme by Nuno Pinheiro.
- The list of nickname list themes is now sorted alphabetically.
- Fixed race condition when removing a nicklist theme (listview would be repopulated before deletion was complete).
- Fixed using the wrong palette for the disabled text color in the nickname list.
- Fixed moving back from the custom alternate background color to system colors in the channel nickname listviews when disabling the "Use custom colors for lists, [...]" preference.
- Cleanups in the nicklist item code.
Tab bar / Tree list
- Added option to add and remove a channel from its network's auto-join list from the tab context menu.
- Added option to close tabs using middle-mouse.
- Slightly sped up tab switching by eliminating some redundant UI action state updates.
- Channel tabs will no longer close when kicked, but rather grey out on the tab bar and offer context menu actions to rejoin.
- Channel and query tabs will now grey out on the tab bar when disconnected and no higher priority notification is present. Channel tabs will only ungrey if and when the channel is successfully rejoined after reconnect; query tabs ungrey immediately once reconnected.
- Display tooltips for truncated treelist items.
- Fixed forwarding keyboard events received by the treelist to Konsole widgets and focus adjustment thereafter as well as generally after switching to Konsole tabs by other means.
- Fixed treelist scrollbar not picking up on new palette when the KDE color scheme changes.
- Fixed a bug that could cause a crash when the view treelist would receive keypress events during application shutdown.
- [New since RC1] Fixed a corner case where a server status item could become a child item of another server status item when dragging it below an special application pane item such as DCC Status or Watched Nicks Online.
- [New since RC1] Fixed a crash when using the mouse wheel on the list within ~150ms of a drag and drop operation.
System Tray icon
- Remember and recreate minimized-to-tray state across sessions.
- Added option for hidden-to-tray startup.
- Reload tray icons when the icon theme changes at runtime.
- Added option to not blink the systray icon, but just light it up.
Channel Settings Dialog
- Added a search line to the ban list.
- Fixed sorting the ban list by time set.
- Made the ban list's "Time Set" column use KDE locale settings for the date format.
- Fixed OK'ing/Cancel'ing/closing the Channel Settings Dialog not dealing with open ban list in-line edits correctly.
- Reset topic editbox when the channel options dialog has been dismissed with cancel.
- Fixed incorrect time display in the topic history list in the Channel Settings dialog.
Server List Dialogs
- Moved the "Show at application startup" option for the Server List dialog to the dialog itself.
- Auto-correct hostnames and passwords entered with preceding or trailing spaces in the Server List dialog.
- Don't allow impossible ports to be set for servers.
- Sensible default focus in the server list dialog.
- Fixed unresponsive, defective Server List dialog window appearing at application startup using the Beryl or Compiz compositing window managers.
Interface Misc
- Added a "Next Active Tab" keyboard shortcut to jump to the next active tab with the highest priority notification.
- Added a Find Previous standard action.
- Have the "Insert Character" dialog pick up on text view font changes.
- Show correct number of colors in the color chooser dialog.
- Made "Alternate Background" colorchooser disable when unneeded.
- Fixed crash when changing the KDE color scheme while a non-chat tab is open.
- The encoding selection now allows returning to the used identity's default encoding setting.
- Update actions on charset changes.
- Added Notifications Toggle and Encoding sub-menu to the window menu.
- Moved "Hide Nicklist" menu action from Edit to Settings.
- Fixed the "Automatically join channel on invite" setting not to show an inquiring dialog anyway.
- Fixed saving the state of the invitation dialog option in the Warning Dialogs preferences.
- Added a warning dialog for quitting with active DCC file transfers.
- Return focus to the text display widget after closing the search bar in a log reader view.
- Made pressing Return or Enter in the Log File Viewer's size spinbox apply the setting, just as pressing the Return button.
- Fixed a bug where the SSL padlock icon would be shown on a non-SSL connection (and clicking would cause a crash).
- Empty topic labels will no longer show empty tooltips, but rather none at all.
- Added a sample 12-hour clock format string to the timestamp format combobox.
- Timestamp format list is no longer localized.
- Robustness improvements and less UI quirks around channel password handling.
- Improved general layout and consistency of tab, chat view, query and topic context menus. Added some missing icons.
- Fixed some bugs of UI actions not being appropriately as their context changes.
- Fixed enabled state of "Close All Open Queries" action not being updated correctly when queries are closed by way of closing a status view tab.
- The window caption is now properly being reset when the last tab is closed.
- Made units in spinboxen in the identity and app preferences UI more consistent.
- Minor fixes to accelerators and tabbing order in various dialogs.
Commands
- Support command aliases in network connect commands.
- Turned parameter-less '/away' into a toggle: Sets away state with default message initially, and unsets away state if already away.
- Added an '/aunaway' command to complement '/aaway' (previously, there was only '/aback').
- Added support for '/kill'.
- A '/join' command for an already-joined channel will now focus it.
- Added an '/encoding' command as an alias to '/charset'.
- '/charset' and '/encoding' now accept 'latin-1' as an alias for 'iso-8859-1'.
- Improved messages for the '/charset' and '/encoding' commands.
- Rewrote /me parsing to be less hackish and display usage info with an empty parameter.
- '/msg
' is no longer treated as equivalent to '/query '. - '/msg
' will now error out when lacking a message parameter. - '/query
[message]' will now error out when recipient is a channel. - Added a '/queuetuner' command to bring up the outbound traffic scheduler's tuning/debug pane.
Notifications
- Seperated query messages and messages containing the user's nickname into two distinct KNotify events.
- Made the tab notification color of private messages configurable independently from normal messages.
- Don't highlight own nick on topic created by messages.
- Fixed disabling notifications for a tab not cancelling highlight sounds.
- Fixed a race condition where a highlight's autotext reply would outrun the original line's tab notification.
- Fixed actions in queries and DCC chats producing message notification events (rather than the correct private message ones).
- Changed the OSD screensaver check logic to work in KDE 4.
- [New since RC1] Fixed on screen display occassionally reverting to the default position when using the settings dialog to change unrelated settings.
Connection handling
- Improved behavior with regard to reusing existing connections in connection attempts that provide an initial channel to join, such as command line arguments, the DCOP interface, the bookmark system or irc:// links). Previously, the application would have inconsistently either reused an existing or created a new connection.
- Better dialog messages in the interactive variant of the decision to either reuse or create a new connection (from the Server List dialog and the Quick Connect dialog).
- Improved and more consistent display of connection names (i.e. network or server host name) throughout the application.
- Much improved irc:// URL support for connection intanciation, with support added for IPv6 host names and many of the features proposed by the Mirashi specification.
- Eliminated redundant irc:// URL parsing codepaths in favor of a single one.
- Added support for irc:// URLs to the chat views.
- Removed "konversationircprotocolhandler" shell script. The Konversation executable now understands irc:// URLs directly.
- Initiating connections from command line arguments and options now works also when the application is already running.
- Fixed a bug that would cause a connection initiated from command line options not to get past the identity validation stage when the configuration file was unitialized and empty.
- The server list dialog will now always be closed when starting Konversation with command line arguments to initiate a connection, consistent with the configuration-based auto-connect behavior.
- Providing a channel in the creation of a new connection (i.e. via command line arguments, the DCOP interface, the Quick Connect dialog, the bookmark system or irc:// links) now consistently pre-empts the stored auto-join channel list if the target of the connection is a network or the hostname is found to be part of a configured network. Previously, this would only work for Quick Connect and the bookmark system (which caused the infamous Sabayon user flood in #kde due to their "Get Support" desktop link connecting to Freenode, which in an unconfigured Konversation has #kde in its auto-join list).
- Connections now have globally unique IDs.
- The DCOP interface now understands connection IDs in addition to host names.
- The scripting systems now uses globally unique connection IDs rather than server host names to refer to connections, fixing a bug where scripted responses were being handed to all connections sharing a hostname (which was actually intentional in the absence of connection IDs, but undesirable for users).
- Improved iteration behavior over a network's server list on connection losses.
- The "Reconnect" action now works also when Konversation doesn't consider the connection to be in a disconnected state.
- Improved the server status view messages related to reconnection attempts.
- Consistently apply the "Reconnect delay" setting (previously confusingly named "Reconnect timeout"), which wasn't done before.
- Fixed a bug that could cause the connection process to claim that a DNS lookup was successful when it actually wasn't.
- Fixed opening bookmarks with spaces in the target address name (which may be a network name, and networks may have spaces in their name).
- Properly update the state of the "Add/Remove to Watched Nicknames" nickname context menu actions when the connection isn't to a config-backed network, in which case there's no way to store and make use of those list entries.
- Fixed a crash when quitting the application with a resident connection that disconnected due to an SSL error.
- Fixed crashes in the DCOP interface if no connection was present.
- Make the "Reconnect" action available even while ostensibly in the process of connecting.
- Fix possible crash when closing all views and subsequently creating a new connection.
- Fixed crash upon auto-connect at application startup.
- Improved the naming of preferences related to automatic reconnection attempts to be less confusing.
- Made it possible to set the number of automatic reconnection attempts to unlimited.
- Provided better default values to the preferences related to automatic reconnection attempts.
- Fixed crash when opening a Konsole tab and Konsole was not installed.
- Fixed allowing the user to create an infinite loop of showing the SSL connection details dialog upon being presented with the invalid certificate multiple choice dialog at connection time by checking "Do not ask again" and then clicking "Details".
Identities
- Made it possible to set a Quit message independently from the Part message.
- Saving a newly-created identity is no longer allowed without entering a real name.
- Apply switching the identity in the identity dialog as opened from the network dialog to the network's settings.
- Have the Edit/Delete/Up/Down buttons for the nickname list of an Identity correctly change state according to the selection
Away system
- Added per-identity support for automatic away on a configurable amount of user desktop inactivity and/or screensaver activation, along with support for automatic return on activity.
- Fixed the "Global Away" toggle to make sense and update its state properly.
- Turned parameter-less '/away' into a toggle: Sets away state with default message initially, and unsets away state if already away.
- Added an '/aunaway' command to complement '/aaway' (previously, there was only '/aback').
- Broadly rewrote away management related code for improved robustness and less duplication and hacks (e.g. no more abuse of multiServerCommand for global away).
DCC
- Massive DCC refactoring and improved reliability.
- Passive DCC support (Reverse DCC RECV, SEND).
- Replaced the DCC Transfer Details dialog with a retractable transfer details pane directly in the DCC Status tab.
- Added DCC transfer average speed reading to the DCC transfer details panel.
- The DCC Status tab now remembers its column widths across sessions.
- Fixed duplicated quotation marks around file names in DCC transfer status messages.
- Fixed "Open File" DCC dialog remembering the last viewed location incorrectly.
- Added an "Open Folder" button to the DCC transfer details panel.
- Added check for whether the URL is well-formed before initiating a DCC send. Fixes a bug of dragging a nickname link in the chat view onto the query chat view drop target starting a DCC transfer that cannot succeed.
- Ported the DCC code away from relying on server group IDs to refer to connections, made it use connection IDs instead. Fixes potential bugs with multiple concurrent connections to the same network.
- Fixed queued DCC transfer items not picking up on download destination directory changes.
- Fixed bug leading to crash upon initiating DCC Chat when "Focus new tabs" was enabled.
- [New since RC1] New transfer items added to the DCC panel's transfer list are no longer automatically selected, meaning work on other items in the list occuring at the same time no longer gets interrupted.
- [New since RC1] The "Filename:" line in the DCC panel's detailed info pane is now using text squeezing to avoid an increase in minimum window width with long file names.
- [New since RC1] Failed receives now longer show 833TB/s as their transfer speed.
Blowfish support
- Fixed FiSH-style +p prefix to send clear text to channel despite an encryption key being set.
- Text encoding is now being applied to the cleartext, rather than the ciphertext. This fixes using characters outside the ASCII range with blowfish encryption.
- Fixed CTCP (and thus DCC) requests to nicknames for whom an encryption key is set.
- Added support for encrypted topics.
- If an encryption key is set, a lock icon will now be shown next to the input box.
- Added a '/showkey
' command to show the encryption key for the target in a popup dialog.
Auto-replace
- Improved auto-replace behavior with multiple matches in one line (fixes multiple Wikipedia links).
- Fixed bug that could cause auto-replace to replace the wrong group of the matching string.
- Auto-replace is now case-sensitive in regular expression mode.
- Added regular expression editor button to auto-replace preferences.
- Fixed conditional enabling of the RegExpEditor button in the auto-replace preferences page.
Ignore
- Fixed being asked twice whether to close a query upon ignoring the opponent.
- Fixed crash when opting to close a query upon chosing to ignore the opponent from the context menu of his nickname.
Watched Nicknames
- Improved robustness of the Watched Nicknames Online system.
- The "Offline" branches in the "Watched Nicks Online" list will now be omitted when there are no offline nicks for the respective network.
- Fixed display of WHOIS spam prompted by the Watch List's WHOIS activity.
- Connections to non-config-backed targets no longer show in Watched Nicks Online.
- [New since RC1] Actually honor the preference to enable/disable the Watched Nicknames Online system, and apply it at runtime.
- [New since RC1] Make sure the periodic Watched Nicknames Online check actually starts running within the same session after adding the first nickname to the list.
- [New since RC1] Fixed a crash on quit with the Watched Nicks Online tab open and there being an open connection to a network that nicks are being watched for.
Channel List
- IRC markup is now removed from content in the Channel List view.
- Speed improvements in Channel List views.
- Fixed keyboard accelerator collisions in Channel List views.
- Allow higher values than 99 in the min/max users filter spin boxes in Channel List views.
Under the Hood / Protocol
- Rewrote the outbound queue scheduling system to be smart enough to reorder outbound traffic to reduce interactive latency while aggressively throttling the rate to prevent flooding. Use '/queuetuner' to tweak.
- Rearranged when and how auto-who is triggered upon channel join a bit, to avoid excessive flooding on multiple concurrent joins in some cases.
- Auto-Who reliability improvements.
- Fixed auto-join with very many channels (the auto-join command would exceed the maximum buffer length; it is now split into multiple commands as needed).
- Fixed bugs around rejoining channels after reconnects related to the cause of the disconnect, channel passwords and picking the actual list of joined channels over the network's auto-join list.
- Improved behavioral consistency in situations where the auto-join list is preempted by a transitory auto-join channel (bookmarks, etc.).
- Fixed bug that caused the topic state not to be cleared properly prior to rejoining channels during reconnects.
- Fixed onotice payload being cut off after the first word.
- Changed RPL_WHOISOPERATOR handling to internationalize the common case ("is an IRC Operator") and otherwise passthrough the string sent by the server.
- Fixed parsing of alternate invite format on Asuka ircds (QuakeNet).
- Added support for PRIVMSG from the server.
- Support RPL_UMODEIS.
- Announce 'k' channel mode (i.e. channel key) changes in non-raw mode as well.
- The command part of CTCP requests is now always converted to uppercase before sending, as some clients don't like lower- or mixed-case commands as the user may have entered them.
- Display mode for your nick and channels you're not in.
- Fixed per-channel encoding settings for the channels of a network being lost when the network is renamed.
- Fixed crash when receiving actions for channels the client is not attending.
- Made newline handling in the DCOP interface more robust, fixing a potential security problem (CVE-2007-4400).
- A few speed optimizations and memory leak fixes.
- [New since RC1] Fixed a crash on quit during KDE logout or when quitting by DCOP.
Included scripts
- Support for KMPlayer in the 'media' script (based on the window caption, as KMPlayer has no proper appropriate DCOP interface).
- Added KPlayer support to the 'media' script (also caption-based).
- Added support for Audacious to the 'media' script.
- Fixed problems in disk space calculation in the 'sysinfo' script caused by wrapped df(1) output.
- Added KDE 4 support to the 'sysinfo' script.
- Removed some bashisms from the 'sysinfo' script.
- Rewrote 'weather' script for increased reliability in error handling and better readability.
- Removed broken 'qurl' script in favor of new 'tinyurl' one.
- Fixed the 'fortune' script not working properly when variable expansion is turned off in the preferences.
- [New since RC1] Fixed a bug in the 'media' script that caused it to break when querying Audacious with audtool not being available.
Packaging
- [New since RC1] Standards compliancy fixes in the application .desktop file and the nicklist icon theme .desktop files.
Build
- Fixed build with --enable-final.