Klient Version Information
Legend:
- New functionality
- Improvement
- Bug fix
Klient 2.2.1 (November 15, 2006)
Interface:
- Options
- In the Display Options, you can now use JPEG images for the backgrounds of IRC windows and for the main screen's client area in addition to bitmap images.
- In the Text Display Advanced Options, the threshold for removing colors now applies to both fonts and colors.
- Misc
- Fixed the Links form saving it's list view information in the registry under HKCU instead of Klient's key.
Scripting and Plugins
- Set FPU status to $127F when calling events and aliases from DLL Plug-Ins per Quension's request. Klient's preferred FPU settings will be reset when the function(s) return.
- Fixed Scripts.ScriptObjectCount and Scripts.ScriptObject not working unless the script editor has been opened.
- Fixed IPList showing as an object in Scripts.ScriptObject.
- Fixed Python scripts having problems when edited with the script editor's options set to use the tab character for indents instead of spaces.
- Fixed an error importing script language defintion files made by Klient 2.1.x.
IRC
- Added Message Notify item to the system menu of IRC windows in place of the old Flash Next. It has options to flash the window's selectors and play a sound file the next time a message is displayed in the window.
- Added support for NAMESX
- Added support for UHNAMES
- The Flash Next feature of IRC windows, now moved to the Message Notify item, is now only triggered by displayed related to messages (message, action, notice, whisper, etc.) instead of any text.
- From the Background item in the system menu of IRC windows, you can now use JPEG images when selecting custom backgrounds.
- When pasting text into the text editing area of IRC windows set to use a multi-line edit box, the text is not sent even if it contains end-of-line characters.
- When typing into the text editiig area of IRC windows set to use a multi-line edit box, you can now press Ctrl+Enter to enter multiple lines of text. When Enter is pressed, each line is sent separately.
- Fixed issuing a /names from a server window with no parameters messing up channel names lists.
- Fixed a problem with /onotice when using an IRC server running ircu earlier than version 2.10.
- Fixed Klient not recognizing JOINs from bouncers that don't send the address as part of the source when it tells the client that it joined a channel.
- Fixed a typo in the message displayed when you try to send text to a channel after being disconnected from the server.
- Fixed the topic history list view not being repainted properly when the channel information window is resized and there are enough items in the history to make it need a scroller.
- Fixed the Add Server dialog not allowing you to enter a space as part of the password for connecting to a server.
Commands
- When using /debug, /pager, and /sounds with no parameters, the resulting message, e.g. "Debug mode is off (use "/debug on" to turn on)", now uses the command prefix specified in the options.
Documentation
- Fixed the example text in the Timer.Free and Timer.Server properties.
Klient 2.1.4 (December 16, 2005)
Interface:
- Main Screen
- Klient now minimizes to the system tray regardless of the system tray options if you hold down the Shift key when minimizing it.
- Fixed the Windows tree not using XP-style node expand/collapse images.
- Fixed tooltips not showing properly in the switchbar if the window name contains a | character.
- Fixed the wrong window being selected in the window tree when using the left mouse button to select a node but dragging the mouse to another node before releasing the left button.
- Fixed the toolbar's and menu's "quick customize" popups not closing when Klient is deactivated.
- Fixed an error that occured when an IRC window is opened while the Window menu is being displayed.
- Fixed the min/max/restore buttons in the toolbar area when IRC windows are maximized not being drawn properly when using the Office 2003 toolbar theme on low color systems.
- Fixed the min/max/restore buttons in the system menu that appears next to the File menu when IRC windows are maximized not drawing their images propery when using the Office 2003 style on low color systems.
- Fixed an error that would make one of the MDI min/max/close buttons that appears in the menu when IRC windows is maximized being drawn on the toolbar under certain rare circumstances.
- Fixed some painting problems in the main window's MDI client area that happened in various tile/cascade situations.
- Options
- Added a "Toolbars use all available width" item to the Interface Options dialog. Using this enables the Office 2003 toolbar style to look like Office 2003 toolbars.
- Added Server Message item to Display Options text items.
- Added Server Message event to sound options.
- The Interface Options dialog is now tabbed. It was getting to long to add anything new to.
- Changed the translucency setting in the Interface Options dialog to a slider control.
- In the CTCP options, fixed the "Request sound files I don't have" and "Accept requested files without asking" being treated backwards (it wouldn't request unless the 2nd was checked and wouldn't auto-accept unless the first was checked).
- In the Display Options, the following text items have a new $sendto parameter to indciate the target nickname: Own Chat Action, Own Chat Message, Own Private Action, Own Private Message, and Own Private Notice.
- The default Own Private Notice mask is now "-$sendto- $text", which shows the target nickname instead of your nickname.
- The Office 2003 toolbar and docking styles are no longer disabled on non-XP/2003 systems. On Windows 2000 and earlier, this style looks like Office 2003 running on a non-themed XP/2003.
- Fixed the Apply button not being enabled in the Switchbar Options dialog when changing the button vertical width.
- Fixed some problems with disabling sounds when away (from the Away Options) when connected to and setting away/back on multiple network swith different values set for this option.
- Fixed the Identd Server Wizard not always using the correct system font in the header of the first and last screens.
- Fixed example display areas on various option dialogs (such as the Example in the Timestamp Options and Text Entry Options) not using the correct border on themed systems.
- Fixed the system font not being used in the help hyperlink in the Select Options Group dialog.
- Fixed some grammatical errors in the Identd Server Wizard.
- Fixed the Logging Options not properly reloading network paths.
- Fixed custom identifiers not being parsed properly when used in various places in the options (away messaging, dcc rules, etc.)
- Fixed Own Private Notice not defaulting to be displayed in the server's active window.
- DCC
- When sending a DCC through someone's DCC server and the nickname becomes known, it now appears in the correct column of the dockable DCC Transfers window instead of replacing the text in the folder column.
- Fixed the DCC Send Request, DCC Details, DCC Transfer Complete, and DCC Warning dialogs letting the filename label run off the end of the window if the filename was too long to fit.
- The DCC Details and DCC File Exists dialogs now show a hint on the filename/folder labels when ellipsis are used in their captions.
- Scripting Windows
- The tree in the DLL Plug-Ins section of the control center now selects on right-click.
- Fixed the Items tree in the Script Editor not using XP-style node expand/collapse images.
- Fixed the docking setup in the Script Editor not reloading properly when the Items list is docked.
- Fixed F1 in the script editor opening to a "page not found" error instead of the Script Editor page in the help file.
- Fixed an incorrect caption in the Script Editor Options dialog (double :: in the "Gutter Background:" label).
- Fixed the Script Language Formatting window not remembering if it was maximized (which messed up the restoration of the splitter position when it was maximized the last time it was open).
- Fixed pressing End in the script editor's code window not moving correctly if the last characters was an IRC color/font code delimiter (Ctrl+K, Ctrl+B, Ctrl+U, etc); it would move to the first character before the control code.
- Misc
- Added "Remember Item" menu item to the system menu of the Control Center and the List Management windows. When checked, the windows will remember which screen was shown when they are closed and re-opened.
- The Server Wizard has been replaced by Add/Edit Server dialogs.
- Made minor cosmetic changes in the Klient Direct dialog.
- The caption of the Control Center now indicates what category is currently being viewed.
- Added a work-around for a bug in themed Windows XP/2003 where MDI child form borders are not painted properly when they are maxmized and the theme's color scheme is changed. The painting cannot be corrected when the color is changed, but it is corrected as soon as Klient is activated.
- The Ban List now includes a default ban group.
- In the Users section of the List Management, fixed user group names and descriptions not being updated if they are modified in the Group Properties dialog.
- In the Ban List section of the List Management, fixed changes to a ban group's name not being set when closing the dialog.
- Fixed the tree in the Organize Favorites dialog not using XP-style node expand/collapse images.
- Fixed the Away Messages window enabling its toolbar buttons when only network node is selected in the grid.
- Fixed an error that made all dialogs incorrect when changing between classic and themed modes on XP/2003.
- Fixed password edit boxes not using the XP-style circular password character on Windows XP unless themes were enabled.
- Fixed toolbar customize dialogs staying on top of other applications when changing between Klient and other apps with the customize dialog open.
- Fixed Klient preventing the OS from shutting down or rebooting.
- Fixed errors retrieving Klient Direct information from the web.
- Fixed the Control Center not playing the system's navigate sound when selecting items in the category view.
- Fixed the toolbar check list in the toolbar customize dialogs not being drawn with themed checkboxes on systems running themes.
- Fixed errors that occured when opening modal dialogs when using XP or 2003 without themes (a result of an OS error that Klient now works around).
- Fixed the New User dialog not including any groups set to be automatically added when adding additional groups unless the automatically included groups were selected in the list.
- Fixed the switchbar not cancelling its tooltip when it is showing and the mouse is moved to an area of the switchbar that does not have a button.
Scripting and Plugins
- Added Server.Numeric005(Item) to determine if an item was present in the 005 reply. Also added KLIENT_SERVERS_NUMERIC_005 for DLL Plug-Ins.
- Added Server.Numeric005Param(Item) to access the parameters associated with an item received in the 005 reply. Also added KLIENT_SERVERS_NUMERIC_005_PARAM for DLL Plug-Ins.
- Added Channel.ModeSet(Mode) to determine if a channel mode is set. Also added KLIENT_CHANNELS_MODE_SET for DLL Plug-Ins.
- Added Channel.ModeParam(Mode) to determine the parameter associated with a channel mode. Also added KLIENT_CHANNELS_MODE_PARAM for DLL Plug-Ins.
- Added Display.ShowServerMessage which corresponds with the new Server Message item in the display options. Also added DISPLAY_MASK_SERVER_MESSAGE for DLL Plug-Ins.
- Added Server Message event for active scripts and EVENT_SERVERMESSAGE for DLL Plug-Ins
- Added Whois.GetNumeric(Code) method to retrieve the values of any numeric received during the whois.
- Added Window.CloseWithServer to determine whether or not a window is automatically closed when its parent server is closed. Setting this property on affects custom windows. Also added KLIENT_WINDOWS_GET_CLOSEWITHSERVER and KLIENT_WINDOWS_SET_CLOSEWITHSERVER for DLL Plug-Ins.
- In DLL Plug-In event EVENT_CTCP, the TCTCPInfo structure now has a ToChannel member.
- DLL Plug-In events EVENT_GLOBALMESSAGE and EVENT_GLOBALNOTICE now receive a TGlobalMessageInfo instead of a TWindowTextInfo. The new structure is identical with the addition of a SentTo member.
- Some Display.ShowOwn... methods have new parameters. The parameters are now: MyNick, MyAddress, SendTo, Text. SendTo should be filled with the target nickname. The methods affected are ShowOwnPrivateAction, ShowOwnPrivateMsg, ShowOwnPrivateNotice, ShowOwnChatAction, and ShowOwnChatMsg.
- Some display masks have changed for KLIENT_DISPLAY_FORMATTED_ECHO and KLIENT_DISPLAY_FORMAT_TEXT. The following display masks have an additional parameters (between the address and the text parameters) to account for the target nickname: DISPLAY_MASK_PRIVATE_ACTION, DISPLAY_MASK_PRIVATE_MSG, DISPLAY_MASK_PRIVATE_NOTICE, DISPLAY_MASK_CHAT_ACTION, DISPLAY_MASK_CHAT_MSG.
- The platform properties of the SysInfo object now recognize the Windows 2003 platform.
- Fixed ServerList.Network, ServerList.NetworkByName, and ServerList.NetworkFor always returning valid Network objects even when supplied with invalid parameters.
- Fixed WindowManager.Window(Index) returning garbage instead of an invalid object when Index is invalid.
- Fixed TimerMgr.TimerByIndex and TimerMgr.TimerById always returning valid Timer objects even when supplied with invaid parameters.
- Fixed the new query sound being played even if Klient.Halt is called in a New Query event.
- Fixed popups being enabled regardless of their connection, op status, or IRCX requirement settings.
- Fixed errors that occured saving variant variables (in Variables.SetVariant, Timer.AddNameValue, Whois.DataVariant, etc.) in script languages that pass their variants by reference (VBScript).
- Fixed Userhost events not being raised properly when multiple nicknames are specified in a /userhost command.
- Fixed the Server Disconnect event not being triggered when changing servers.
- Fixed the script editor's code insight not showing for items returned from Scripts.ScriptObject.
- Fixed UDP script sockets having an issue with ReceiveText because of the way script languages deal with the ASCII 0 character. ReceiveText now only returns text up to the first ASCII 0. If there was more ASCII 0-delimted text in the string, calling ReceiveText again will return the next, etc. Continue calling ReceiveText until the result is an empty string.
- Fixed the script editor showing EOL characters in the Find and Replace dialogs.
- Fixed 32-bit images in scripted popup menus not showing when disabled on low color systems.
- Fixed custom windows not being put into the "Other" category in the window tree when their parent window is closed.
- Fixed some problems when adding custom to modes to Server.MemberModes (the problems occured on channels that were left open after a disconnect and reconnect).
- Fixed syntax highlighting for PHP being case sensitive (since PHP has a mix but the syntax highlighter is all-or-nothing, they had to all be made case insensitive).
- Fixed syntax highlighting for Ruby not being case sensitive.
- Fixed an error in the ChanServ deop popup in the default script.
- Fixed Display.ShowOwnChatMsg and Display.ShowOwnChatAction not displaying parameters in the correct locations.
- Fixed ! not being handled properly for commands interpreted directly by a DCC chat window when executed to the chat window by a script (affected me, say, and qsay commands).
-
- Fixed the Enter Pressed event being triggered when /commands are entered into a DCC chat window.
IRC
- Added Set as Default to the Position menu in the system menu of IRC windows. It sets the default position information for the current window type to the position of the current window. Position information includes the width of the channel names list.
- Added Clear Defaults to the Position menu in the system menu of IRC windows. It clears the default position information for all window types.
- Klient now recognizes when a channel does not support modes. It does not request mode information and will display a message if the channel information dialog is requested.
- Added support for 005 CASEMAPPING=ascii. Klient still uses RFC1459 case mapping for internal things, but when doing channel name and nickname comparison (as well as in other server/parsing-related comparisons) the ascii case mapping is used when it is reported.
- When reconnecting (and either Klient is not using the next server in the network/group or the network is unknown), Klient now reconnects to whatever it was you initially made the connection to, regardless of what that connection reports its address as or what that address resolved to.
- Fixed IRC windows not regaining focus when clicking in the display area when a docked list or tree has focus on the main screen.
- Fixed the Esc key not clearing text in a window's edit box (when the "Esc key minimizes" option is not set in the Window Options).
- Fixed topics in the Channel Information dialog not displaying colors properly when there is text after a closing Ctrl+K with no previous color code existing to return the color to.
- Fixed the timestamp override items in the system menus of IRC windows behaving oddly.
- Fixed the : character being removed from 249 replies (and possibly a few others).
- Fixed the default display for a 302 reply not correctly displaying information and raising script events when information for multiple people are received (seen when using /userhost on multiple nicknames).
- Fixed some odd handling of MODE commands for user modes, making the user modes appear off for scripts doing something handling between the mode event and the 221 that results from Klient requesting its modes from the server.
- Fixed 477 replies not displaying the associated channel when there is one.
- Fixed tab nick completion in channel windows not working properly when using it for several nicknames separated by commas.
- Fixed improper parsing of the 005 CHANMODE parameter causing uncommon modes to have their parameters not in the same order as the mode string when displaying them in the channel caption and accessing them in Channel.Modes.
- Fixed IRC windows not logging session close messages when the entire application is closed.
- Fixed Klient not using RFC1459-compliant string comparison in all places. This affected locating windows and channel members by names under certain situations.
- Fixed Klient not treating unprefixed notices as notices from the current server.
- Fixed messages from servers being ignored.
- Fixed Klient not treating everything between a 311 and 318 as part of the whois (it would display it even if the /whois was an internal one).
- Fixed non-active IRC windows not being activated when clicking the 1-pixel border around its toolbar when they were in Office 2000 or Standard mode.
- Fixed e-mail hyperlinks not being parsed properly in channel windows when they are next to a nickname link.
- Fixed Ctrl+O not popping colors properly when nested Ctrl+K codes are used.
- Fixed windows logging to the wrong filename when network is part of the logging path and the network is changed.
- Fixed some oddities with the tab nick completion in channel window edit boxes.
- Fixed the Alt+M msg nick list appearing in the wrong place when the edit box is using right-to-left text.
- Fixed the use of Alt+M to show the msg nick list turning on accelerators in the main form's menu and leaving them on (if the system is hiding accelerators until the Alt key is pressed).
- Fixed the icon in the caption of query and dcc chat windows not using the same image as the icons in the window tree and switchbar.
- Fixed Klient trying to rejoin a channel upon connection if it was joined (for the first time) before the 376 or 422 was received.
- Fixed Klient requiring a : before the channel name when parsing an INVITE.
- Fixed windows that are opened minimized (such as channels joined with /joinmin) not closing properly until the window is shown for the first time.
Commands
- When used from a channel window, the /hop command now cycles the current channel without closing if no parameters are specified. If another channel name (and optional key) is specified, the current channel is parted and the specified channel is joined from the same window.
- The /ban command now has the following optional parameters: -rkuN (remove, kick, unban after N seconds). You can also now specify full addresses or masked addresses instead of just nicknames in this command.
- The /say command now automatically breaks long messages like /msg, /me, and /describe do.
Documentation
- Fixed incorrect documentation on the Timer object. New timers are disabled by default.
- Fixed out of date icons where the help file referred to toolbar buttons.
- Fixed a small error in the documentation for Registry.WriteInteger and Registry.WriteString in the Object Reference section of the documentation.
Klient 2.1.1 (July 17, 2005)
Interface:
- Main Screen
- All program icons are now alpha-blended icons for a smoother appearance (Windows XP-style), including all toolbar and menu icons. Menu and toolbar images will be alpha-blended on any version of Windows, not just XP.
- All menu and toolbars now display in a nicer alpha-blended grayscale when disabled.
- Added a Join Channel item to the Channels menu that opens the Join Channels dialog.
- Changed the docking style for docking windows to Klient's main window.
- Many icon images have changed, including Klient's main icon.
- The Away Messages dialog has changed. It now uses Outlook 2003 style grouping in its list of messages. The tree has been removed, and the message header has been updated.
- Fixed channels names that contain a & character not being displayed properly in the Channels menu.
- Fixed an error that occurs when you right-clicked an area in Klient's main screen that would be part of an IRC window on start up while the main screen was just starting to appear.
- Fixed the window's close button and frame being drawn for a split second when changing between IRC windows while they are maximized (occured on Windows XP only).
- Fixed the frame of the main window being partially shown before the rest of the form (happened only on XP with themes enabled and was more evident on slower computers).
- Options
- In the Highlight Options, when you set a highlight to use Speech, you can now use $text for the text that was highlighted and $msg for the message the highlight occurred in.
- Added an Auto-Joins section to the On Connect options where you can specify channels to automatically join. You can still do auto-joins by using /join commands in the perform (now "commands") section, and the new mechanism is actually a little more work to set up. However, it was added because too many people didn't realize they could use the Perform section to automatically join channels and assumed it was a missing feature.
- The "Perform" section of the On Connect options is now called "Commands". You can now specify a different set of commands depending on the connection type. Available connection types are: all, initial, and reconnect.
- In the Advanced Connection Option, "Use static IP address" is now "Use static address". You can either enter an IP address or a named address. If you enter a named address, it will be resolved to determine the IP address.
- The Server Event Options are now called Server Action Options to lessen confusion with other "event" items within Klient.
- In the Window Options, "Show addresses as tooltips in names list" is now "Show user information as tooltips in names list". If the person is in your userlist, the tooltip also displays userlist information.
- All hyperlink types are now available for the "Two Part" display mask and web URLs are enabled by default (although you won't see that if you import options from a previous version).
- You can now set font size of 5, 6, or 7 in the Display Options.
- When importing options, Klient no longer prompts to overwrite files (window bitmaps, sound files, etc.) when the file being imported is identical to the existing file. If they are the same, it skips it.
- The default logging directory is now My Documents\Klient Logs\.
- Improved performance when saving Display Options. Only items that have changed are saved, which improves speed dramatically for people with many display themes installed.
- In the masks section of the Display Options, "Chat Action" and "Chat Message" are now called "DCC Chat Action" and "DCC Chat Message" to avoid confusion.
- Fixed the Display Options dialog opening up with its Apply button enabled (it incorrectly thought modifications had already been made).
- Fixed the Away Options dialog not allowing you to set the away nickname or back nickname to a different upper/lower case version of a nickname already in the drop-down.
- Fixed the example display areas in the Logging options and Logging Session Options dialogs allowing you to enter text in them.
- DCC
- In the DCC File Transfer Options dialog, the DCC Chat Options dialog, and the DCC Server Options dialog, you can now drag-and-drop rules to re-order them.
- The DCC Transfers window now docks onto Klient's main form and shows all transfers in the same window. You can also view DCC Transfers in the new Control Center.
- When you are prompted because a file you are about to receive already exists, you now have the option to save the new file with a different name (in addition to resuming, overwriting, or cancelling).
- The appearance of many DCC prompts has been updated.
- The animations in the DCC Details window are now standard system animations without the overlay of the computer image. This makes it appear correctly on systems where the standard animations have been changed.
- Fixed the DCC Details dialog and DCC Receive prompt treating & characters in filenames as a keyboard accelerator.
- Fixed Alt+O from the DCC Details window opening the "C&onnection" item in the main window instead of clicking the Open button in the details window. Depending on other factors, pressing Alt in this dialog to activate accelerators could have also caused a complete crash (fixed that too).
- Fixed the "There are no rules..." message in the DCC File Transfer Options dialog and DCC Chat Options dialog not having the proper color for the window background on systems using Windows XP themes.
- Fixed check boxes inside of list view controls in several dialogs not drawing the check marks in the right color on non-XP systems. This affected the Confirmation Options dialog, the DCC File Transfer Options dialog, the DCC Chat Options dialog, the DCC Server Options dialog, and the DCC Rule dialog.
- Fixed an error that occured if you use the space bar to access the "Yes" button then kept the button pressed or pressed it multiple times in the DCC chat request dialog.
- Fixed the DCC Details window showing captions improperly after pressing Alt to show accelerator keys in the dialog.
- Fixed rules set for the DCC Server that are specific to file transfers being applied to chats and sends. In the default configuration, this means all chat and send requests to the DCC Server would be refused.
- Fixed DCC rules with "where the sender matches masks" or "where the sender does not match masks" not working when more than one mask is specified.
- Fixed Klient placing a read-lock on new files being received from DCC (resumed files were ok).
- Fixed the Rule Description area in the DCC Rule dialog appearing as if text can be entered in it when using Tablet PC.
- Fixed DCC prompts not causing Klient's button in the Windows taskbar to flash if Klient is not active (affects Windows XP only).
- Fixed Klient not allowing you to receive files that have more than one sequential period in the filename.
- Scripting Windows
- More new docking: the Script Editor and Script Language Formatting windows also use the new docking system. The primary purpose of the docking system in these windows is to allow you to re-arrange or auto-hide various components. For example, you can auto-hide the Items list in the script editor to have more usable space in the code window. Please see the help file for more details on the new docking system.
- Added shortcut in the Script Editor for building and applying scripts.
- Updated the icons that show bookmarks in the script editor.
- The Variables window for viewing script variables now docks onto Klient's main form.
- Removed the Script Language Definitions dialog. Language definitions are now configured in the Scripting section of the Control Center.
- Removed the Object Explorer. This dialog was only temporary while the Object Reference section of the help file was incomplete. Removing it allows the removal of the method descriptions from the type library in KlientObjects.dll, which will substantially reduce its size.
- A few changes were made to the Script Language Definition dialog to support languages that require return values and languages that denote functions through indentation.
- When changing languages in the script editor, commented parameter lines (for example, 'Params: Server, Window) are now changed according to the language (for example, when changing to PerlScript, the $ is added to the parameters, when changing to RubyScript, the parameters are changed to lowercase, etc.)
- Fixed the Script Editor's code edit area showing scrollbars when no script item is open for editing.
- Fixed the Script Editor's Event drop-down being enabled when no script is open for editing if you closed a script while viewing/editing its events.
- Fixed the pop-up menu in the script editor's code window incorrectly indicating that bookmarks are set after changing script items.
- Fixed some non-functioning and duplicate keyboard accelerators in the Script Editor Options dialog.
- Fixed the delay text label in the Code Insight tab of the Script Editor Options dialog changing to %f after pressing Alt to show accelerator keys in the dialog.
- Toolbars and Switchbar
- Added "Windows XP" and "Office 2003" toolbar/menu styles to the interface options. They use the XP theme engine and are therefore only available on Windows XP.
- Floating toolbars can now be alpha-blended. New options in the Interface Options dialog enable or disable this and control the translucency level. These options are only enabled on Windows 2000 or later systems.
- Added Group By Type option to the Switchbar options.
- Button widths can now be changed using the keyboard in the switchbar options (added spin edits).
- The "Counts" toolbar button in the channel window is now "Channel Stats" and show percentages in addition to counts.
- Removed the "Text Buttons" and "Large Buttons" section of the toolbars on Klient's main screen. Buttons can be made to display text by right-clicking them during configuration and selecting the style. Large images can be displayed by checking the "Large Icons" item in the Options tab of the Customize Toolbar dialog.
- When using the Large Icon toolbar mode, the images are now 24x24 versions of the smaller icons (also alpha-blended) instead of stretched versions of the smaller icons.
- Made several changes to the default toolbar configuration. Items that used to access individual dialogs, such as the List Management dialog, are no longer in the default configuration. However, the items still exist and can be added by customizing the menu/toolbar.
- Tooltips on the toolbars now have the XP gradient border when run from Windows XP.
- Alphabetical sorting of the switchbar is now optional.
- The window switchbar now optionally shows window names as tooltips.
- The option to show or hide the Window Tree and Switchbar are now in the View menu instead of the Interface Options dialog.
- The List Channels toolbar button is now in the main screen's toolbar by default.
- Fixed the switchbar allowing you to dock other toolbars right on top of it.
- Fixed the switchbar painting to show mouse movements when mousing over it while Klient is not the active application.
- Misc
- Added Docking Style options to the interface options. Available styles are: Standard, .NET, Windows XP, and Office 2003. The Windows XP and Office 2003 styles use the XP theme engine and are therefore only available on Windows XP.
- Added options to the Interface Styles dialog to enable or disable animation collapsing/expanding dock windows. If it is animated, you can set the speed.
- Added "Fade" menu animation style to the interface options.
- Added a "Colors" tab to the Display Options dialog which allows you to define the color to use when the 16 basic color codes are encountered.
- Added the "Klient Control Center", which gives access to list management, script management, file transfers, and options.
- List Management and Script Management have changed along with the new Control Center.
- You can now drag-and-drop people from a channel's names list into the Notifies window to add them to your user list for notification (it will take care of adding the users as needed, assigning user groups as needed, etc.)
- Added "Flash Next" item to the system menu of all IRC windows. This provides on-demand flashing. When checked, the window selector items for the window will flash the next time (and next time only) text is displayed in the window when it is not active.
- Added support for hiding the splash screen. To hide the splash screen, add an item to Klient's registry section (HKCU\Software\Klient\IRC 2.0). The item's name should be "HideSplash". The data type or value are not important. If that item is there, the splash screen will not be shown. Hiding the splash screen does not increase start up time significantly.
- Added icons to the Notify List window.
- Changed the slash screen. It uses a different image and alpha-blends some of its edges to the desktop for a smoother look.
- The Users section of List Management now shows the last time a person was seen on IRC.
- Removed the separate tree and list view controls in the /links dialog and replaced it with a control that is both a tree and a list view.
- The Channel Information dialog has been redone with an XP look similar to that of the new Control Center.
- The Online Timers window now repaints smoother when viewing the connected duration in minutes instead of seconds.
- Changed the border colors for the color selector buttons in the Text tab of the Display Options dialog.
- When Klient's Interface Options are set to always use the system tray, Klient no longer appears in the task bar (it used to be there when it was not minimized).
- When showing addresses as tooltips in a channel's names list (enabled in the Window options), the tooltips displayed are now less choppy when moving the mouse around the names list.
- Explorer bars now remember their expaneded or collapsed state.
- Changed the list view in the channel list results dialog. The new view has filtering capabilities and its header has customizing capability.
- Fixed the Select Color window (which pops up when Ctrl+K or Ctrl+M is pressed if the option is set to do so) not being drawn properly if you toggle betweek Ctrl+K and Ctrl+M while the window is already open.
- Fixed the handpoint cursor used throughout the program not being the correct system cursor.
- Fixed Klient not adjusting keyboard accelerators when the setting to hide them until the Alt key is pressed is changed while it is running.
- Fixed Alt, F10, and Esc not activating/deactivating the menu and menu item accelerators on Klient's main form properly.
- Fixed the FServe Client not using the correct icon for the selected folder in the Local section.
- Fixed an error that occured when closing Klient while a Channel Information dialog is open.
- Fixed tooltips not showing properly in the channel list results dialog.
- Fixed a resizing issue in the Join Favorites dialog (the minimum width constraint was not correct).
- Fixed names list tooltips being messed up when a person's nickname contains a | character.
- Fixed your own address being shown incorrectly when you mouse over your own nickname in a channel after having changed your nickname (if "show addresses as tooltips in names list" is enabled in the Window Options).
- Fixed the Channel Information dialog playing the "dock sound" when opening if its toolbars are not in the default position.
- Fixed the channel names list showing the last tooltip shown as the tooltip when hovering the mouse over a blank area of the names list.
- Fixed an error that occured if you press Page Down while viewing an empty IRC window.
- Fixed scripted popup menus (in IRC windows, the window tree, notifies window, etc.) appearing when the right mouse button is pressed instead of when it is released.
- Fixed the Cancel or No button in simple Yes/No/OK/Cancel dialogs not being linked to the Esc key.
- Fixed size grips in the lower right corner of sizeable windows not appearing properly on systems using large display modes.
Scripting and Plugins
- Scripted popups can now display alpha-blended images. Alpha-blended grayscale versions are automatically created for when they are disabled.
- As a result of the changes to the script language definitions, Klient's scripting now works with Python, RubyScript, and PHP.
- Added Speech event. This event is triggered when text is about to be spoken. The text is passed in as a variable parameter and may be modified directly. Setting the text to an empty string or calling Klient.Halt cancels the speech.
- Added read-only property Window.UniqueID that is a unique integer identifier for each window. It is similar to Window.Handle, but is assigned by Klient instead of the operating system and does not change when the window is changed between desktop and normal modes.
- Added WindowMgr.WindowByID(UniqueID) method to access a window object given it's unique identifier.
- Added KLIENT_WINDOWS_HANDLE_BY_ID for DLL Plug-Ins to translate a window's unique ID into a handle.
- Added KLIENT_WINDOWS_ID_BY_HANDLE for DLL Plug-Ins to translate a window's handle into a unique ID.
- Added DNS.IPs. This property accesses a StringList object that contains all of the IPs a host name resolved to.
- Added OpenDialog.ExtensionDifferent, SaveDialog.ExtensionDifferent, KLIENT_OPENDLG_GET_EXT_DIFF, and KLIENT_SAVEDLG_GET_EXT_DIFF. They are True when the selected filename's extension differs from OpenDialog.DefaultExt, SaveDialog.DefaultExt, KLIENT_OPENDLG_GET_DEFAULT_EXT, or KLIENT_SAVEDLG_GET_DEFAULT_EXT.
- Added StringList.Insert(Position, Text) method. If the StringList object is sorted, Position is ignored and the operation is treated like an Add.
- Added a Timers window that docks onto Klient's main form for monitoring script timers.
- Changed the mechanism of error checking used with the Windows Scriptign Host. This improves error messages and allows syntax checking in script engines that do not report errors via exceptions.
- Changed the "Notify Add" and "Notify Remove" events to "Notify Online" and "Notify Offline" to clear up confusion over what the events are for.
- A query window's address is now filled in before calling the WindowOpen event if the query window was created as a result of someone sending you a message.
- The Variable Expired script event is now triggered before the variable is actually removed.
- The Variable Expired event for DLL scripts now uses a pTextInfo struct. It is identical to the previous pVariableInfo event.
- StrUtils.StripColors now also removed ASCII 8 (don't ask me, ask Quension!).
- The DNS Resolved script event for active scripts is now passed an IPList parameter. It is a StringList object that contains all of the IPs a host name resolved to.
- Using Server.Emulate no longer results in a "Server Data" script event being triggered.
- Improved the automatic completion of hostmasks in the user list, ban list, ignores, etc., when a complete host mask is not specific.
- Removed OpenDialog.AllowExtDiff, SaveDialog.AllowExtDiff, KLIENT_OPENDLG_GET_ALLOW_EXT_DIFF, KLIENT_OPENDLG_SET_ALLOW_EXT_DIFF, KLIENT_SAVEDLG_GET_ALLOW_EXT_DIFF, and KLIENT_SAVEDLG_SET_ALLOW_EXT_DIFF.
- In the same dialogs, you can now rename rules from the main dialog (without having to open the individual Rules dialog to rename them).
- In the same dialogs, when you remove a rule the next rule in the list is now automatically selected. If there is no next item, the previous item is selected.
- When the Send/Receive Complete and Send/Receive Fail script events are triggered, the file stream is now closed before calling the event. Thus, there is no longer a write lock on the file when those events are called (they can be moved, deleted, etc.)
- When using the Whole Words Only option in the Script Editor's Find and Replace dialog, it now breaks words on punctuation.
- When Klient starts up and no scripts are loaded, it no longer automatically adds Klient.ksf unless the script section of its registry key did not exist. This means you can have no scripts loaded if desired, but Klient will still set appropriate defaults if started with no registry entries.
- Added API.ShowWindow(Handle, CmdShow) method.
- Fixed parameters not being processed properly for DLL plug-ins.
- Fixed StrUtils.LeftTrimChars and StrUtils.RightTrimChars not working properly.
- Fixed StrUtils.IRCUpperCase and StrUtils.IRCLowerCase treating [] like lowercase and {} like uppercase. Now, [] is uppercase and {} is lowercase.
- Fixed StrUtils.IRCUpperCase and StrUtils.IRCLowerCase not dealing with \ as a lowercase | and vice versa.
- Fixed an error that occured when Variables.Unset is called for a variable during its own Variable Expired event.
- Fixed StrUtils.Reverse returning an erroneous value.
- Fixed Display.Line() faulting when attempting to retrieve an EchoEx()'d line.
- Fixed Server.RemoteIP not being populated before the Server Connecting event is raised.
- Fixed Window.TimestampingDefault and KLIENT_WINDOWS_IS_TIMESTAMP_DEFAULT reporting inverted values.
- Fixed the script editor not consistently highlighting objects passed in to script items as reserved words.
- Fixed Variables.GetVariant forcing its return type to be a string.
- Fixed UserGroup.Permissions.Item(), UserGroup.Permissions.Delete(), UserGroups.Networks.Item(), and UserGroups.Networks.Delete() not working when 0 is specified for the index.
- Fixed UserList.HasPermission not taking into account the specified network for user groups that are network-specific.
- Fixed errors that occurred when a server window was closed that had custom windows created for it by a script.
- Fixed problems that occured with script variables when accessing methods of the Variables object during a Variable Expired script event.
- Fixed Display.ShowVoiceMsg and Display.ShowVoiceNotice putting the parameters in the wrong order. The problem was in KlientExternals, so anyone using a deriviative of Klient's Delphi SDK might want to check the parameter order for those items.
- Fixed the Whois object calling its callback twice when the person being looked up is not on IRC (the second time it would report Success = True).
- Fixed script errors being reported improperly when the error is generated by asynchronous script code.
- Fixed IniFile.Open always returning True.
- Fixed Display.ShowNotify not displaying the address and/or comment properly if specified.
- Fixed the description for $alert2 being incorrect in the "Two Part" item in the Display | Text options.
- Fixed KLIENT_DISPLAY_FORMAT_TEXT not recognizing the constant values defined in the SDK or the DLL Plug-In help file.
- Fixed KLIENT_DISPLAY_FORMAT_TEXT using the incorrect display constants. It now works as documented.
- Fixed Sender.FullAddress having the nickname duplicated for Join events where you are the one joining.
- Fixed the Channel.Limit property always returning 0.
- Fixed calls to Display.Line(n) causing an extra line being written to the window's log file.
- Fixed event parameters modified by a DLL Plug-In going back to original if an active script event handler existed for the same event.
- Fixed the Silence Changed script event not being triggered.
- Fixed code insight not being displayed in the script editor for Registry.KeyNames and Registry.ValueNames.
- Fixed the server handle associated with timers not being updated if/when a server window's handle changes (this happens when toggling between desktop and regular window state).
- Fixed scripted popup menus showing an empty menu when popped up if all menu captions evaluate to nothing.
- Fixed Server.CommonChannelCount, Server.CommonChannel, KLIENT_SERVERS_COMMON_CHANNEL, and KLIENT_SERVERS_COMMON_COUNT using counts for all servers instead of the specified server.
- Fixed errors that would occur if scripted popups were clicked after having the popups had but edited and saved but not yet built (and therefore the script editor not yet closed).
- Fixed the Script Import Wizard's large caption labels not using the system font.
- Fixed Locale.ConvertToLocalNumber returning an incorrect value.
Network
- Fixed a problem with Klient losing blocks of data from the server under rare circumstances (circumstances too complicated to explain here!)
- Fixed an error that occured when trying to configure a proxy server that drops connections immediately after it opens them.
- Fixed an error connecting to some SOCKS5 servers.
- Fixed servers reporting "Connection Cancelled" instead of "Disconnected from..." under certain conditions.
IRC
- Added a Refresh menu item to the bans, ban exceptions, and invite exceptions section of the Channel Information dialog.
- You can now hold the Shift key when connecting to a server to not execute the Connect Options.
- Added a "Rejoin Channels" item to the server history drop-down. If this item is checked, you will rejoin any channels you are on when using the server history drop-down to reconnect.
- You can now double-click a topic in the Topic History section of the Channel Information dialog to view/edit the saved topic.
- Added "Open Log" item to the Logging section of the system menu in IRC windows to open the log file the window is currently logging to.
- The notify list now uses /watch C to clear itself when using WATCH instead of -nick -nick etc.
- When pasting text in an IRC window's edit box, pasting a single line of text into a multi-line edit box never sends the line even if there is a CR/LF at the end. When pasting multiple lines into a multi-line edit boxes, the first lines are sent and the last is not. Single-line edit boxes behave the same as before; lines are sent wherever a CR/LF was copied with the text.
- The Bans and Ignores section of List Management now shows the access count in the main list view.
- Fixed the rejoin delay being editable in the Server Events options dialog even when "Rejoin channels when kicked" is not enabled. Same for the "Display in server window" and "Display in query window" items in the same dialog (now disabled when "Whois on query" is not checked).
- Fixed nicknames being removed from a channel window when they quit IRC if you are not actually on the channel anymore (for example, it is trying to rejoin after a kick or tried to rejoin but you were banned) but are still on other channels with the people who quit.
- Fixed the channel list results dialog sending an empty /join command (a /join command that didn't specify any channels) when double-clicking the list when no channels were selected.
- Fixed additions and deletions from your silence list not being reported.
- Fixed an error when pasting lines that contain carriage returns and/or line feeds into IRC windows whose edit boxes already contained some text.
- Fixed highlights not working properly when "whole word only" is specified and the word is followed by a punctuation mark.
- Fixed highlighting (from the Hightlight Options) not working properly when multiple words to highlight appear side-by-side in a sentence.
- Fixed the Own Channel Message and Own Notice displays including your nickname in the $address identifier.
- Fixed the notify list not being reset properly between reconnections.
- Fixed query windows not showing nickname changes when the nickname changes case only (i.e. when "Nick" becomes "nick").
- Fixed the screen appearing locked when closing IRC windows by double-clicking the icon in the upper-left corner of the window.
- Fixed the address mask dialog (when you add a ban or exception from the Channel Info window) having a 32-character limit.
IRC Protocol
- Added support for server codes 271 and 272, which are used to show silence lists.
- Added "Invite List" display mask item which is used for 336 and 337 replies. The dedicated display item allows hyperlinking of the channel names reported.
- When parsing a server's 005, Klient now assumes everything up to the + to be a prefix that has channel operator status for the purposes of enabling or disabling channel toolbar buttons.
- To be compatible with mIRC-style color coding, Klient now treats color code 99 as transparent (that is, it reverts back to the default color for the segment of the text item being displayed).
- When connecting to a server, user modes set in the On Connect options are not set if they were automatically given to you. Similarly, modes that are supposed to be removed are not removed if they are not set.
- Channels are now scanned for banned members when you become opped on a channel. If you become opped while Klient is waiting to fill the internal address list for a channel, the check is delayed until the IAL is filled (to better find matches).
- Changes made to the ban list are now acted upon in all channels immediately instead of just when people join.
- Klient now uses RFC2812's defintion of ~ and ^ being lowercase and uppercase versions of the same letter.
- Improved the display of 432 replies (erroneous nickname) to include other information, if available, as to why the nickname was not valid.
- Channel names lists are now refreshed on 353 (received when you use the /names command for a channel).
- Fixed 378 replied (nick is connecting from...') not always being displayed as part of a /whois reply.
- Fixed the 484 reply not being reported properly on some networks.
- Fixed DalNET's initial user modes not being recognized (this may have happened on other networks as well).
- Fixed Klient not displaying KILL messages from the server.
- Fixed some parsing issues that would make Klient pick up a notice improperly if the correctly formatted text was embedded within a message.
- Fixed 371 replies (info up time) being displayed without the first colon that appeared in the reply.
- Fixed the Initial Mode event being triggered for channels every time a 324 reply is received. It now only triggers on the first time for a channel.
- Fixed Klient not sending CTCP responses when received while a connecting is happening but not completed (making Klient not be able to connect to some networks).
- Fixed a spelling error in the 491 reply display (no O-lines for your host).
- Fixed server notices not being parsed properly if they are sent before the server's 001 reply upon connection.
- Fixed wallop messages from servers not being displayed.
- Fixed Klient interpreting messages to +channel (not #channel) as a voice message to "channel" instead of a regular message to "+channel".
- Fixed a server's user modes containing a space if a server reports extra spaces in the user modes in a 221 reply.
- Fixed the default channel part message not being sent with a : before the message (making only the first word of it show up for other people).
- Fixed an error parsing NOTICE AUTH in certain situations.
Commands
- Added /perm <nick> <mask> command to add someone to your permanent ban list (to any ban groups that are automatically assigned to new bans).
- Added /control command to open the Control Center (primarily to enable a hotkey setting to open this dialog).
- Added /notifies command to show the Notifies window (primarily to enable a hotkey setting to this dialog).
- Added /transfers command to show the DCC Transfers window (primarily to enable a hotkey setting to this item).
- Added /wintree command to show the Window Tree (primarily to enable a hotkey setting to this item).
- Added /switchbar command to show the Window Switchbar (primarily to enable a hotkey setting to this item).
- Added /timerdlg command to show the Script Timers window (primarily to enable a hotkey setting to this item).
- Added /squery command that automatically adds a : before the second parameter.
- The /joinmin command now works with multiple channels, just like the standard /join command does.
- Removed the /objects command that used to open the now non-existant Object Explorer.
- The /dns command now displays multiple addresses if a host name resolves to more than one.
- The /invite command can now be used without parameters for servers that support 336 and 337 replies (which show invites received while away).
- The /join command now opens a Join Channels dialog if used with no parameters.
- When issuing a /names command, the "Updated internal address list" display is no longer shown. It is only shown when the IAL is auto-refreshed when a channel is joined or re-joined.
- Fixed server windows allowing a /list command to be issued while a list is already in progress. It checked from the Channel List dialog but not from the /list command.
- Fixed the /bans command not behaving as described in the help file. Used with no parameters from a non-channel window, it now displays Klient's ban list.
- Fixed the /rename command allowing you to rename a query window to the name of an already existing query window.
- Fixed an error the /mode command's auto-completion of channel names (where it fills in an empty # with the name of the channel) when using the /mode command on channels whose name ends with the # character.
- Fixed the user list not being saved right away and notifies not being reset after modifying properties for a user with the /userprop command.
System
- Added support for favoring speed over memory usage. To favor speed over memory usage, add an item to Klient's registry section (HKCU\Software\Klient\IRC 2.1). The item's name should be "FavorSpeed". The data type or value are not important. The items existence is only checked on startup, so you must restart if you add or remove this item before changes can be noticed. If this item is set, you will notice an increase in memory usage but a decrease in memory page faults (thereby improving performance). The difference in speed is not dramatic, but should be at least noticeable on slower machines. If you have a slower machine but have memory to spare, this may be a good choice.
- Fixed desktop shortcuts for channels (set in the Add Favorites dialog) not using the correct icon.
Documentation
- Versions.txt is now Versions.htm.
- Added the Object Reference section to the help file.
- Fixed some errors in the DLL Plug-In documentation.
- Fixed some typing errors in the help file.