forked from WorldsOfBabylon/erk
-
Notifications
You must be signed in to change notification settings - Fork 1
/
CHANGELOG
2138 lines (2107 loc) · 144 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Version 0.880
* Changed the images for the radio checked and unchecked icons (for menus)
* Changed the images for the check and unchecked checkboxes (for menus)
* Added a channel/private chat list to the systray menu
* Added an option to disconnect from the server to the channel/private chat list in the systray menu
* Removed an unneeded print() from irc.py
* Added options to change nicks and join channels to the systray menu
* Bugfix: nickname in systray menu wasn't always being updated properly
* In the log export tool, logs are now sorted by network and name
* Chats with unread messages are now marked in the systray menu
* Added a toggle for marking unread messages in the systray menu
* Added the systray unread message toggle to the "settings" dialog
* Added a setting to en/disable disconnection from the systray menu
* Added the disconnection toggle to the "settings" dialog
* Added a setting to en/disable connection from the systray menu
* Added the connection toggle to the "settings" dialog
* Added a setting to toggle connection/chat display in the systray menu
* Added the connection/chat display setting to the "settings" dialog
* Added a toggle for topic eliding to the config file
* Added the elide toggle to the "settings" dialog
* The log export tool won't appear in menus if log reading/writing is disabled
* Added a commandline flag (--notraymenu) to disable the systray menu
* Chats with unseen messages are now marked in the systray menu even if the chat is active and the window is "hidden"
* Chats with unseen messages are now marked in the systray menu even if the chat is active and the window is minimized
* Bugfix: chats with unseen messages were not properly marked as such if the GUI was minimized or hidden
* Added a "stack" to the Plugin class (a shared List, allowing separate plugins to share data)
* Added documentation for the "stack" to the Plugin documentation
* Re-worded some passages in the Plugin documentation
* Changed the "stack" from a shared List to a shared Dictionary (which makes more sense, on reflection)
* Changed the "stack"'s name to "stash"
Version 0.875
* New version
* Updated the version number in the documentation cover pages
* Bugfix: errors are now ignored on file reading/writing, due to "ignorable" errors being thrown on Windows
* Topic editor now shows the full topic in a tool tip
* Bugfix: disconnect menu item didn't appear until a channel was joined; it appears on connection now
* Bugfix: --last commandline flag was broken
* Added a user mode display to channel windows
* Added a settings to the config file to toggle the user mode display
* Added the toggle user mode display setting to the "settings" dialog
* Channel topic display now elides text that is longer than the widget width; if elided, the full topic is displayed in a tool tip
* If IRC colors are turned off, the presence of IRC colors is checked before attempting to strip IRC colors
* Bugfix: the schwa in the style file generator ASCII art was backwards (ugh)
* Changed the ASCII art for the help menu
* If the main dialog is now passed a list() of ConnectInfo() object, it will connect to *all* of them, in sequence
* If the user has connection script execution turned on in the user settings, autoscript will automatically load with the --last commandline option
* Edited some of the error messages in the launcher to reflect current terminology
* Changed the title of the "Export As..." log export filename dialog
* "Resumed at" message now uses 24hr clock only if that option is turned on for timestamps
* Server logs can now be optionally saved, loaded, and exported
* Added an option to load and save server logs to the config file
* Added the server log settings to the "settings" dialog
* Bugfix: users could "drag" the cursor "down" on the text input widget, making all text afterwards "invisible"
* Bugfix: "unseen messages" and "connecting" text animation in the connection display now uses the set text color as its base
* Animation color settings for "unseen messages" and "connecting" in the connection display are now set in the config file
* Added the ability to set the "unseen" and "connecting" animation colors to the "settings" dialog
* Added a setting to the config file to set the width of the cursor, in pixels
* Added the ability to set the cursor width to the "settings" dialog
* Removed the "*" from changed settings in the "settings" dialog
* Bugfix: server consoles weren't scrolling to the bottom while connecting
* Added a readme to the distribution file
* Added a commandline flag to disable log reading/writing
* Bugfix: better solution to the "drag" issue on the text input widget (widget is "reset" every time a key is pressed in the widget)
* Bugfix: unseen messages notification could be triggered upon connection and joining a channel for the first time
* Topic editor no longer elides if it is hidden
* Added commandline flags to disable log loading (--noload) and writing (--nowrite)
* Bugfix: setting a channel mode did not always trigger the "unseen message" animation
* Bugfix: mode notification weren't always being written to the console
* Connection display colors are now set with a stylesheet
* Open/close node icons are now visible (and custom) on the connection display
* Open/close node icons on the connection display now change color depending on the darkness of the background color (just like icons)
* Added an option to the config file to toggle collapsability on and off in the connection display
* Added an option to toggle branch line display in the connection display
* Added the toggles for collapsability and branches to the "settings" dialog
* The "arrow" changes to a "dot" when collapsability is turned off on the connection display
* Selected chats (channels or private) are now underlined when active in the connection display
* Selected consoles are now underlined when active in the connection display
* Added settings to toggle underline and bold (in the connection display) to the config file
* Added the toggle underline/bold settings to the "settings" dialog
* Added an option to italicize the current chat (in the connection display) to the config file, for completeness :-)
* Added the toggle italics setting to the "settings" dialog
* Changed the private chat icon to a "user" type icon, to make it more apparent it's a private chat
* Changed the "format" and "style editor" icons, as the old one looked a little sketchy in the GUI
* Changed the "user" icon to be the same as the "private chat" icon
* Bugfix: console style files are now loaded automatically
* Bugfix: unseen messages are now handled properly, so the flag shouldn't be raised on windows that are active and displayed
* Added an option to display connection uptime in seconds (in the connection display) to the config file
* Added the new uptime option to the "settings" dialog
* Script editor will no longer prompt to save on exit if there isn't any code in the editor, and there's no filename set
* Application now "spawns" a system tray icon
* Added a setting to the config file to toggle the system tray icon
* Added the systray icon toggle to the "settings" dialog
* Added a small menu to the systray icon (connect, preferences, exit)
* Bugfix: preferences menu item in the system tray menu had the wrong icon
* Added more entries to the system tray icon menu, making it more useful
* Reworked the systray menu; consolidated entries, and made the menu more compact
* Removed the old tool name (Styler, with the schwa) from the style editor
* Removed an unused event function from the style editor
* Added a tool tip to the systray icon with the application name
* Clicking the system tray icon can now hide/show the application
* Added a settings to toggle the hide/show control to the config file
* Added the hide/show on tray click setting to the "settings" dialog
* Added plugin "stuff" to the systray icon menu
* Bugfix: systray icon menu would show tools that are disabled
* Added a new commandline flag (--nosystray) to disable the system tray icon
* Changed the text in the "disconnect" menu entry
* Added a new menu entry: "disconnect from all servers" (only appears if connected to more than one server)
* Added a disconnect all entry to the systray icon menu
* Systray icon tool tip is now updated to show the number of active connections
* Added a list of active connections to the systray icon menu, allowing users to select a connection (and switch to that connection's console)
* Added a "disconnect selected connection" option to the systray icon menu
* Clicking on a server in the systray icon menu now brings the Erk window to the front (and unminimizes it)
* The "disconnect from current" menu entry (for the systray menu) now specifies what server it will disconnect
* Changed the systray tool tip display to show either what server the client is connected to (if there's only one) or how many servers the client is connected to
* Added the "export log" tool to the systray "tools" submenu
* Added "minimize" and "maximize" window options to the systray menu
* Removed the "About" entry from the systray menu
* Removed a separator from the systray menu
* Bugfix: --nomenus now also blocks the systray menu
* Bugfix: --nosettings now also prevents the "preferences" entry in the systray menu from displaying
* Added a setting to toggle the systray icon menu on/off to the config file
* Added systray menu toggle to the "settings" dialog
* Moved system tray icon settings to their own page in the "settings" dialog, on the "Application" page
Version 0.870
* New version
* Fixed the "Hide manager" menu icon
* Added a menu entry to load plugins from a user-selected directory
* Bugfix: the script editor now closes properly instead of hanging when launcher as a stand-alone app
* Changed the commandline option to launch the script editor: now -e, --edit, and --scripter can be used
* Moved the contents of the "Emoji" tab to the "Text Input" tab in the "settings" dialog
* Gave scripting it's own tab, and created a plugins tab in the "settings" dialog
* Changed the plugin icon from the python image to a puzzle piece
* Changed the "load plugin directory" icon to a puzzle piece with a magnifying glass
* Removed "restart" option from the main menu
* Disconnect entry in the main menu is now a "fancy" menu entry
* Redesigned the main menu, using all "fancy" menu entries
* Moved plugin stuff in the "Tools" menu to the "Settings" menu
* Plugin menu now appears regardless of whether any plugins are installed or not
* Plugin menu stuff is now in the permanent plugin menu
* New event method: connecting()
* New event method: exit()
* Updated the plugin documentation to reflect the new "plugins" menu
* Added a settings to the config file: a list of directories to also load plugins from
* Added a bit to the "plugins" page in the "settings" dialog to set (and remove) directories to load plugins from
* The plugins load list is now checked for duplicates (with duplicates being removed) before loading
* Bugfix: syntax formatter now handles multi-char macro interpolation symbols
* Added a "clear all" button to the add/remove plugin directories entry in the "settings" dialog
* Channel list searchs are now done in a separate thread (not completely happy with *how* at the moment)
* Channel list rendering is now done in a separate thread (as above)
* Channel list with *no* search are now printed to the window as the listings come in
* List messages now have their own "type" for display
* List messages use the "server message" style
* List messages can use HTML in their message portion of the message (unlike anything else but plugin messages)
* Added settings to limit list searches the channel names and a toggle to mark beginning/end of list searches
* Added new list search settings to the "settings" dialog
* Bugfix: Horizontal rules in chat (and date markers) are now always rendered in black
* Bugfix: config file verification would incorrectly reject proper config files
* Bugfix: some settings weren't being imported properly on config file import
* The config file patcher now will patch for *ALL* missing settings
* Bugfix: the /refresh command now uses the new list message type
* Updated the command documentation to reflect the new channel list search and features
* Added a new command: /dump
* Created a new message type: RAW_SYSTEM_MESSAGE, which uses the "system message" type, without the preceding symbol; messages can use HTML
* Most commands now use the new message type for command reponses
* Changed how list-search-threads are stored; should be cleaner
* Added a settings to make list searches case-sensitive (off by default)
* Added the case-sensitive-search setting to the "settings" dialog
* Updated the command documentation to show new list search feature
* The --settings commandline option can now accept a filename as an argument (for specific settings file editing)
* Bugfix: sometimes, quitting without a parting message would not use the default part/quit message
* Bugfix: channel parting was not using the proper Twisted method, causing part messages to not always be sent
* Bugfix: channel parting was not being handled properly (due to overloading a Twisted method *twice*)
* The dialog to change the default quit/part message now allows for directly editing the current quit/part default
* The --settings commandline option will now create a new config file if the one passed as an argument doesn't exist
* Moved the contents of the "Timestamp" tab to the "Messages" tab in the "settings" dialog
* Moved the contents of the "Menu Bar" tab to the "Application" tab in the "settings" dialog
* "Settings" dialog now shows the filename on the save button if the file being edited isn't the default
* "Settings" dialog now shows the filename in the title if the file being edited isn't the default
* Application name is now shown in the "settings" dialog if being executed with --settings
* If the editor is executed with --edit, then unusable widgets (like the server list, run button, etc) are hidden
* Set the border on the tab selector in the "settings" dialog to be 0px wide, and transparent
* Added the plugin repo to the help menu
* Bugfix: the menu in the style editor was not using the correct icons (and they were also in the wrong format, and the wrong size)
* Changed the "load connection script" button icon in the script editor to make the button's function more apparent
* All-new icon set: icons are now in the "material design" style
* Gave the "chats" tab in the "settings" dialog it's own (new) icon
* Gave private chats their own (new) icon in the connection display
* Changed the icon of the application page in the "settings" dialog
* Changed the icon of the files in the "Installed Scripts" submenu in the script editor
* Bugfix: the /switch command was broken in certain circumstances
* Reverted the "visited" and "unvisited" icons to the ones from the old icon set, as they're more visible/usable
* Added a new command: /console (switches to the current server console)
* Removed some unused icons from the app
* New logo splash (the image that appears when no connection/windows are open)
* Bugfix: setting the history size in the "settings" dialog would do strange things if the "set history size" dialog was canceled out of
* Added a new setting to the config file: dis/enable aliases
* Added the en/disable alias setting to the "settings" dialog
* Changed the wording of "Global aliases" to "Aliases are global" in the "settings" dialog
* Removed all Icons8 icons, and replaced all of them with icons from public domain sources (mostly Google's Material Design)
* Removed the Icons8 credit from the "about" dialog, and added a note about public domain sources for icons
* Added a settings to en/disable plugin input events (so, if a plugin has a malicious input event, it can be evaded)
* Added the en/disable input event setting to the "settings" dialog
* Added the new "disable input event" stuff to the documentation
* Added a section to the plugin documentation on malicious input events
* Added a setting to always/never scroll to the bottom on chat switch
* Added new always/never scroll setting to the "settings" dialog
* Moved the "Enable commands" and "always allow /me" checkboxes to the bottom of the "Text input" page in the "settings" dialog
* Bugfix: config file integrity checks would always fail
* New default font: Ubuntu Mono
* Altered the font loader to load multiple font styles from the resource file
* Added bold, italic, and bold-italic font styles for Ubuntu Mono to the resource file
* Changed the default font size to 11pt
* Added font credit to the "about" dialog
* Bugfix: entire default font family was not always loaded into memory; this has been fixed
* Changed the default font to Fira Mono, and added the font family to the resource file
* Changed "about" credit information to the new font
* Reset the default font size to 9pt
* Subscript of "fancy" menu entries are no longer in italics
* Tweaked the "about" dialog a bit
* Bugfix: client wouldn't rejoin channels on reconnection (if the connection was lost)
* Changed the menu entries for "Scripter" and "Styler" because the schwa has the potential of being rendered wrong on Windows
* Added a schwa to the menu icons for the manuals
* Removed the --scripter commandline option
* Renamed the --styler commandline option to --edit-style
* Removed the "channels" entry in the user config file, as it's no longer used
* Added a setting to toggle joining channels on reconnection (after losing a connection)
* Added the "rejoin channels" setting to the "settings" dialog (on the "miscellaneous" tab)
* Added a setting to toggle plugin load error display
* Added show/hide plugin load error toggle to the "settings" dialog
* Reloading plugins now clears the plugin autocomplete and plugin help tables
* Changed the "plugins" tab in the "settings" display into a set of tabbed pages
* Added a bit of documentation to the "plugins" tab about how to use the "add plugins locations" tool
* EVERY tab in the "settings" dialog is now a tabs bar (makes the dialog look more "unified" and consistant)
* "Tab-ified" the "applications", "messages", "hide & ignore", and "logs" tabs in the "settings" dialog
* "Tab-ified" the "chats", "text input", and "misc" tabs in the "settings" dialog
* Moved the "open new chat for private messages" option to the "chats" tab in the "settings" dialog
* "Tab-ified" the "scripting" tab in the "settings" menu
* Added an alternate name for the --settings option (--preferences, due to how that's how the dialog is referenced to in the GUI)
* Added a tab ("menus") to the "plugins" tab in the "settings" dialog, and added the plugin menu settings to it
* Updated the documentation to reflect changed to the GUI
* Updated referenced to the "settings" dialog in the documentation to reflect new "settings" layout
* Limited the height of the plugin source directory list widget to shrink the "settings" dialog a bit
* Added settings to set the background color and text color of the connection display
* Added the background/text connection display color setting to the "settings" dialog
* Bugfix: settings dialog would error out if the connection display was disabled
* Bugfix: context menus are fixed for the chat display; menu hovering and highlights work again
* Bugfix: fixed the context menu bug for the topic editor
* Added settings for the script syntax highlighter (background and text color) to the config file
* Rearranged the "scripting" tab in the "settings" dialog to add a new tab: "Highlighting"
* Added controls to set the background and text color to the "Highlighting" tab in the "settings" dialog
* All syntax highlighting colors for scripts can now be edited with the "settings" dialog
* Rearranged some settings on the "scripting" tab in the "settings" dialog
* Added a new setting: toggle topic editing on and off
* Added en/disable topic editor setting to the "settings" dialog
* The IRC color context menus (for the text input widget) now only display if IRC colors are enabled
* Added a setting to en/disable the user list context menu
* Added the dis/enable user list context menu setting to the "settings" dialog
* Added a setting to dis/enable the connection display context menu
* Added the en/disable connection display context menu setting to the "settings" dialog
* Added a tab to the "Connection display" tab in the "settings" dialog, and moved some settings to it
* Added a link in the script editor to the specific page in the "settings" dialog to edit syntax highlighting colors
* Only one instance of the script editor is now allowed
* Added a link in the script editor to the scripting features page in the "settings" dialog
* Added a new menu to the script editor ("Settings") and moved related menu items to it
* Removed the link to the highlight page in the settings dialog in the editor, and added a general "scripting settings" link
* Removed a long unusued settings from the user config file
* Changed the generated header for style files: added a new logo, and removed references to QSS
* Restored "light" horizontal rules for dark backgrounds (for both dividers and date/time markers)
* Increased the opacity of the images used for the horizontal rules to 100%, which removed some inadvertant rendering artifacts
* Changed the primary "horizontal rule" message to a dotted line (rather than a solid line)
* Added a new message type (HARD_HORIZONTAL_RULE) that doesn't use the dotted line
* Bugfix: two HARD_HORIZONTAL_RULES will no longer be displayed consecutively
* Bugfix: using /switch and /console now properly sets focus on the new window's text input widget
Version 0.860
* Removed all plugin-related code and documentation
* Config files are now stored in a directory in the user's home directory
* Log files are now stored in the same directory as settings files (in a subdirectory)
* Default style file is now stored in the styles directory
* Removed "Tools" menu
* The "Settings" menu is now the "Settings & Tools" menu, and "Tools" entries are located there
* Edited references to plugins and the plugin editor out of the command documentation
* Added a commandline option to open (and use) the "settings" dialog without the client running
* Removed some now-unneeded credits from the about dialog
* Tweaked the "about" dialog a bit more
* Bugfix: log exporter used the default log directory, rather than one supplied by the user
* Bugfix: log exporter defaulted to exporting as text, even though the GUI shows an initial default of JSON
* Added a commandline option to open (and use) the "export log" dialog without the client running
* Removed three commandline options: --export-all, --export-settings, --import-settings
* Changed a commandline settings description to "disable Settings & Tools menu" from "disable setting menu(s)"
* Added a commandline option to open (and use) the style editor
* Added a description of how Erk stores config files and logs to the README.md
* Moved "load defaults" into the "File" menu on the "edit style" dialog
* Changed some of the wording of the help text
* Added a two new commands: /ignore and /unignore (to add and remove from the ignore user list)
* Issuing /ignore with no arguments now displays the list of ignored users/targets
* Changed the argument interpolation symbol for macros from $ to &
* Bugfix: /edit command would not start the editor properly
* Alias names *CAN NOT* be a number (though they can *contain* numbers)
* Changed the wording for the global alias setting in the "settings" dialog
* /ignore can now use UNIX-style wildcards
* Changed the wording of the usage text for the /ignore command ("users" are no longer ignored, "targets" are)
* Changed the wording of the link to the scripting documentation in the GUI
* /unignore no longer contains a shortcut (/unignore *) to remove all entries in the ignore list
* Issuing /ignore * (which ignores ALL messages) now displays a warning
* Bugfix: ignoring a user from the userlist context menu would occasionally use the user's current nick with status symbol prefix
* Moved /ignore and /unignore higher up in the autocomplete hierarchy (so if a user does /i and hits tab, it will complete to /ignore)
* Ignored users (whether directly or by pattern matching) have strikethroughs through their nicknames in channel userlists
* Bugfix: when a user changes nicks, if the client already has their hostmask, the hostmask is migrated to the new nick
* Bugfix: users ignored using a hostmask are displayed correctly (with a strikethrough) on the userlist even if they change nicks
* Bugfix: users ignored using a hostmask are displayed correctly when initially connecting (as soon as their hostmask is obtained)
* Userlists are now repainted instead of regenerated when the ignore list is updated
* Hostmasks are now retained from chat messages
* Added a new page to the "settings" dialog: "hide messages" (from "hide notifications" in the "settings" menu in the GUI)
* Removed the "Hide Notification" submenu from the "Settings & Tools" menu
* Added an option to enable/disable user ignoring
* Added the enable/disable user ignoring option to the "settings" dialog
* Added options to ignore public, private, or notice messages (or any combination of the three)
* Added new ignore options to the "settings" dialog
* Changes to how notices are handled: now, if not sent to an existing channel or private chat, they are displayed on the current window
* Notices are always written to the console window
* Added an option to toggle whether notices and private messages are always written to the console
* Added the new notice/pm write to console option to the "settings" dialog
* Removed a number of no-longer-needed settings from the config file
* Bugfix: the main executable was using an incorrect setting to set the application font
* Bugfix: timestamps were being incorrectly recorded (and displayed) for private messages
* "Settings & Tools" menus are back to being two different menus
* The "settings" menu now uses all "fancy" menu entries
* Removed some legacy plugin code from the chat interface
* New adaptive help system: commands that are disabled from commandline or settings will no longer appear in /help or autocomplete
* Made the "hide messages" section in the "settings" dialog a little prettier
* Added an option to the config file: enable/disable commands entered into the text input
* Added new option to the "settings" dialog
* Client now harvests hostmasks from more events, making the ignore display work better and faster
* Bugfix: hostmasks weren't always captured correctly, or handled correctly
* Added a GUI ignore list manager
* Added a new library to the distribution: pike (https://github.com/pyarmory/pike)
* Added a new plugin system (plugins will now live in the .erk directory in the user's home directory)
* Added an en/disable plugins option to the config file
* Added the en/disable plugins option to the "settings" config
* Added a new folder for plugin storage : ~/.erk/plugins (plugins live in the user's home directory)
* Added mode and tick events to plugins
* Changed the name of the input() and output() event methods to line_in() and line_out() respectively
* Added a new event: input() (catches user text input)
* Added the new plugin guide to the distribution
* Added the new plugin guide to the GUI "Help" menu
* New plugin event: notice()
* New plugin event: motd()
* New plugin event: registered()
* New plugin event: join()
* New plugin event: part()
* New plugin event: joined()
* New plugin event: parted()
* Updated the README.md to show new plugin stuff
* New plugin event: kick()
* New plugin event: kicked()
* Added an option to show/hide the plugins menu
* Added the show/hide plugins menu option to the "settings" dialog
* Rearranged the "Extensions" page of the "settings" dialog, putting scripting and plugin settings in different QGroupBoxes
* Bugfix: if scripting is disabled via commandline, script options are blocked/hidden in the "connect" dialog
* Added a commandline option to block plugins (--noplugins)
* Added a commandline option to block plugins, scripts, and styles (--noextensions)
* Added a new commandline option to add directories to load plugins from (-P,--plugins)
* Added an option for plugins to catch ignored messages
* Added option for plugins to catch ignored messages to the "settings" dialog
* Changed how some extension options are disabled when --noscripts, --noedit, and --noplugins are used
* Bugfix: if an additional plugin directory was added at the commandline and the directory didn't exist, the client would crash
* Bugfix: improper wording in the --help text
* Added a new commandline option to block use of user commands (--nocommands)
* Added a 2px black border to the visited, unvisited, visited ssl, and unvisited ssl icons in the connection dialog to make them more visible
* Added an icon to the "Last server visited" in the QComboBox in the connection dialog
* Added information about disabling command input to the script and command documentation
* Added an exception for the "/me" command to command blocking
* Bugfix: importing a settings file did not work properly
* Added an option to allow or forbid the use of the /me command if command use is blocked
* Added the option to allow or forbid /me to the "settings" dialog
* New plugin event: quit()
* New plugin event: ctcp()
* Added a new plugin method: windows()
* Added two new plugin methods: server() and port()
* Added a "blank" plugin to the distribution
* Added a new commandline option: --generate (copies the blank plugin to a new file)
* Bugfix: some plugin events weren't detected properly
* Added a new icon for plugin modules
* Changed how plugins were entered into the plugin menu
* New plugin event: connect()
* New plugin event: topic()
* New plugin event: nick()
* New plugin event: invite()
* New plugin event: oper()
* Bugfix: plugin connect() was being called with an argument, when none is needed
* Plugins now have an id() (which consists of the module name, a period, and the class name of the plugin)
* Added the disabled plugin list *back* to the config file
* Bugfix: scripts no longer trigger the input() plugin event
* Plugins can now be en/disabled on a per plugin basis (so, in a multi-class plugin file, one class can be disabled and the other enabled)
* The client can now enable or disable all plugins at once
* Added the enable/disable all plugins functionality to the plugins menu
* Changed the text of the "Reload Plugins" menu entry to "Load new plugins"
* "Special" plugin class attributes are now all uppercase
* Added a new module attribute for plugins: PLUGIN (sets the name displayed in the menu)
* Fixed a bug in the example plugin code in the documentation
* Plugins in the "Plugins" menu are no longer "clickable"
* Moved the "Plugins" menu to before the "Help" menu
* Changed plugin menu display, so more information about plugins is shown
* Added an option to show/hide plugin details in the plugins menu
* Added the show/hide plugin details to the "settings" dialog
* Plugin "details" now shows more...details :-P
* Change to the plugin API (PLUGIN module attribute is now _ERK_PLUGIN_)
* Plugins can now have individual icons for both the module *and* and classes
* Updated the documentation with the new changes
* Two new plugin events: op() and deop()
* Two new plugin events: voice() and devoice()
* New built-in plugin method: uptime()
* New built-in plugin method: current()
* Added a note to the plugin docs that script() executes the Erk script in a separate thread, just like /script
* Bugfix: wasn't checking for the existance of plugin directories properly
* Plugin details will now show if the plugin was loaded from an external source (ie not from .erk/plugins)
* Removed the "reload new plugins" option from the "Plugins" menu
* erk.py will now exit if a plugin directory is passed to it that doesn't exist
* Added pike (and PyArmory) to the about credits
* Added a "reload new plugins" option to the "Settings" menu
* New built-in method: switch()
* Figured out a way to monkeypatch in various environment settings into running plugin classes
* New built-in method: ask()
* Plugin events are now triggered *AFTER* Erk is done processing the event (so, plugins don't trigger before events seem to occur)
* New built-in method: directory()
* --generate option argument is now optional (with no argument, it will print the plugin skeleton to STDOUT)
* Removed --scripter-edit optional argument
* --scripter now takes an optional filename (to edit a file)
* Plugins can now add entries to the autocompleter
* New built-in method: autocomplete()
* New option added to config file: toggle on/off plugin autocomplete
* Added plugin autocomplete toggle to the "settings" dialog
* Bugfix: emojis would only autocomplete if autocomplete nicks was turned on
* Bugfix: plugin entries would autocomplete if plugins were turned off
* Bugfix: notices weren't being handled properly by plugins
* New built-in method: help()
* Added a new setting to the config file: toggle plugin abilities to add to /help
* Added new plugin /help option to the "settings" dialog
* Removed some unneeded code from files.py
* Modified the make script to make moving to new major versions easier
* Bugfix: pike library wasn't being included in distributions
* Removed "settings" folder from distributions
* Plugin memory size is now reported more accurately
* Added the Python and GPLv3 logos to the documentation
* Re-arranged the "tools" menu
* Plugin related menu items will no longer appear if plugins are disabled
* Added an option to the tools menu to open the user's plugins directory
* Built-in method script() will now return True if the execution succeeded, and False if not
* script() will fail if scripting is disabled
* exec() will also return True if the command was able to be executed, and False if not
* Updated the documentation for script() and exec()
Version 0.850
* Changed the splash logo
* Added qt5reactor to the distribution
* Added qt5reactor to the credits in the "about" dialog
* Reworked the "about" dialog (using tabs now, "about" and "credits")
* Using a 200x200px image for the "erk button" image in the about dialog
* Added a new "Nutjob Laboratories" image to the about dialog
* Log file names now make the server/hostname all lowercase (so that servers with mis-cased network names are treated the same)
* Export log dialog now makes the network named all uppercase
* Style file names now make the server/hostname all lowercase
* Package export dialog now shows the package name rather than just the directory name
* Package export dialog now shows the package icon (if it exists)
* Changed the package export dialog text to "export plugin" from "export package"
* Package export dialog can now show single (not in a package) plugins
* Package exporting can now handle single plugin files (that is, files not in a package)
* Cleaned up the export log dialog
* Menubar on the style editor now matches the menubar on the connection dialog in appearance
* Cleaned up the export log dialog some more...with feeling this time :-)
* Using the Ctrl+F or Ctrl+R hotkeys in the plugin editor will now pass any highlighted words to find/find & replace dialog
* Cleaned up the server settings menu
* Bugfix: plugin and template generator didn't always escape quotes properly
* Reformatted the plugin/template generator dialog
* Added new entries for author, version, and website to the plugin/template generator dialog
* Exit messagebox now features the "Erk" icon rather than the generic "warning" icon
* The "create package" and "insert template" dialog now has descriptive text added to it, and is customized depending on which function is being used
* The "create package" dialog now allows for customizing the package/plugin icons
* The "create package" dialog can now set a name for the package that is different from the plugin
* The "create package" dialog's icon display has been cleaned up a bit
* Added a message box to see if the user is sure they want to uninstall a plugin
* Created clear markers for required and optional information in the "create package" and "insert template" dialogs
* Added another check for the "bad input method" detector: multiline/docstrings are ignored
* Bugfix: plugin engine now checks for the existence of *any* of the plugin methods, not just the main ones
* "Insert template/create package" dialog can now support multiple modes
* Creating a package with the generator will now name the plugin file after the name of the (initial) class it contains
* Bugfix: dis/en-abling plugins did not work. It works now
* The list of diabled plugins is no longer in the user config; it is now stored in the settings file
* Changed how plugin development tools are displayed in the "Tools" menu (if the client is in development mode)
* Changed the spacing on "fancy" menu entries
* The "reload plugins" in the editor is now a "fancy" menu entry
* Bugfix: the "insert messagebox" code generator in the editor had the wrong parent GUI
* Bugfix: clicking on "fancy" menu entries that didn't spawn a dialog or window wouldn't close the menu; now, they spawn a "blank" dialog that is immediately closed, thus closing the window
* Single file (.py) plugins can now be installed via the GUI as well as zipped plugin packages
* Changed the text of the "export package" entry in the editor to "export plugin"
* Exporting plugins now has a suggested output file name
* Exported plugins now have a new file extension: ".erkp" (for Erk plugin)
* Plugin installer now looks for ".erkp" file extension instead of ".zip"
* Documentation for plugins has been updated to match the new GUI changes, and Erk Packages (.erkp) files have been added
* Documentation for both plugins and scripting has been updated to include the new major version number
* Changed the package file extension to ".perk" because it looks better :-)
* Bugfix: "Tools" menu was displaying when, due to commandline flags, it would be empty
* Bugfix: toggling development mode could enable the script editor (and scripting) if scripting was blocked from the commandline
* Bugfix: editing settings could enable the editor even if the editor was blocked via commandline
* Bugfix: editing settings could enable plugins even if plugins were blocked via commandline
* Bugfix: editing settings could enable plugin installation even if plugin installation was disabled via commandline
* Exporting settings now defaults to "settings.json" as the default filename
* Bugfix: loading a config file into the settings dialog with a blank "FONT" entry no longer throws an error
* Added a new plugin command: .help(), which adds a command to the /help command
* Removed the option to install a plugin from the commandline
* Renamed --editor commandline option to --plugger (reflecting the plugin editor name)
* Renamed --edit commandline option to --plugger-edit (reflecting the plugin editor name)
* Added a new commandline option: --scripter (runs the script editor)
* Added a new commandline option: --scripter-edit (opens a file in the script editor)
* Changed the commandline option group "Development" to "Tools"
* All configuration files, scripts, styles, and logs are now stored in one directory: config/
Version 0.840
* Default alternate nickname now includes a random number
* Re-named the style editor to "Stylər"
* Re-named the script editor to "Scriptər"
* Rearranged the "Settings" menu, and gave the style/script editor fancy menu entries
* Edited the documentation to use the new names, and changed some formatting
* New command: /cat (sends the contents of a file as a series of text messages)
* Added a new built-in plugin method: .autocomplete() (adds entries to the autocompleter)
* Added .autocomplete() to the editor
* Added .autocomplete() to the documentation
* Added .autocomplete() to the examples in the plugin documentation
* Changed the menu entry for the "settings" dialog from a regular one to a "fancy" entry
* Changed the menu icon for the "settings" dialog from a cluster of gears to a wrench
* Changed the menu icon for the script editor
* Bugfix: fixed an error in the plugin documentation
* Added information about program directories to the command documentation
* Re-arranged how commandline options are displayed to the user with the -h flag
* Made the "help" menu a bit more "fancy"
* Added a link to the GPL 3 to the "help" menu
* Moved all of the entries in the "Logs" menu to the "Settings" menu and the "Preferences" dialog
* Removed the "logs" menu
* Changed the name of the plugin editor to "Pluggər"
* Created a new menu: "Tools". Moved most of the built-in tools to this menu
* Moved the plugin editor and related tools to the "Tools" menu ("development mode" is still required to view them)
* Cleaned up the buttons on the "Logs" page in the "settings" dialog
* Cleaned up the buttons on the "miscellaneous" page
* Changed settings in the "settings" dialog are now marked with an asterix
* All pages in the "settings" dialog have now been "cleaned up" (prettier, smaller buttons for editing stuff)
* Changed the editor and script editor icons to be more generic
* Changed the "format" (style) icon
* Moved the "Styler" menu entry in the "Tools" menu to below the "Scripter" entry
* Restored normal QT menu separators to the editor
* Changed the default package icon
* Changed the "export" icon
* Unified the "export package" icon (so Plugger and the main app use the same icon)
* Bugfix: exporting plugins, on linux, creating a mangled, non-functional archive; it works now
* Bugfix: the export plugin process now makes sure the output has a proper file extension
* Bugfix: the export log process now makes sure the output has the proper file extension
* Bugfix: plugin editor toolbar button icon for "insert template" now matches the menu icon
* Bugfix: creating a plugin from the --new commandline flag didn't include all event methods
* New event method: .mode(), for when the client receives a mode notification
* Added two new commandline options: --export-settings and --import-settings
* Changed the icon for the plugin editor (it's now a plug, which matches the name, heh)
* Added a new commandline option: --export-all (exports settings and logs to a zip file)
* Removed the "style editor" button from the "settings" dialog, and streamlined the font selection option
* Added a commandline flag to block the "install plugin" menu option
* Added an option to block the "install plugin" menu option to the config file
* Added the "block menu install" option to the "settings" dialog
* Changed the "export" icon to the traditional "floppy disk" icon
* Moved the "export logs" entry from the "Tools" menu to the "Settings" menu
* Modified the HTML generated for "fancy" menu entries to remove cell spacing in the tables for the "master" table
* Changed the appearance of the "title" of the "server settings" context menu to look a bit prettier
* Replaced the custom separators in the "server" menu with normal Qt5 separators
* Cleaned up the userlist context menu
* Added an "import" button to the "settings" dialog, for importing settings from a file
* Added a check for imported settings files, so non-config files won't be imported
* Changed the "save" button in the "settings" dialog to "apply" (which is more accurate)
* Added a "save" button to the settings dialog, for exporting settings to a file
* Bugfix: several commands were not in the "protected names" list
* Changed the user defaults to true: Reconnect on disconnection, save connection history
* Completely refactored the "connect" dialog; it's not as spaghetti as before, and cleaner
* Changed the default in the user config to execute connection script (it was previously turned off)
* Bugfix: clicking "connect" from the connection dialog will now display an error if there is no server entered, or if the port is not a number
* Added a "server" designation to the "script" tab in the connection dialog
* Added a link to the command documentation to the connect dialog
* Changed the "title" of the connection dialog to the application name and version
* Changed how "scripts" on the connection dialog work (turning off script execution now hides the script tab, and vice versa)
* Moved the "execute script" option from the options menu to a checkbox on the main window in the connection dialog
* Removed menu separator underneath the "Disconnect" menu option in the main menu
* The "Erk" banner on the connection dialog is now only seen when initially launched (it's removed once the program is running)
* Added an option to delete connection history to the connection dialog
* Added an option to delete the last connection to the connection dialog
* Added an option to restore the default user settings to the connection dialog
* Saving an empty connection script from the connection dialog will delete the connection script instead of saving a "blank" file
* Added a "save user settings" option to the connection dialog
* The background of all settings menubars in the connection dialog are now transparent
* Added an option to reload user settings to the connection dialog
* SSL/TLS-connection servers now have their own icon (for both visited and unvisited) in the server selection list
* Changed the "unvisited" icon from a hollow star to a filled star
* Added some SSL/TLS enabled servers to the built-in server list
* Bugfix: script editor now uses the command symbol ("/") set in the config file for generated code
* Added some script-code-generator stuff to the script editor in the connection dialog
* Added a "insert local alias" option to the code generator in the connection dialog
Version 0.831
* Macros have been removed from the client
* Bugfix: new nickname dialog would error out on saving the new nick to the userfile
* Added a new /macro command
* Reworked the /help command to generate the necessary display text on the fly, allowing macros to be to /help added after creation
* Macros are now added to the autocomplete list
* Added an option to autocomplete macros to the config file
* Added "autocomplete macros" option to the "settings" dialog
* Macro autocomplete is disabled if scripts are disabled
* Macros are disabled if scripts are disabled
* Macros will not appear in help if scripts are disabled
* Added macro information to the documentation
* Bugfix: the /preferences command was missing from the documentation
* Changed the icon for the "Extensions" tab in the "settings" dialog
* Added example macros to the documentation
* Added an option to save macros (so they persist across boots)
* Added "save macro" option to the "settings" dialog
* Added a new commandline flag: --macros, to set the macro save file name
* Added an option for macros to have a custom text line for the /help command
* Added a new command: /macrohelp, to set macro custom help text
* Added a new command: /unmacro, which deletes a macro
* Added more detail to the command documentation, explaining some "quirks" with the script engine
* Added /alias, /_alias, and /part shortcuts to the editor
* Added a new command: /clear
* Added a new command: /msgbox
* Added a shortcut insert for /msgbox to the script editor
* Cleaned up some of the language in the scripting documentation
* Bugfix: "Are you sure?" quit messagebox was missing a window icon
* Added a menu containing installed scripts (to make it easy to find/open/edit) to the script editor
* Added an explanation to the command documentation about how scripts should always have the ".erk" file extension
* Added an option to the script editor to save on file close
* Bugfix: oddly spelled commands (and other words, like "Erk" and "Ərk") are no longer flagged as misspelled
* Bugfix: opening up a file with the /edit command no longer flags it as "changed" when opene w/o editing
* Added an option to add multiline comments to the editor
* Added a link to the script editor to the "Settings" menu
* Bugfix: /mode was omitted from the scripting/command documentation; it has been added
* Added a new command: /macrousage, which sets the usage text for a macro
* Aliases are now interpolated into input text *before* looking for macros, so macros can use aliases
* Macro names can no longer be used to "overload" an existing command name
* Bugfix: the script syntax highlighter now uses the "command trigger symbol" (which is / by default) for commands
* Made a change to macro interpolation (all arguments are now $+, all arguments less the first one is now $-)
* Added a "macro" shortcut to the script editor
* Added an option to notify script execution end to the script editor
* Bugfix: error notification messageboxes in the script editor now have the script editor dialog as parent
* Added additional support for changing the "command symbol" (/) in the config file; help will now display properly, as will syntax highlighting
* Changed the "uptime" icon in the connection display to a clock (rather than a stopwatch)
* Added a new setting to the config file: a default quit/part message that will be used if one is not provided
* Added a custom bitly.com shortened URL for the official repo to the source code (it's used in the default quit/part message)
* Added the ability to customize the default quit/part message to the "settings" dialog
* Bugfix: all IRC quits now use the default quit/part message
* Bugfix: removed colon from default quit message
* Added RFC 1459 and RFC 2812 to the distribution
* Changed links to RFC 1459 and 2812 in the "Help" menu to local links to the included PDFs
* Bugfix: there was an error in the /argcount "wrong args" error text (heh)
* Bugfix: alias variables were still being interpolated into input even if scripts were turned off
* New command: /unalias (deletes global alias variables)
* Made a clarification about available commands for connection scripts in the "connect" dialog
* Bugfix: /unalias is now marked as "misspelled" by the spell checker (as it's not available for use outside of scripts)
* Added a setting to the configuration file to turn macros on and off
* Added the enable/disable macros settings to the "settings" dialog
* Bugfix: added "unalias" to the list of forbidden names for macros
* Macros will have autocomplete turned off (if it's enabled) if macros are disabled
* Cleaned up the "insert macro" dialog in the script editor
* Autocomplete will now not insert a space after macros that require no arguments
* Leading and trailing whitespace is now stripped from text input, explicitly
* Added a new built-in method for plugins: .channels(), which returns a list of channels the client is in
* Added the .channels() method to the documentation
* Added channel autocomplete
* Added a setting to the config file to toggle channel autocomplete
* Added the autocomplete channels option to the "settings" dialog
* Re-arranged the plugin documentation to make more sense (alphabetized the method list, etc)
* Added directory() and channels() methods to the plugin editor
* Added the above methods to the syntax highlighter & context menu code generator
* Bugfix: removed a menu separator that wasn't supposed to be there from the editor context menu
* Added a check to see if macro names contain the command trigger symbol or the interpolation symbol, and stop creation if it finds one
* Removed the "/clear" command, as it didn't work very well :-)
* Added a new plugin method: .users() (lists users in a channel)
* Added the .users() method to the editor and code generator
* Bugfix: editor's code generator dialogs did not have the editor as the parent window
* Added a new plugin method: .send() (sends raw messages to the server)
* Added the .send() method to the editor and code generator
* Bugfix: /script command will now correctly autocomplete
* Added a new plugin method: .script(), which works just like the /script command
* Added .script() to the editor, code generator, and to the plugin documentation
* In the script editor, the Ctrl+S hotkey will either work for save as (if the script isn't saved/doesn't have a file name) or save (if loaded/has a filename)
* Plugin editor's save/save as behavior works as ^^ above
* Bugfix: creating a new package in the editor didn't apply the ^^ above shortcut swaps
* Added two new commands: /dictionary and /undictionary (for adding/removing words to/from the spellcheck dictionary)
* Added new commands to the syntax highlighter
* Updated the new command documentation with /dictionary and /undictionary details
* Re-formatted the Plugin and Scripting guides to look alike
* Added a new command: /write (works like /print but saves the message to the log)
Version 0.830
* Menu text separaters now darken for light GUI backgrounds, and vice versa.
* Menu separators now darken and lighten as above
* Chat separators now darken or lighten depending on the text display's background color
* Minor bugfix: luminosity of text background is now determined only the first time text is rendered, not every time
* The "Ok" button on the connection dialog is now labeled "Connect"
* Editor now uses a white background and black text by default, regardless of host OS theme
* Main logo display now darkens or lightens depending on the host OS color theme
* Added an option to ask the user whether to quit or not
* Added a setting to the config file for the above
* Added "ask on quit" setting to the preferences dialog
* Cleaned up the preferences dialog
* Bugfix: IRC color options in input context menu would not appear if spellcheck is turned off
* Support for setting foreground/background colors from the input context menu
* Bugfix: fixed an IRC color rendering bug
* Bugfix: users can now select input text (for coloring) without the client autoselecting only the word the cursor is over
* Bugfix: no spelling correction is attempted if the user has selected text in the input box
* Menubar is now moveable, and can be docked at either the top or bottom of the app
* Added a setting to turn "moveable menubar" on and off
* Added two new plugin events: "received" and "sent" (triggered when receiving server data or sending server data)
* Updated the documentation with the new events
* Added an option to stylize the syntax highlighting in the editor
* Added new entries to 'text.css' with the new editor color settings
* Added new menu separators to the editor
* Changed the editor's name to Əditor
* Reworked the "plugin" menu; now, only the "install" and installed plugins are displayed if not in development mode
* Updated the plugin documentation to reflect new editor/client changes
* Syntax highlight coloring can now be edited in the editor
* Reworked the editor's "settings" menu
* Bugfix: fixed some coloring errors in the highlight colors dialog
* Added the ability to edit the background color of the current line in the color dialog
* Added help text to the color dialog
* Rewrote the text format setting dialog to be faster, less spaghetti-like, and make more sense
* Added some new features to the format setting dialog
* Bugfix: added a MOTD style type (which has been in the style file for a long time, unused)
* Bugfix: MOTD now used the "motd" style
* Cleaned up the new text format dialog, and fixed a bug where the "username" setting used the "system" style
* Added tabs to the text format dialog, and cleaned up some stuff
* WHOIS messages now use the "system" style
* Added a new style for plugin-generated messages named "plugin"
* Added the new style to the text formatting dialog
* Incomplete style files will now be patched with default style settings
* Changed the header attached to every generated style file with a small ASCII logo and the URL for the client repository
* Cleaned up the "connect" dialog to make it look a little better
* The "motd" style is now named "server", and is used for WHOIS messages as well as MOTD messages
* Changed the default color for the "server" style to a light(er) blue
* Updated the bundled "pyspellchecker" library from 0.4.0 to 0.5.5
* Fixed a bug where the "disconnect" menu entry would be disabled of only connected to one server
* Bugfix: user settings files weren't being patched correctly
* New feature: server scripts. Scripts can be written for each server that can be automatically executed on connection to a server
* Connection dialog was cleaned up and re-worked
* Connection dialog's "user" tab and "server" tabs are now combined into one tab
* Added a new tab to the connection dialog: "Options", which combines the old "Channels" tab and the new scripting feature
* Moved the "autojoin" stuff to the "server" tab in the connection dialog, gave an entire tab to the scripting feature
* Renamed the tabs "Connect", "Servers", and "Script" in the connection dialog
* Server scripts now run on their own thread
* Added a new scripting command for server script: "/wait" (or "/sleep")
* Added new editing buttons to the scripting tab, allowing for file management and shortcuts for various commands
* Added some help text to the connection dialog
* The "/script" command now runs scripts in a separate thread
* The "/wait" ("/sleep") command now works with the "/script" command
* Added comments (between /* and */) to all scripts
* Added some basic help to the script tab on the connect dialog
* Added a new button to add comments to the script tab
* Erk will look for called scripts first in the script directory, then the settings directory, then in the installation directory
* When executing a script with "/script", if /wait is called with a non-number, and error is displayed to the user
* Added a new script command: "/print" (or "/echo"): displays a message to the current window
* Added /print command to the connection dialog script tools
* Added a new user setting: "save_script", which saves the script from the connect dialog
* Connection dialog can now toggle the "save_script" setting, and save scripts without hitting the "save" button
* Changed the name of of the user setting "script" to "auto_script" to better reflect the setting use
* Changed the location of the two checkboxes on the "script" tab to be together, horizontally, on the bottom
* Added commandline flag "-T","--noscripts" to disable scripts. Scripts can't be executed, and the script tab will not appear in the connection dialog
* Added a setting to disable scripting to the config file
* Added the new "disable scripting" setting to the "preferences" dialog
* Fixed a bug in the preferences dialog (features disabled on the commandline can't be changed in the dialog)
* New commandline flag to set a custom directory for all scripts
* Changed the default port for the /ssl command to 6697
* Added a banner to the connection dialog, and cleaned up the widget layout
* Bugfix: the /wait command can't be called from the chat input widget, only from scripts
* Added documentation for the Erk client commands (for input and scripting)
* Added a link to the PDF command documentation to the "Help" menu
* Added a new entry to the main menu: "Run script" (loads and runs a script on the current server connection)
* Made the small checkboxes on the connection dialog slightly bigger
* Bugfix: blank script will now save if the user uses the "clear" button in the connection dialog (and the save script option is selected)
* Moved the "run script" menu entry to a button on every consol window, on the right side of the input widget
* Removed the "run script" menu option
* Disabling scripting on the commandline or via the "preferences" dialog disables the "run script" button on console windows
* "Run script" button on console windows is now invisible if scripting is disabled
* Bugfix: "You are now know as <new nick>" no longer appears twice if you change nicks on a console window
* Added "Join Channel" and "Change Nick" buttons to the console window, right next to the "Run Script" button
* Added a "Disconnect" button to the console window
* Removed "Join Channel" and "Change Nick" buttons from console windows, as there are multiple other ways to do both of these
* Bugfix: connection display no longer displays the "selected" box that flickers in and out of existence whenever a server or channel is clicked
* Nickname display in channels can now be double-clicked to bring up the "change nickname" dialog
* Added an option to the "settings" dialog to toggle "double click nickname" on and off
* Added a new setting to hide/display the 'Run Script' and 'Disconnect' buttons on console windows
* Added the new hide/display buttons setting to the 'settings' dialog
* Re-named the 'Plugins & Macros' settings page to 'Extensions' in the 'settings' dialog
* Moved 'enable scripts' to the new 'Extensions' page
* Updated the plugin documentation to show the new location of the 'Development mode' option
* Disabling plugins from the commandline now disables the 'show plugin errors' and 'development mode' settings in the settings dialog
* Added a commandline option to hide the connection display
* Removed the "(disabled)" tag from settings in the settings dialog for stuff that's been disabled from the commandline
* Cleaned up the "Connections" page in the settings dialog
* Removed the "always on top" configuration file setting
* Removed the "always on top" menu option
* Added a commandline flag to launch in "always on top" mode
* Changed the "full screen" menu option to say "Enter full screen" to enter, and "Exit full screen" to enter/exit full screen mode
* New script command: /alias
* Documentation has been updated with the new /alias command
* Scripts can now be passed arguments
* New script command: /argcount
* Documentation has been updated with the new /argcount command
* Added the plugin documentation to the 'help' menu
* Bugfix: macro type explanation (in the macro dialog) wasn't displaying properly
* Cleaned up the macro dialog
* Added an "open script" option to the connection dialog
* Cleaned up the connection dialog
* Changed command documentation filename to "Erk_Scripting_and_Commands", and updated the GUI to match
* Added an option to interpolate all arguments to a script with the $0 symbol
* Added the interpolation symbol to the config file
* Added a new commandline flag to disable the custom menu toolbar and use the normal QMenuBar instead
* OSX users are no longer forced to use the QMenuBar (they can now choose to with the above commandline flag)
* Added a new config setting which allows global script aliases to be toggled
* Added global script alias setting to the "settings" dialog
* Grouped macro, plugin, and script settings in the "settings" dialog together
* Cleaned up "settings" dialog, and moved various settings to different tabs
* Added a new setting to the configuration file: toggle using standard Qt5 menu or using the menu bar
* Added QMenuBar toggle to the "settings" dialog
* Removed "autocomplete" tab in the "settings" dialog, and merged those settings into the "text input" tab
* Cleaned up "application" tab in the "settings" dialog
* Cleaned up the "misc" tab in the "settings" dialog
* Cleaned up the "messages" tab in the "settings" dialog
* Added a new tab to the "settings" dialog, "menu bar", and put the appropriate settings there
* Cleaned up the "connection display" tab in the "settings" dialog
* The "tab" selector on the "settings" dialog is now transparent
* Moved the language selection widget to the top of the "spellcheck" tab in the "settings" dialog
* Added a new plugin built-in method: directory() (returns the directory the plugin is in)
* Added the directory() method to the documentation
* Added the ability to load style files into individual window
* Added a new command: "/style" (loads style files into the current window)
* Changed the name of the text format editor in "settings" to "Style Editor"
* Added "save as..." option to the style editor
* Added the "/style" command to the documentation
* Added a new commandline flag: "-a,--autoscript" (loads saved server script if the script exists)
* Added a new commandline flag: "-s,--script" (loads a custom script and runs it on connection)
* If --autoscript and --script are used together, the custom script is concatenated to the server script
* Removed single letter commandline flags for flags that disable functionality
* Changed the -R,--scripts commandline option to -S,--scripts
* The --script commandline flag can now be used multiple times to load multiple scripts
* Moved emoji settings to their own tab in the "settings" dialog
* Added a "style editor" menu entry to the "settings" menu
* Added a context menu option for all windows to "load style"
* Added the ability to load style files into the style editor
* Relabled and moved the buttons on the style editor to make more sense and be more informative
* Set the default file extension for scripts to ".erk"
* Set the default file extension for style files to ".style"
* Changed the default style file name to "text.style" (from "text.css")
* When looking for script files, the ".erk" file extension will be appended while looking for files
* When looking for style files, the ".style" file extension will be appended while looking for files
* Style files are now stored/loaded from a specific location (by default, a directory in the "settings" directory named "styles")
* Added a new commandline flag (--styles) to allow users to set a specific directory for style files
* Changed the "-F,--format" commandline flag to "-Y,--style" to match the new text style naming convention
* Updated the README with the new changes
* Added a commandline flag to disable style loading
* Added a menu bar to the "text style" dialog
* Chat windows now "remember" custom styles (they save when loaded, and are automatically loaded and applied)
* Remembered styles are not applied if the --nostyles flag is used
* An option to "restore" (set to default) styles has been added to the connection display context menu
* Clicking the "apply" button in the style editor only applies the style to non-custom-style chats
* A window's specific styling can now be edited and saved
* Added an "edit style" entry to the connection display's context menu
* Added load, edit, and revert options to the chat display's context menus
* Bugfix: server console styles could be loaded before it could be properly saved
* Bugfix: new style items in the chat display's context menu are no longer shown if styles are disabled
* Bugfix: context menus now use the same colors for all sub-menus
* Added Foreground\Background labels to the IRC color menus
* The "disconnect" menu option is now hidden when disconnected
* Moved the "disconnect" menu option to be directly under the "Connect" menu option
* Added a new command: /connectscript (which executes a connection script for a specific server)
* The /switch command will now let the user know if there are no available chats
* Bugfix: the /part commands now uses the Twisted client to part, rather than some GUI nonsense
* Added a link to the command documentation to the connection dialog's "script" tab
* Added syntax highlighting to the "script" tab's editor
* Added placeholder text to the "script" tab's editor
* Cleaned up and added some more explanitory text to the "connect" dialog
* Moved script syntax highlighting code to its own module
* Bugfix: saving a script from the connection dialog now auto-updates the script cache
* Added a script editor to the client
* Added an entry to run the script editor to the main menu
* Added editor documentation to the scripting documentation
* Converted separators in the main menu back to the stock QMenu widget
* Added new error displays to the script engine
* Added the ability for the script editor to display errors
* Added a new color for the script syntax highlighter: aliases
* Added a new command: /edit, which can be used to edit scripts
* Removed the menu option to launch the script editor (only way to open the editor now is with the /edit command)
* Bugfix: applying the "all" style to menus prevented them from displaying properly; "all" is no longer applied
* Added a commandline flag to block the script editor
* Added a new option to the config file: enable_script_editor
* Added new script editor setting to the "settings" dialog
* Added script syntax color settings to the config file
* Modified the "connection" dialog to load the config file and use the syntax settings
* Added new features to the script editor (autoscript loading, insert commands, some small bugs fixed)
* Updated the documentation with the new script editor features
* Added a new command: /_alias (allows scripts to create alias variables that will not be exported globally to all scripts/commands)
* Added new command to the command documentation, and add more info on how scripts work
* Added the new command to the syntax highlighter
* If /alias is called with the interpolation symbol ($) in the first argument, it is stripped
* Added support for multi-character interpolation symbols (if users want to do that...not sure why, but why not?)
* Syntax highlighting for multi-character interpolation symbols is supported
* Bugfix: when opening the script editor, the text entry widget is automatically in focus
* Added a commandline flag to disable scripts, macros, and plugins all at once
Version 0.822
* First version with Linux support
* Fixed a bug where the connection display wouldn't update properly when the dock width changes
* Changed the default font to DejaVu Sans Mono
* Connection display width is now saved automatically when it is changed (rather than on exit)
* Added a platform notification to the about dialog
* Moved the GNU license link to the top (after the app name) in the about dialog
* "Open X directory" now uses QDesktopServices to open directories in a file manager in a cross platform way
* Fixed a bug with running plugins cross-platform
* Changed "Server options" menu entry to "Server settings"
* Added an option to show dates in channel chat
* Changed the option to mark resume chat to false by default
* Added a "radio button" style graphic to menus
* Fixed a bug where the "show timestamp seconds" menu entry was displaying wrong status
* Removed the "nomenu", "nosettings", and "noconnect" commandline options
* Changed the "-A"|"--noask" commandline option to "-N"|"--noask"
* The toolbar has been disabled on the OSX platform, and uses a normal QMenuBar on any platform besides Windows and Linux
* Added an error notification for IRC server connections that fail to be established
* Added an error notification for lost IRC server connections (only when the option to reconnect is disabled)
* Added a new built-in method to the Plugin object: userinput
* Added documentation for the userinput() method to the documentation
* Added a new option to the connect dialog: reconnect on failed connection (only active if "reconnect" option is turned on)
* User file is now patched with new option ("failreconnect") if the option is missing
* Rearranged the options on the connection dialog (now in two columns of two options each)
* Bugfix: single channel IDs (&,#, etc) with no other text would have links created for them in channel chat
* Added two new settings: one to toggle showing dialogs for connection lost, and one to toggle showing dialogs for connection failed
* New settings are patched into existing settings files
* Added connection/lost dialog toggle options to the "Settings" menu
* New "splash" logo graphics
* Bugfix: -l commandline flag now works properly
* New plugin method: msgbox()
* Streamlined toolbar/menubar generation; all done in one function now, no duplicate code
* Tweak to the new splash logo
* Network error dialogs are no longer modal
* New addition to text input context menu: IRC colors
* Tweaked the hex color codes used by the IRC color renderer to be closer to other IRC clients
* Restored nosettings, nomenus, and noconnect commandline options
* Bugfix: application window name is now reset properly if there are no active connections
* The backspace in the editor now follows the settings for indentation
* Updated the editor syntax highlighting to recognize the new built-in methods
* Bugfix: failed/lost connection notification dialog should close/hide on reconnection
* Added a toolbar with common functions to the editor
* Altered the "open plugin directory" function in the editor to open the plugin directory of the plugin currently being worked on, if known
* Added msgbox() and userinput() to the editor's context menu code generator
* Added menu (and toolbar) entries to read plugin documentation to the editor
* Bugfix: failed/lost connection dialogs are now properly closed when reconnection occurs
* The editor's "open plugin directory" option will open the directory of the plugin being edited, or the regular directory if no file is saved
* Added a list of banned users to the connection display right click context menu for channels
* Added /time command
* Cleaned up WHOIS response display
* Added /whowas command
* Added /whois command to autocomplete list and help
* Bugfix: /whois now can take multiple nicknames
* Added /version command
* Added /who command
* Moved indention settings to the their own menu in the editor
* Shuffled around menu locations in the editor to conform closer to other apps
* Tweaked the editor toolbar and added some new functionality
* Moved documentation button on the editor toolbar to the far right
* Bugfix: text input widget is given focus when the app window becomes active
* Bugfix: save file keyboard shortcut now works properly in the editor
* Added a dialog to the "install plugin" menu option (the dialog lists what plugins are going to be installed, and can be canceled)
* Re-arranged the pluugin menu to put "install" and "options" at the top, and the plugin list at the bottom
* Bugfix: lost/fail connection dialog would flash on exit/disconnect
* Added a little label to the connection dialog that notifies whether a server has been connected to before
* Added IRC network website URLs to the connection dialog
* Made the connection dialog a bit "prettier"
* Bugfix: font file set in the config file is now loaded/used for the initial launch connection dialog
* Added a setting to toggle channel userlists on/off
* Moved the "get hostmasks" option to the "Miscellaneous" settings menu
* Major overhaul of the settings menu, with a new "Preferences" dialog
* Bugfix: a number is added to the end of the user nick if both the normal and alternate nicks are taken; different numbers are appended until one is not in use
* Changed the in-app name of the program to "erk", due to not all fonts being able to display the schwa by default
* Added a new event method for plugins: ctcp() (triggered when the client receives an unknown CTCP message)
* Better cursor management (main chat only scrolls to the bottom if the user enters text or it is already at the bottom)
* Cursor no longer scrolls to the bottom when a link is clicked
* Server windows now have the server's hostname (or IP/port) as a title, instead of "Server"
* Server windows pre-registration now feature the IP/port as a title, instead of "Server"
* Bugfix: channel topic entry widget now resets to the current channel topic when it loses focus
* Changed the editor icon
* Bugfix: the log() plugin method was not saving printed messages to the log (it has been fixed, and is working properly now)
* Added a new plugin method: sysmsg() (writes a system message to the current window)
* Moved the "plugin development mode" setting to the "Preferences" dialog
* Re-arranged the plugin menu
* Renamed "Reload plugins" menu entry to "Load new plugins" (which is more accurate)
* Bugfix: channel links now appear in WHOIS responses when the user has op or voice in a channel
* Bugfix: text input widget is given (back) focus after entering a command
* Server connections made via command (/connect, /reconnect, /ssl, and /ressl) are now saved to the history and "last connected server"