Konversation 1.4 has been released! (December 4th, 2011)
The dominant theme in Konversation v1.4 is improvements and feature additions to the user interface, particularly to text views, dialogs, (context) menus and input line commands. However, nearly all areas of the application have seen some amount of improvements in this release, as is to be expected given the relatively long relase cycle: Connection behavior, IRC protocol handling, scripting support, encryption support, user documentation - new features, polish and certainly also bug fixes are to be found in all of them. In summary, we hope you will enjoy the best Konversation yet.
The changelog for this release starts with a (very) brief summary of major highlights relative to v1.3.1, followed by the short list of changes since v1.4-beta1. If you skipped the beta, please do refer to the changelog for v1.4-beta1 as well, which is highly detailed and categorized for your reading pleasure.
A brief selection of highlights since 1.3.1:
- URL and email detection in text views has been rewritten from scratch, greatly improving the handling of various types of URLs and the contexts they might appear in.
- Extensive improvements to IRC formatting code handling, including the return of background color support.
- Extensive, sometimes full rewrites of user interface elements such as nearly all context menus, the URL Catcher and the Warning Dialogs system for a long list of user interface improvements and bug fixes.
- Improved SSL connection behavior.
- Translation support and various other improvements in several bundled scripts.
- Expanded Python scripting support via the introduction of an API support package.
- Support for more IRC numerics.
- Various bugfixes to input line command handling and connection behavior.
Changes from 1.4-beta1 to 1.4:
- Fixed +q Type A channel modes (Freenode's "quiet bans") being reported as awarding channel owner privileges.
- Fixed a bug causing the +r channel mode to be incorrectly described as "server reop" in the user interface.
- Improved the description string for the +l channel mode.
- Fixed the parameter handling of the example script in the handbook's section on scripting.
- Fixed build with KDE Platform versions below 4.6.0. The minimum required version is 4.4.3.
- The '/setkey' command now supports keys that have spaces in them, by treating all parameters after the first as part of the key.
- The 'Edit Multiline Paste' editor now puts initial focus on the text field, rather than the Send button.
- Added a sanity check to avoid a crash while processing broken, empty NAMES messages from a server, encountered with the shroudBNC bouncer.
Konversation 1.4-beta1 has been released! (November 1st, 2011)
Konversation v1.4-beta1 is the first pre-release leading up to our next major release. A dominant theme in this release cycle have been improvements and feature additions to the user interface, particularly to text views, dialogs, menus and input line commands. However, as you might expect given the amount of time since the last release (sorry about that :-), improvements are to be found in nearly all areas of the application, including connection behavior, IRC protocol handling, scripting support, and more. Please have a look at the changelog for a short summary of the major highlights, as well as the usual extensive coverage of the details.
Changes from 1.3.1 to 1.4-beta1:
General User interface (more UI changes in individual sections below):
- The code handling the context menus of chat text views (including the context menus for nicks and channel links), channel nickname list views and topic areas has been rewritten from scratch, resulting in a long list of bug fixes and consistency and efficiency improvements:
- Numerous consistency problems in the area of which actions are available in which context menus have been addressed. For example, the chat text nick context menu used to lack many of the actions available in the nickname list context menu.
- Numerous actions that require an established connection (e.g. everything in the "Modes" submenu of nick context menus or the DCC actions) used to not get disabled when loss of connection occured. Others did get disabled, but not consistently in all menus in which they are available. Still others, such as the "Add to Watched Nicks" action, used to get disabled unnecessarily. All of this has been addressed.
- Toggle actions used to appear and behave inconsistently: The nickname list context menu showed either "Ignore" or "Unignore" actions as applicable, while the chat text view nick context menu used a checkable item. Meanwhile, the "Add to Watched Nicknames" action had no corresponding action to remove a nick from the Watched Nicks Online list at all. All of this has been fixed, going with the "Ignore"/"Unignore" style of the nickname list context menu (i.e. there's now a "Remove from Watched Nicks").
- If built against Qt 4.7, the topic area now uses the same context menus as the chat text view (with the exception of the inappropriate "Find Text.." action in the basic context menu), enabling a lot of functionality missing otherwise.
- Some actions used to be shown in menus inappropriately, e.g. the "Channel Settings" action in the chat text view context menu of a connection status tab or the "Open Logfile" action in the same context menu of a raw log tab. This has been addressed.
- The behavior of many of the actions is now more consistent with their input line equivalents. For example, clicking "Join Channel" in a link to an already-joined channel will now focus the existing channel tab, the same as the /join command would do. Previously, nothing would happen.
- Fixed a bug causing the nick and channel link context menus in the chat text view of a channel tab to get disabled after having been kicked from the channel.
- Fixed a bug causing the "Send Email..." action to always be disabled, even when any of the associated address book entries did have an email address on file.
- The display of helpful titles repeating the nick/channel at the top of the chat text view nick and channel link context menus has been fixed - it previously got broken in the KDE 4 port.
- The nick and channel link context menus now mark the action that occurs when clicking either as the default action of the context menu, improving the appearance with UI styles that visually distinguish the default action.
- General improvements to the layout of menus, often with an aim for improved consistency with other KDE applications.
- Numerous actions that were missing icons now have them.
- The consistency of keyboard accelerators between the various menus has been improved.
- Various actions in the nickname list context menu now appropriately use a singular or plural form for their text label depending on the number of selected nicks the menu operates on.
- Improved memory efficiency by using single global instances of the various menus, rather than for example having two separate instances of the nick context menu - one for the chat text view, one for the nickname list view - for every channel tab.
- The code implementing the various actions was in many cases redundantly implemented in three different places, for some even in four. This staggering code duplication has been done away with.
- Links now have an "Open With..." action that opens a dialog allowing to choose in which application to open the link.
- The URL Catcher has been rewritten from scratch, bringing about a number of improvements and bug fixes:
- It is now possible to select multiple list entries, and all of the selection-related actions, such as "Open" or "Add Bookmark", can now operate on multiple selected entries ("Add Bookmark" will offer to add all selected entries as a new bookmark folder, for example).
- Reasonable default sorting: The list is now sorted by the "Date" column in descending order the first time the URL Catcher is opened, so that the newest URLs are found at the top. Previously, the list was sorted by the "From" column in ascending order by default.
- The list data is no longer stored in memory twice while the URL Catcher is open. Data handling is generally more efficient.
- The list entry context menu has been cleaned up, now showing only the actions applicable to individual entries.
- The list now automatically receives keyboard focus when switching to the URL Catcher tab.
- When saving the list to disk, the file dialog to pick the destination file will now ask before overwriting an existing file of the same name.
- The date and time in the header of a saved list file is now formatted according to the user's locale settings.
- Fixed a bug causing the opening of caught irc:// and ircs:// URLs not to work.
- Fixed a bug causing the "Date" column to sort alphabetically rather than chronologically.
- Fixed a bug causing the deletion of list entries not to work.
- Fixed a bug causing a 1px remnant of tree branch lines to be visible along the left edge of list entries.
- An unnecessary margin around the toolbar and the search line edit has been removed.
- Fixed a bug causing the URL Catcher tab to claim to be eligible to receive chat text messages that have the frontmost eligible tab as their recipient despite it not actually possessing the means to display them, resulting in a crash when such a message occurred.
- The Warning Dialogs system has been overhauled, with improved wording in the listing in the configuration dialog (which now also contains the previously missing warning when minimizing to the system tray) and further improvements to individual warning dialogs, such as the addition of previously missing Cancel buttons.
- Added a "Show/Hide Konversation" action that can be used to toggle the minimized state of the Konversation window or, if the tray icon is enabled, its visibility. Additionally, the window will always be moved to the current virtual desktop if shown using this action (if the window is already shown on another desktop, it will be moved to the current desktop rather than hidden).
- It's now possible to give the "Next Active Tab" shortcut a global keyboard shortcut, and when triggered the action will always show, raise and focus the Konversation window (as needed), regardless of whether it will also perform a tab switch. This allows "Next Active Tab" to double as a "get me the Konversation window and the tab that just caused my notifications to go off" global shortcut.
- Clicking the Insert button in the "Insert Character" dialog will no longer immediately close the dialog, making it easier to insert multiple characters in quick succession.
- Double-clicking a character in the "Insert Character" dialog will now insert it into the input line.
- The "Insert Character" dialog now sports a search line.
- The widths of the columns and the sort column and direction in the Channel Option dialog's ban list are now remembered across application restarts.
- The "Rejoin Channel" context menu action, shown when a channel could not be rejoined automatically on reconnect as well as after having been kicked from a channel, will now appear above the "Close Tab" action rather than at the end of the context menu, so "Close Tab" is always the last item.
- The "Ok" button in the "Edit Multiline Paste" editor has been renamed to "Send" to communicate more clearly that clicking it will send the editor contents to the server.
- Formatting control codes (e.g. for colors) in user real names are now filtered out before the names are shown in the nickname list when the "Show real names in nickname list" option is enabled.
- The layout of user information tooltips (shown e.g. when hovering a nick in the nickname list or the header area of a query tab) has been improved slightly.
- Fixed bugs causing the tooltip for the adjacent rather than the hovered item to be shown when hovering the mouse pointer near the upper or lower edges of an item in the nickname list or the listview version of the tab bar (tooltips are only shown on the latter when the listview is too narrow to fit its contents, to provide the unelided tab names).
- Fixed bug causing the IRC Color Chooser dialog to only show 15 colors instead of the available 16.
- Fixed a bug causing a very wide minimum window width when a query tab with very long user information in the header area was open.
- Fixed bug causing the opening of URLs via the "Open URL" sub-menu in the list entry context menu in Channel List tabs not to work.
- Fixed a bug causing actions that are meant to operate on the active tab (e.g. "Close Tab" invoked by the default shortcut Ctrl+W) to operate on a different tab after the "Join on Connect" action in that tab's context menu had been used.
- Fixed a bug causing the state of the Show/Hide Menubar action not to be updated correctly when hiding the menubar was canceled from the warning dialog.
- Fixed a bug causing the "Delete" button in the "Server List" dialog to incorrectly show a "Network needs to have at least one server." error dialog when trying to delete servers, even when the deletion would in fact leave the network with one or more servers.
- Fixed a bug causing the active tab's text label not to be greyed out when its IRC server connection is cut.
- Got rid of some too large margins in the "Edit Network" dialog.
Text views:
- Added support for KDE Web Shortcuts when built against KDE Platform 4.5 or higher: The context menu for selected text in a chat text view then offers a submenu by which the selected text can be used in a web search with any of the enabled search providers. The resulting search URL is opened in the system's default wen browser after clicking on the search provider in the submenu.
- Added support for ircs:// URLs, the 's' standing for 'SSL'. It is supported both for opening and for bookmarking. If an ircs:// URL matches a server configured in the server list or refers to a network name instead of a specific server, the directive from the URL overrides the state of the SSL setting in the configuration.
- Detection of URLs and email addresses in chat text views to turn them into clickable links has been much improved. An incomplete overview of notable cases:
- Unicode characters in URLs are now handled properly, enabling support for example for international domain names.
- Protocol-less links not starting in "www.", such as the short URLs popular these days ("bit.ly/foo" and similar), are now recognized.
- Arbitrary protocols (e.g. "http://" or "message://") are now recognized; previously only a small hand-picked and insufficient set was.
- The check that avoids balanced a pair of parentheses around an URL becoming part of the link now works for more than one level of balanced parentheses.
- Aside from balanced pairs of parentheses, also square and other forms of brackets are now handled properly.
- Trailing question marks no longer become part of the link.
- URLs using uncommon schemas, e.g. Apple message:// URLs or Wolfram Alpha URLs, are now handled properly.
- Numerous improvements to email link handling: User names containing the plus sign are now handled correctly, opening email links from the URL Catcher works now and others.
- The URL detection for the "Open URL" sub-menu in the list entry context menu in Channel List tabs now uses the same infrastructure as link detection elsewhere rather than separate code, making it massively better compared to previous versions.
- Average speed of link detection has improved slightly.
- Added support for dragging web and email address links found in topic areas.
- IRC formatting markup (colors, bold, italic, etc.) support in chat text views and the topic editor has been improved significantly:
- Background colors are now supported.
- The reverse color formatting character is now supported.
- To emphasize usability, links are now consistently displayed using the link and background colors from the configuration dialog, regardless of preceding formatting markup or formatting markup located within the link.
- Formatting markup located within links in incoming messages no longer results in those links being broken.
- Fixed bugs resulting in incorrect display of messages containing multiple formatting characters.
- Improved robustness in the face of invalid color codes.
- Formatting markup in the topic editor's topic history listing is now shown in the human-readable format that is also used for entry, making it much easier to derive a new topic from an old one that contains formatting markup.
- Fixed a bug causing '/topic <channel>' to display the topic of <channel> with formatting markup stripped.
- Join/Part/Nick messages can now be selectively hidden based on whether the nickname the message is about has been active in the respective channel in the last 10 minutes, last hour, last day or last week. Previously it was all or nothing.
- Rewrote chat text view wallpaper image support to avoid rendering problems some users were experiencing.
- Fixed a bug causing some user hostmasks in chat text lines about channel topic author information to be treated as email addresses and thus turned into clickable links. They would also pollute the URL Catcher.
- The code backing the marker and remember lines has been rewritten to work around bugs in Qt that could cause crashes, especially when running Konversation against Qt v4.7.4 or newer (see QTBUG-20916 for more).
Input lines:
- Added a "Focus Input Box" action that puts keyboard focus on the input box. The default shortcut is the Escape key.
- The '(away)' label shown next to input lines when away now has a context menu with actions to change the away message or return from away state.
- Pressing the Tab key when the cursor is at the start of the input box now checks whether the remembered nickname is currently attending the channel before repeating the last successful completion.
Commands:
- The syntax for the '/cycle' command is now '/CYCLE [-APP | -SERVER] [channel | nickname]'. Whereas '/cycle' previously only allowed you to cycle a channel from the input line of that same channel, you can now specify the target explicitly. '-app' will restart Konversation (as with the new 'Restart' action mentioned in the "Command line arguments" section, preservation of the command line arguments the app was started with requires KDE Platform 4.6 Alpha 1 or higher to work) and '--server' will close all tabs belonging to the current connection and then create a new connection with the same settings as the old one (plus it will attempt to rejoin all previously open channels). Both are new abilities for the command. A '/cycle' without parameters issued in server, channel and query tabs is equivalent to specifying '-server' or the current channel or query, respectively -- the ability to cycle a query is also new.
- The '/clear' command now supports a channel or query argument to clear, as well as an an -all parameter to clear all views.
- The '/notify' command now displays more useful output after adding and removing and when summarizing Watched Nicks.
- Fixed a bug causing adding of nicknames to the Watched Nicks Online list via the '/notify' command to fail.
- Added an optional '-showpath' parameter to the '/exec' command that shows the path at which the given script file was found in the chat text view, i.e. '/exec -showpath media'.
- Commands that accept parameters in the form "-foo" will now also understand "--foo".
- The '/dns' command used to block the UI while trying to resolve the parameter it was given, potentially causing an extended lock-up of the application when the system has serious DNS trouble. This has been resolved; '/dns' is now fully non-blocking.
- Trying to use the '/me' command from a tab that doesn't support it will now cause an appropriate error message to be displayed.
- Fixed a bug causing the '/kickban' command not use the default kick reason from the Identity settings if no reason was explicitly specified.
- Fixed a bug that could cause the '/list' command to open the Channel List tab for the wrong connection.
- Fixed a bug causing '/list <search pattern>' to close an existing Channel List tab (the intended behavior for a parameter-less '/list') rather than update the active filter and refresh the list.
Highlights and notifications:
- Added a new "Chat Windows" field to the Highlight configuration to optionally restrict the list of chat windows a given highlight event may be triggered in to those named in the field, separated by comma or semicolon.
- Resolved a conflict between the highlight system and the graphical emoticon support that was causing unintended highlights when the filesystem path to an emoticon image file shown in the chat text view matched any of the configured highlights.
- Fixed bugs in the highlight system caused by it mistakenly operating on the HTML markup used internally by the chat text views rather than the original text.
Identities:
- Added a "Default away reason" field to the "Away" tab in the Identities dialog. The away reason entered there will be used when no away message is entered manually as an argument to the '/away' or '/aaway' commands, so for example when Global Away is enabled using the keyboard shortcut.
- "Away Messages" on the "Away" tab of the Identities dialog has been renamed to "Away Commands".
Watched Nicknames:
- Fixed a bug causing the Watched Nicks Online system to fail to start checking nickname online status for a network after adding an initial nick to its Watched Nicks list via the context menu actions or the '/notify' command (it worked fine via the WNO tab, however).
Bookmarking:
- Fixed a bug causing the bookmark address to be unusable (it would lack the network name) when bookmarking a tab and the name of the associated network contains a space or certain other special characters.
Logging:
- Fixed a bug causing pipe symbols to appear in the date/time stamp and next to the nickname in backlog replay.
- Fixed a bug causing the chat text notification messages originating in the Watched Nicknames Online system to be logged in HTML format (and thus HTML source to be displayed e.g. in backlog replay).
- Fixed a bug causing a change of the buffer size setting on a log reader tab's toolbar not to immediately apply to new log reader tabs opened thereafter. Instead the buffer size for new tabs would be the size set on the toolbar of the last log reader tab that got closed, making it easy to unintentionally undo a change depending on the order in which log reader tabs were closed.
DCC:
- Added a Color Picker tool to DCC WHITEBOARD, to select a color from the image.
- A better version of the information dialog for DCC file transfers is shown when Konversation is built against KDE Platform 4.5 or higher.
- Fixed a bug causing newly-added DCC file transfers to the list in the DCC Status tab not to be sorted when using Qt 4.7.
Connection behavior:
- The auto-join on connect feature will now skip over any configured channels that are invalid as per the IRC server's CHANTYPES rules when sending the join command(s) to the server, making sure that all valid channels are joined even on servers that stop parsing join commands on the first invalid channel. Previously, all configured channels were sent.
- Fixed a bug causing a channel the tab of which was closed while a connection was in disconnected mode to be rejoined upon reconnect.
- Fixed a (harmless) bug causing unnecessary trailing "." placeholder channel key segments to be added to the raw format auto-join command (or to the last of multiple such auto-join commands when the amount of auto-join channels requires multiple commands to be generated).
- Fixed a regression that could cause an endless loop of reconnection attempts when issuing a reconnect order to an established connection and the time needed to establish the new connection was longer than the configured reconnection delay. It would also cause confusing status messages to be shown in the connection status tab.
- Cancelling the dialog asking how to deal with SSL errors upon connecting is now treated as a deliberate disconnect on part of the user, i.e. Konversation will no longer try to automatically reconnect.
- A disconnect while waiting for user response to an SSL error dialog will no longer result in an automatic reconnection attempt. Instead, Konversation will wait for the outcome of the user interaction: If the user decides to ignore the SSL errors that have occurred, a reconnect will be initiated, otherwise the connection will remain disconnected.
- Fixed a bug causing a crash when the user chose to accept an invalid certificate in the SSL error dialog when the connection had timed out in the meantime.
- Fixed a bug causing the quit message to not always be supplied successfully to the server when disconnecting.
- Fixed a bug that could cause the "Server found" message to be shown in the connection status tab before the "Looking for server" message if the DNS response was already cached.
- Fixed bugs causing the automatic user information lookup, the periodic WHO-on-self and the periodic PING for a given connection not to be suspended properly after a disconnect, causing unnecessary wakeups and the potential for these messages to be sent at inappropriate times in the early phase of a reconnection attempt.
- Fixed a bug causing a connection failure to reset the lag meter in the status bar to "Unknown" even when the active tab is not related to the connection that failed.
- Solid network up/down notifications are now ignored for connections to localhost.
Scripting and bundled scripts:
- The 'cmd' script, used to run a shell command from within Konversation and send the output to the server, has been rewritten from scratch to provide the following improvements:
- Running a command that returns no output or only empty lines used to result in an error claiming the command does not exist. Now an info message is shown remarking that the command executed successfully but did not return any output or only whitespace.
- The script now also works when called from a server status tab - the command output will be shown to the user rather than sent to the server in that case.
- The command's error output (stderr) used to be ignored; now it is shown to the user in the active tab (but not sent to the server).
- Trailing whitespace is now stripped from command output.
- Output lines containing only whitespace are no longer forwarded to Konversation. As an aside, this also implicitly fixes a bug the old script used to suffer from that caused it to generate faulty D-Bus calls when trying to forward empty output lines.
- The bundled 'sysinfo' script now handles the way 'mount' reports bind mounts on certain newer Linux distributions by collapsing the repeated mentions of the same volume before calculating the disk space information.
- Scripts executed by Konversation can now access Konversation's current UI locale in the KONVERSATION_LANG environment variable.
- Konversation now installs an experimental Python scripting support package named 'konversation' into a subdirectory of its application data directory and appends all 'konversation/scripting_support/python' directories found in any KDE application data resource directories (i.e. within $KDEHOME, $KDEDIRS, etc.) to the PYTHONPATH environment variable available in the script execution context, thereby allowing Python scripts executed by Konversation to import the package. The package currently sports modules providing APIs for i18n support and D-Bus communication with Konversation.
- User-facing information and error message strings in the bundled 'cmd' and 'media' scripts now finally enjoy translation support, making use of the experimental new Python scripting support package described above.
- The 'media' script now requires Python 2.6 or higher and is compatible with Python 3.
IRC Protocol:
- Added support for the 475 numeric (ERR_BADCHANNELKEY).
- Added support for the 482 numeric (ERR_CHANOPRIVSNEEDED).
- Added support for UnrealIRCd's 671 numeric.
- Incoming actions (i.e. "/me") without an argument are now handled properly.
- Fixed a number of crashes on illegal data from the server.
- Raw log tabs (/raw) now use percent-recording to depict non-ASCII characters in raw traffic for much improved usefulness and reliability in the multi-encoding world of IRC.
- Numeric 437 (ERR_UNAVAILRESOURCE) is now treated like numeric 433 (ERR_NICKNAMEINUSE) during early connection negotiation: The next nickname in the identity's nickname list is tried, or the user asked for a new one if necessary. Previously Konversation would just idle in this situation and allow the connection attempt to time out.
Command line arguments:
- Added '--restart' command line argument and a 'Restart' action that quits and restart Konversation. Notes: If not already running, the command line argument has no effect; startup will occur normally. Also, the preservation of command line arguments across restarts is only supported on KDE Platform 4.6 Alpha 1 and higher, as a required library feature is only available as of that version.
- Added a '--startupdelay <msec>' command line argument that causes the app to sleep for the specified amount of milliseconds early during the startup process, delaying D-Bus activity and UI creation.
System integration:
- Konversation now also registers itself for the irc:// and ircs:// protocols using the way preferred by freedesktop.org's shared-mime technology rather than just the KDE-specific way.
- Fixed the tray icon always being in 'active' mode (and thus conflicting with the Plasma desktop tray's auto-hide behavior) when using the new (and, in this release, only supported) system tray protocol.
D-Bus interface:
- A D-Bus method call to retrieve the list of channels a particular connection is currently attending has been added.
Documentation:
- Numerous updates and cleanup in the handbook.
- Fixed a bug causing the Help button in the Configure Konversation dialog not to open the handbook.
Misc:
- Various small code cleanups inspired by cppcheck.
Build system and dependencies:
- Konversation now depends on KDE Platform v4.4.3 or higher and Qt v4.6.0 or higher.
- A Python installation is a recommended dependency due to optional but highly popular bundled scripts and an experimental Python scripting support package mentioned above.
- Fixed build with KDE4_ENABLE_FINAL.
- The section of the build system required to build user interface and handbook translations is now always present instead of being added manually to the tarball at release time, springing into action when the subdirectories containing the translation files are added to the source tree from KDE SVN, or remaining dormant otherwise.
- Konversation could crash during Diffie-Hellman key exchange or Blowfish encryption/decryption if the system's installation of the Qt Cryptographic Infrastructure (QCA) does not have the required features available (usually because the qca-ossl provider plugin is not installed). It will now fail gracefully instead and show helpful error messages in the active tab.
New git clone URLs (October 6th, 2010)
The repository layout on git.kde.org has been overhauled today, resulting in a small change to our clone URLs. Essentially, the konversation/ segment has been removed from them. Anonymous read-only access can now be had at:
git://anongit.kde.org/konversation
(Cloning via HTTP is temporarily out of order, but should come back soon.)
Meanwhile, developers use the following for read-write access:
git@git.kde.org:konversation
Note that you don't need to throw out your existing clones: You can use git remote set-url origin <new url> to update the URL for your origin remote, or just edit .git/config with a text editor directly.
Konversation 1.3.1 has been released! (July 1st, 2010)
Konversation 1.3.1 is a maintenance release that improves program behavior and fixes defects, the most serious of which is a regression that unfortunately suck into v1.3, which causes data corruption or even loss of Watched Nicknames Online lists on application quit. Behavioral improvements are found in the handling of aborting automatic reconnection attempts after connection failure and RFC 1459 PING/PONG exchanges. Further notable bugfixes have been made to the Edit Network dialog, the handling of system color schemes and using the ignore list feature to ignore certain CTCP events.
Changes from 1.3 to 1.3.1:
- In addition to the '/disconnect' command, the graphical 'Disconnect' action and the '/quit' command can now be used to cancel an in-progress automatic reconnect in the event of connection failure as well.
- The '/disconnect' and '/reconnect' commands now take optional quit message parameters.
- Fixed crashes when pressing the "Edit" buttons below the server or channel lists in the "New Network"/"Edit Network" dialogs after adding a new server or channel and there was no item selected before in the respective list.
- Fixed bugs causing the "Edit" buttons below the server or channel lists in the "New Network"/"Edit Network" dialogs to edit the previously selected list items rather than the ones shown as selected after adding a new server or channel.
- Fixed a bug that could cause outdated status information for nicks to be displayed in channel nickname lists after a reconnect.
- Efficiency improvements for channel join.
- Don't send PING in response to PONG if another PING is already scheduled to be sent in the future. This avoids getting kicked off a server for flooding when multiple clients are connected to a bouncer that forwards PONGs to all of them.
- Fixed numerous cases in which Konversation would incorrectly apply the KDE system color scheme to input lines, nickname lists and the listview version of the tab bar. This general overhaul of the relevant code also brought about minor efficiency and memory usage improvements.
- Fixed nickname lists not respecting the "Alternate Background" setting when set to use custom colors.
- Fixed the listview version of the tab bar not greying out disconnected tabs when set to use custom colors.
- Fixed a bug causing the processing of incoming CTCP CLIENTINFO and CTCP TIME requests not to take the ignore list into account.
- The "Insert IRC Color" dialog will now add a leading zero to colors which have single-digit numbers in the '%C...' string it inserts into the input line, to allow the text that follows to start with a digit rather than such a digit getting interpreted as part of the color number.
- Fixed a bug causing the Watched Nicknames Online nickname list for a network to be stored under the wrong network or lost entirely on application quit.
- Fixed a bug causing the order of the Quick Buttons below the nickname list in channel tabs to be flipped every time the config dialog was OK'd.
- Improved consistency of the filter fields in the URL Catcher and Channel List tabs with other KDE applications.
- Correct use of singular or plural unit suffixes for several numeric preferences in the configuration dialog.
- It is no longer possible to set the auto-way time to the nonsensical value of zero minutes. Rather, a minimum of one minute is now enforced.
Konversation's Git repository has moved (June 18th, 2010)
Back in December 2009, Konversation made the move from Subversion to Git as its version control solution. In the course of that, our source code moved from KDE's Subversion server to the Gitorious.org platform. Konversation was the second KDE project after Amarok to do so; the goal was to test the waters for the eventual migration of KDE as a whole.
Recently, however, KDE's Git migration has changed course a bit: Instead of moving to Gitorious.org, we have decided to host our Git repositories within our own infrastructure (you can read more about this decision and the details of the new setup here and here). For the projects that already moved to Gitorious.org - by now, more than a dozen - this means a second move, and again Amarok and Konversation have moved first to help prepare the ground.
Our wiki has already been updated, but let's go over the new URLs / commands right here:
- Repository browsing: http://projects.kde.org/projects/konversation/repository (using Redmine) and http://cgit.kde.org/konversation/konversation/ (using cgit)
- Read-only Git access: git clone git://git.kde.org/konversation/konversation.git
- Read-write Git access (for developers): git clone git@git.kde.org:konversation/konversation.git
(Note: If you already have a clone, you don't have to clone again. Rather, you can use git remote set-url origin <new url> to switch over to the new URL.)
Commit access to the repository on Gitorious.org has been revoked, and once we've dealt with the in-flight merge requests still found there, the project on Gitorious.org will be deleted.
Konversation 1.3 has been released! (June 7th, 2010)
Konversation 1.3 debuts a major new feature in the area of Direct-Client-to-Client (DCC) support: An implementation of the DCC Whiteboard extension that brings collaborative drawing - think two-player Kolourpaint - to IRC. It also brings back the integration with KDE's SSL certificate store the KDE 3 version enjoyed and expands support for auto-away to the Windows and Mac OS X platforms thanks to both recent advances in the KDE 4 platform and new code in Konversation. Interface tweaks, new keyboard shortcuts and many bugfixes (including a number of new fixes since 1.3-beta1) round things out. Finally, Konversation now depends on KDE 4.3 and Qt 4.5.
Changes from 1.3-beta1 to 1.3:
- Fixed build with KDE 4.3.
- When opening an "Edit Network" dialog and adding a new item to one of the server or channel lists, provided they already contain at least one item and no selection is made before clicking "Add...", the "Move Down" button would be enabled afterwards despite no item being selected. Clicking the button at this point would crash the application. This has been fixed along with other potential problems in the code that updates the state of the list control buttons.
- After adding a new item to one of the server or channel lists in "Edit Network" dialogs, that item will now be selected.
- Fixed a bug causing the file dialog for selecting a new target directory and file name for an incoming DCC file transfer in the event that the default path is not writable to complain about being unable to find the file after clicking "OK" when no file of the chosen name at the chosen location exists already.
- Fixed a bug causing the file dialog for selecting a new target directory and file name for an incoming DCC file transfer in the event that the default path is not writable to lose the file name written in the "Location" field (by default, the original file name) when changing the current directory.
Konversation 1.3-beta1 has been released! (May 22nd, 2010)
Konversation 1.3-beta1 debuts a major new feature in the area of Direct Client-to-Client (DCC) support: An implementation of the DCC Whiteboard extension that brings collaborative drawing - think two-player Kolourpaint - to IRC. It also brings back the integration with KDE's SSL certificate store the KDE 3 version enjoyed and expands support for auto-away to the Windows and Mac OS X platforms thanks to both recent advances in the KDE 4 platform and new code in Konversation. Interface tweaks, new keyboard shortcuts and many bugfixes round things out. Finally, Konversation now depends on KDE 4.3 and Qt 4.5.
Changes from 1.2.3 to 1.3-beta1:
- Konversation now depends on Qt 4.5 and KDE 4.3.
- Added support for DCC WHITEBOARD, bringing collaborative drawing to IRC.
- When showing the dialog informing the user about the local target file for an incoming DCC file transfer already existing that dialog now includes the sizes of the local file and the file the sender is offering up.
- Fixed a bug causing either an empty line or a few characters of garbage to be placed in the clipboard in place of marker/remember lines when copying chat text containing such lines.
- Fixed a bug causing quotation marks, ampersands and angle brackets in chat messages to be displayed as HTML entities in the OSD.
- The "Clear All Windows" action will now also resets the notification state of all tabs (i.e. removes active new message or highlight notifications from the tab bar).
- Fixed a bug causing the server responses to background data gathering via WHO (to keep the app's idea of its own hostmask up to date, as well as optionally channel user info) to be displayed in tabs as if the user had made the requests manually after sending a '/who' command without parameters.
- Fixed a bug causing a crash when sending '/privmsg' without any parameters (did not apply to '/msg').
- In previous versions, channel tabs opened in the background (i.e. while "Focus new tabs" is disabled, as it is by default) would considerably increase the minimum width of the window due to particularities of the Qt layout system. After raising every channel tab at least once it would then be possible to make the window much narrower. This unintuitive behavior resulted in confusion as to why the minimum width of the Konversation window would sometimes vary greatly. This has been fixed in this version, i.e. it is no longer necessary to have raised every channel tab at least once to achieve a reasonable minimum width of the window. This also means that joining a new channel is now much less likely to resize the window.
- Fixed a bug causing the status bar to become multiple lines in height when hovering an URL containing percent-encoded line breaks in the chat text view.
- Fixed a bug making it impossible to scroll the Advanced Modes list in the Channel Settings dialog when the user doesn't have operator status in the channel.
- Fixed a crash when selecting more than one completed, failed or aborted outbound transfer in the "DCC Status" tab and clicking "Resend" in their context menu.
- Fixed a bug causing the human-readable mode descriptions used by default in channel chat text views as well as the Channel Settings dialog's Advanced Modes list not to be translated.
- When the display of human-readable mode descriptions is enabled (as it is by default), the Advanced Mode list in the Channel Settings dialog will now show the respective mode characters alongside them. Previously, only the description was shown. This makes the list useful as a utility to look up the meaning of obscure mode characters.
- Fixed a bug causing both the default email client and the default web browser to be invoked when clicking an email address link in the chat text view.
- Added a built-in '/sayversion' command that, as opposed to the bundled '/kdeversion' script, can show the version of both the KDE Konversation was built against and is running on. It also outputs the information in a single message instead of several.
- Fixed a bug that would cause the second and following segments of a text so long that it has to be split into multiple messages when it is sent to be encoded incorrectly.
- The ASCII 0x1d character is now used to denote italic formatting of text rather than 0x09, to avoid the conflict with the tab character that is frequently pasted e.g. from websites with tables.
- Fixed a bug causing the server response to '/whois <nick> <nick>' not to be displayed on many IRC servers when the nick in questions is not online at that time (this variant of the WHOIS command is also used by the GUI actions).
- Fixed a bug causing missing bans in the list in the Channel Settings dialog on certain (mostly older) IRC servers.
- The text in notification messages used to be wrapped every 50 characters, an old workaround for problems with KDE 3.x's bubble notifications. This has been removed now since it's no longer needed with modern notification frontends such as Plasma's, and produces rather ugly results there.
- Made it possible again to initate DCC file transfers to a query partner by dragging files or URLs onto the chat text area of the query.
- When building against the KDE Platform v4.4.3 libraries, the auto-away functionality will now make use of the new KIdleTime library to determine user activity and inactivity rather than use its own code, the primary advantage being that KIdleTime is supported on non-X11 platforms such as Windows and Mac OS X. In effect, this means auto-away is now supported on those platforms, depending on the implementation level in KIdleTime. (The use of KIdleTime can be explicitly disabled by passing '-DUSE_KIDLETIME=false' to 'cmake', in which case Konversation will fall back to using the original, X11-specific code and auto-away will only work decently on an X11 platform.)
- SSL support now integrates with KDE's certificate handling again, as it used to in the KDE 3 version, made possible by improvements in the libraries of the KDE Platform v4.3 (the minimum version supported in this release) and higher.
- Not reacting to an SSL certificat validation error dialog in a timely manner should no longer result in Konversation locking up.
- In-progress automatic reconnect in the event of connection failure can now be aborted by using the '/disconnect' command.
- Manually issueing a reconnect order to a connection currently inactive after having exceeded its maximum number of reconnection attempts used to result in a single connection attempt after which it would be announced that the maximum number of reconnection attempts had been exceeded again. This has been fixed: It will now make the number of attempts specified as the upper limit in the application settings.
- Fixed a bug that could cause the selection in the transfer list of the DCC Status tab to be lost when a new transfer was added to the list.
- Fixed a bug causing the information panel in the DCC Status tab to show information for a transfer other than the one selected in the transfer list after sending a file to oneself for the first time in a session.
- The frame that used to be around the main window's tab widget when the tab bar was located either at the bottom or top position has been removed.
- Improved compatibility with freedesktop.org-compliant notification frontends other than KDE's. Other frontends could previously show empty notification message contents due to non-standard content in the messages.
- Added an action to switch to the last focused tab, making it possible to quickly switch forth and back between two tabs. The default keyboard shortcut for this new action is Alt+Space.
- Added a "-local" parameter to the '/amsg' and '/ame' commands that limits their scope to the channel and query tabs associated with the same connection as the tab the command is issued in.
- Fixed a bug causing the order of networks in the server list dialog not to be preserved across application restarts.
The development history of Konversation visualized using gource (February 16th, 2010)
As a little change of pace from the usual release announcement postings, here's a short visual treat: The source code revision history of your favorite IRC client, visualized using a nifty tool called gource. Check out out on YouTube, or better yet fetch the high-quality Ogg Theora version from here (1280x720; 143 MB).

