DMDircthe intelligent IRC client
DMDirc 0.5 changelog
Features & Additions (95)
Major Additions (7)
- Added action wrappers for aliases and performs
- Added intelligent tab completion for commands
- Added server settings dialog
- Added support for themes
- Added support for character transcoding
- Added support for various command-line options
- Added installers for Windows and Linux
Commands (13)
- The /notify command can now be used in any window, not just channels
- Added /active command to execute a command in the active window
- The error message for /setnickcolour has been improved
- The /join command may now take a key
- /query now optionally accepts a message
- Added /ifplugin command
- The help command now shows global commands
- Added "chat" command class. /me and /nowplaying now work for both channels and queries.
- Added /invite, /lusers and /motd commands
- The /whois command now supports remote whoises
- Added /debug command
- The whois command is now included in the nicklist context menu
- /echo and /clear are now global rather than server commands
Error reporting & logging (6)
- The error logging system has been rewritten and can now distinguish between application errors (DMDirc's fault) and user errors (The user, server or operating system's fault), and only reports the former to the developers
- The client can now catch and report exceptions that haven't been explicitly caught in code
- Error reports submitted to DMDirc developers now contain the client version
- Errors caused by the IRC Parser now include the last line received and the address of the server that the parser was connected to
- The client now determines if it has proper mode aliases for servers it's connected to, and reports any omissions as an error
- Error messages generated when attempting to save identities are now more descriptive
Input & Tab Completion (3)
- You can now undo and redo events in input fields
- Tab completion now defaults to "bash style" (press tab twice to see a list of possibilities)
- You can now tab complete nothing (i.e., pressing tab without being in a word will show you possible values instead of ignoring you)
Plugins (9)
- The nowplaying command is now a separate plugin
- Added nowplaying media sources for various DCOP-capable linux players
- Added DNS plugin
- The logging plugin now has a history window, which shows an extended channel history
- Added redirect plugin, which allows you to redirect command output to a channel
- The system tray plugin now has an option (plugin-systray.autominimise) to automatically hide the client to the systray when it's minimised
- The nowplaying plugin now allows you to re-order media sources
- Added identd plugin
- The nick colour plugin now has a UI to edit colours for individual nicknames
User Interface (17)
- The window menu now has a list of all windows
- Added options to customise how the active item in the treeview appears
- Right clicking on a URL now gives options for opening and copying the URL
- Ctrl+c now copies selected text from the textpane
- Added basic initial "buttonbar" frame manager
- The frame manager (treeview or buttonbar) can now be repositioned
- The icons used by DMDirc can now be customised by config settings
- The textpane now uses fixed-height lines
- Changes to most UI settings are now applied instantly - you don't have to close and reopen windows
- More options have been added to the preferefence and channel settings dialogs
- Added possible UI integration settings for OS X (untested)
- All text components now have cut/copy/paste menus, were appropriate
- Added "dummy" user interface so that DMDirc can be ran in a headless environment (such as for running unit tests)
- The mouse cursor now changes when hovering over a hyperlink or channel name
- The help menu now contains an item to join the official DMDirc channel on Quakenet
- Added a "global window", which can be used to enter commands when no servers are open. Enabled using /set general.showglobalwindow true (and restarting).
- The File menu has been renamed to 'Server', as it has nothing to do with files
Dialogs, managers & editors (10)
- The paste dialog has been rewritten to be more useful
- The about dialog has been rewritten
- Moved the delete/edit buttons in the actions condition editor to make editing long conditions easier
- Added new error dialog to display information about errors
- List modes in the channel settings dialog are now cached until "OK" is pressed
- Channel mode checkboxes now have tool tips showing both the friendly name and the actual mode
- Double clicking on an action in the action editor now edits that action
- You can now type more than the IRCd allows into the "Topic" text box in the channel setting dialog. Doing so will cause the "characters remaining" text will turn red and display the number of excess characters. This makes it much easier to paste content into the topic and then edit it down to fit properly
- The trigger list in the actions editor is now split into groups and sorted alphabetically
- Added substitutions panel to actions editor
Messages & output (6)
- The formatter now handles invalid formats in a better manner
- Quits are now shown in query windows if the client receives them
- Added default format for numeric 317 (signon/idle time)
- The formatter now pre-analyses format so you can format strings as dates (and other types)
- Added handling for notices that aren't sent directly to the client or a channel (e.g. global notices)
- Added default formats for a variety of server error messages
Action additions (15)
- Added various plugin-related actions
- Added function key (F1-12) actions
- Added actions for user input
- Added action for query nick change event
- Added action for query quit event
- Added actions for the client being minimised and unminimised
- Added 'connecting' and 'connect error' actions
- Added components for key arguments
- Added query host component
- Added query nickname component
- Added query colour component
- Added component to get the number of common channels shared with a user
- Added comparisons for booleans
- Added "doesn't contain" comparison for strings
- You can now use 'word' substitutions ($1, $2-, $4 etc) if the second or third argument is a string or a string array. Previously these could only be used if the third argument was a string array.
Miscellaneous (9)
- Added mode aliases for Unreal and IRCu servers
- Updated mode aliases to support several new snircd modes
- Added op/voice aliases to generic ircd config
- Added default action package for query colours
- Added ability to specify which IP the client binds to when connecting (/set general.bindip <ip>)
- The colour manager now caches Color objects, to potentially reduce CPU and memory usage
- URL catching is now more strict, resulting in less trailing punctuation being incorrectly linked as part of an URL.
- The IRC Parser now detects a variety of new IRCd types. Bahamut mode aliases are now applied correctly.
- Generic mode aliases are now applied to all servers, so if the client doesn't have explicit mode aliases for an ircd, it will still use the RFC-specified modes and some best guesses
Bug Fixes (77)
- Fixed a bug in the IRC parser which could be used to remotely trigger fatal errors.
- Fixed a textpane bug where text wrapped incorrectly, large gaps were added between lines, and text sometimes overlapped.
- The client now correctly takes the case mapping of the server into account
- Fixed exception caused by extremely small textpane widths
- Fixed output error in /ignore command
- Fixed /ignore command not removing masks containing uppercase characters
- Fixed the default highlight action using an improperly named formatter
- Fixed the default highlight action applying to actions (and thus using the wrong formatter)
- Fixed the command parser throwing an exception when commands were executed without a source
- Fixed null pointer exception in window status plugin
- Fixed incorrect number of lines being displayed in the paste dialog
- The window used by the OSD plugin no longer steals focus
- The colour picker dialog no longer steals focus
- Fixed issue menu initially displaying "Maximise" incorrectly
- Fixed error caused by the away indicator
- The input fields no longer incorrectly receives tab events when pressing ctrl+tab to cycle windows
- Fixed plugin errors when running under Windows
- Fixed textpane using incorrect border
- Fixed incorrect sideways scrolling in the textpane
- Status notifiers no longer get triggered by right or middle clicks
- Text areas now use the correct font for the look and feel
- The OSD plugin no longer ignores the font size setting
- You can no longer open multiple channel settings dialogs for one channel
- Fixed issues involving being unable to select nodes in the treeview
- Fixed null pointer exception in logging plugin
- Colour control codes are no longer shown when selecting text in the textpane
- Fixed problem with selecting the last character of lines
- Fixed concurrent modification exception in command manager
- The client will no longer try to get data from the clipboard if it's an incompatible type
- Identities no longer return "null" as their name
- Channel windows no longer have a trailing " - " if they have no topic
- The status bar controller no longer creates an excessive number of threads
- Fixed incorrect border on search bar in non-channel windows
- Fixed the conditions tab of the actions editor being layed out correctly under the windows L&F
- Fixed disconnection timer messages being displayed after reconnecting
- Fixed directories not being created for new actions
- Fixed KeyEvents' modifier state returning Strings not Booleans in the action system
- Fixed the format dropdown not being populated correctly for new actions
- The systray plugin no longer shows control codes in popups.
- Tab completers no longer suggest duplicate items.
- Entering an empty command (i.e., / on its own) no longer causes an exception.
- Fixed exception when a null value was passed to the actions system.
- The client now gets focus correctly when being restored from the systray.
- Fixed several errors with the first run wizard not extracting actions and plugins properly.
- Fixed minor colour bleeding in the default formats (trailing punctuation would sometimes be coloured in error)
- When a window is now closed, another is now activated as expected.
- Fixed bug with the topic counter not being accurate for large topics.
- Actions that are extracted by the first run wizard are now loaded correctly without a client restart.
- Mouse events for the textpane are now aligned to the display as expected.
- The update checker no longer adds a new statusbar icon every time an update is found - the first icon is used as expected.
- Actions are no longer duplicated when one is renamed
- The client no longer sends empty "NICK" lines if the alternate nickname list is empty
- Highlighting text in the textpane no longer displays an incorrectly sized area if the text changes font width
- The new server dialog no longer erroneously remembers settings when clicking cancel
- Removed unused (and disabled) checkboxes from the new server dialog until their functionality is implemented, as they were causing some confusion.
- The client now keeps better track of the status of its connection, fixing several bugs related to disconnecting and reconnecting.
- Callback lists are now marked as volatile, potentially fixing a large group of Null Pointer Exceptions caused by events being received after windows had been closed.
- Server windows now have an icon as soon as they're opened, rather than incorrectly having none until a connection attempt started
- Blank lines are now actually sent, rather than being displayed locally and silently dropped by the parser.
- Fixed an exception caused by clicking in certain places in the nicklist
- Fixed bug where servers that responded to pings extremely quickly (such as local servers or bouncers) weren't registered as sending a ping reply, which caused the client to think the server was stoned and disconnect.
- Profiles no longer erroneously get added to config managers, which should reduce CPU a little when looking up global settings
- The update notification icon no longer responds to mouse clicks other than the left mouse button.
- Text entered in a channel window when the client is no longer in the channel is now silently discarded, rather than displaying your nickname as "null" and causing an exception.
- Shift+insert now correctly pastes data
- Altered the way the actions manager is created, which should eliminate various null pointer exceptions
- Fixed a large number of null pointer exceptions caused by the client receiving events for windows that had just been closed
- Fixed null pointer exception when entering a channel command in a server that doesn't have an irc parser
- Fixed a bug in the IRC Parser where it lost state when receiving a names reply in some cases. This bug caused client errors when send a /names request when only in one channel.
- Line breaks can no longer be pasted into the channel topic editor
- The channel settings dialog no longer gets stretched vertically if the channel has a large ban list when it's initially opened
- IRC Parser errors are now raised with an 'unknown' error level, so fatal parser errors won't kill the whole client
- The textpane now correctly respects system anti-aliasing settings
- Some IRC Parser errors caused by broken bouncers and proxies (e.g. DFBnc and Bitlbee) are now not logged
- Delete/Edit buttons are now disabled correctly in the actions manager after deleting a group
- The new server dialog no longer allows you to click OK with an invalid port
- The frame buffer size and various other settings can no longer be negative
Documentation
In this section
Other sections
- No other sections available
If you're having problems with DMDirc, please feel free to
join us on IRC.