This is a TODO list for KMuddy.

#6  0x00007f7f498bf763 in std::_Rb_tree_increment(std::_Rb_tree_node_base const*) () at /usr/lib64/libstdc++.so.6
#7  0x00007f7f4e5a90ec in std::_Rb_tree_iterator<std::pair<QString const, QString> >::operator++() (this=this@entry=0x7ffee1881fb0) at /usr/include/c++/5/bits/stl_tree.h:205
#8  0x00007f7f4e5f2a5f in cListObject::save(QXmlStreamWriter*) (this=0x1551760, writer=0x321d710) at /home/tomas/projects/kmuddy/libs/clistobject.cpp:358
#9  0x00007f7f4e5f9ea7 in cListGroup::save(QXmlStreamWriter*) (this=0x1270090, writer=0x321d710) at /home/tomas/projects/kmuddy/libs/clistgroup.cpp:265
#10 0x00007f7f4e5f9ea7 in cListGroup::save(QXmlStreamWriter*) (this=0x105b5b0, writer=0x321d710) at /home/tomas/projects/kmuddy/libs/clistgroup.cpp:265
#11 0x00007f7f4e5f49ac in cList::save(QXmlStreamWriter*) (this=this@entry=0x1120900, writer=writer@entry=0x321d710) at /home/tomas/projects/kmuddy/libs/clist.cpp:496
#12 0x00007f7f4e5fc585 in cListManager::saveList(int, cList*) (this=this@entry=0xbdf960, sessId=sessId@entry=2, list=0x1120900) at /home/tomas/projects/kmuddy/libs/clistmanager.cpp:279
#13 0x00007f7f4e5fca04 in cListManager::saveAll(int) (this=0xbdf960, sessId=2) at /home/tomas/projects/kmuddy/libs/clistmanager.cpp:289
#14 0x00007f7f4e5c87c2 in cActionManager::invokeEvent(QString, int) (this=0x9ac920, event=..., session=session@entry=2) at /home/tomas/projects/kmuddy/libs/cactionmanager.cpp:402
#15 0x00007f7f4e5cd372 in cActionBase::invokeEvent(QString, int) (this=this@entry=0xfdc0c0, event=..., session=session@entry=2) at /home/tomas/projects/kmuddy/libs/cactionbase.cpp:166
#16 0x00000000004300fe in cConnection::saveSession() (this=0xfdc0b0) at /home/tomas/projects/kmuddy/kmuddy/cconnection.cpp:830
#17 0x00007f7f4ae72f90 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () at /usr/lib64/libQtCore.so.4
#18 0x00007f7f4ae789a3 in QObject::event(QEvent*) () at /usr/lib64/libQtCore.so.4
#19 0x00007f7f49d6ff1c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQtGui.so.4
#20 0x00007f7f49d769ec in QApplication::notify(QObject*, QEvent*) () at /usr/lib64/libQtGui.so.4
#21 0x00007f7f4bb6165a in KApplication::notify(QObject*, QEvent*) () at /usr/lib64/libkdeui.so.5
#22 0x00007f7f4ae5fa4d in QCoreApplication::notifyInternal(QObject*, QEvent*) () at

#7  0x00007fdcdd4c4f23 in CMapManager::setEditElement(CMapElement*) (this=0x3352930, element=0x39937a0) at /home/tomas/projects/kmuddy/plugins/mapper/cmapmanager.cpp:1370
#8  0x00007fdcdce4245a in CMapToolText::mouseReleaseEvent(QPoint, QMouseEvent*, CMapLevel*) (this=0x432c390, mousePos=..., e=<optimized out>, currentLevel=0x432c8b0) at /home/tomas/projects/kmuddy/plugins/mapper/plugins/standard/tools/cmaptooltext.cpp:61
#9  0x00007fdcf11baf00 in QWidget::event(QEvent*) () at /usr/lib64/libQtGui.so.4
#10 0x00007fdcdd4ab3cb in CMapWidget::event(QEvent*) (this=0x2d87470, e=0x7ffc189394d0) at /home/tomas/projects/kmuddy/plugins/mapper/cmapwidget.cpp:121
#11 0x00007fdcf1167f1c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQtGui.so.4
#12 0x00007fdcf116eb53 in QApplication::notify(QObject*, QEvent*) () at /usr/lib64/libQtGui.so.4
#13 0x00007fdcf2f5965a in KApplication::notify(QObject*, QEvent*) () at /usr/lib64/libkdeui.so.5
#14 0x00007fdcf2257a4d in QCoreApplication::notifyInternal(QObject*, QEvent*) () at /usr/lib64/libQtCore.so.4
#15 0x00007fdcf116e1ed in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () at /usr/lib64/libQtGui.so.4
#16 0x00007fdcf11e4942 in  () at /usr/lib64/libQtGui.so.4


Application: KMuddy (kmuddy), signal: Segmentation fault

[KCrash Handler]
#4  0x00007f497b8882fc in QObject::disconnect(QObject const*, char const*, QObject const*, char const*) () at /usr/lib64/libQt5Core.so.5
#5  0x00007f497df4de52 in cListEditor::setObject(cListObject*) (this=0x2470b40, obj=0x0) at /home/tomas/projects/kmuddy/libs/clisteditor.cpp:96
#6  0x00000000004a2cb4 in dlgObjects::activeObjectChanged(cListObject*) (this=0x2155380, obj=0x6fc830) at /home/tomas/projects/kmuddy/kmuddy/dialogs/dlgobjects.cpp:227
#7  0x00000000004a415c in dlgObjects::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x2155380, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x7ffe4008f7a0) at /home/tomas/projects/kmuddy-build/kmuddy/dialogs/dialogs_autogen/EWIEGA46WW/moc_dlgobjects.cpp:84
#8  0x00007f497b890130 in  () at /usr/lib64/libQt5Core.so.5
#9  0x00007f497deb59f1 in cListViewer::itemActivated(cListObject*) (this=0x1c51550, _t1=0x6fc830) at /home/tomas/projects/kmuddy-build/libs/kmuddycore_autogen/EWIEGA46WW/moc_clistviewer.cpp:176
#10 0x00007f497df4cdea in cListViewer::currentChanged(QModelIndex const&, QModelIndex const&) (this=0x1c51550, current=...) at /home/tomas/projects/kmuddy/libs/clistviewer.cpp:138
#11 0x00007f497c60b907 in QAbstractItemView::setSelectionModel(QItemSelectionModel*) () at /usr/lib64/libQt5Widgets.so.5
#12 0x00007f497c680207 in QTreeView::setSelectionModel(QItemSelectionModel*) () at /usr/lib64/libQt5Widgets.so.5
#13 0x00007f497c606186 in QAbstractItemView::setModel(QAbstractItemModel*) () at /usr/lib64/libQt5Widgets.so.5
#14 0x00007f497c67ff51 in QTreeView::setModel(QAbstractItemModel*) () at /usr/lib64/libQt5Widgets.so.5
#15 0x00007f497df4ccf4 in cListViewer::setList(cList*) (this=0x1c51550, l=0x12f79a0) at /home/tomas/projects/kmuddy/libs/clistviewer.cpp:119
#16 0x00000000004a2b2a in dlgObjects::switchList() (this=0x2155380) at /home/tomas/projects/kmuddy/kmuddy/dialogs/dlgobjects.cpp:205
#17 0x00000000004a28b0 in dlgObjects::eventNothingHandler(QString, int) (this=0x2155380, event=..., session=3) at /home/tomas/projects/kmuddy/kmuddy/dialogs/dlgobjects.cpp:163
#18 0x00007f497deefb19 in cActionManager::invokeEvent(QString, int) (this=0x8381f0, event=..., session=3) at /home/tomas/projects/kmuddy/libs/cactionmanager.cpp:402
#19 0x0000000000453985 in cTelnet::socketConnected() (this=0x13ea710) at /home/tomas/projects/kmuddy/kmuddy/ctelnet.cpp:316
#20 0x000000000043795f in cTelnet::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x13ea710, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x7ffe4008fc40) at /home/tomas/projects/kmuddy-build/kmuddy/kmuddy_autogen/EWIEGA46WW/moc_ctelnet.cpp:86
#21 0x00007f497b890130 in  () at /usr/lib64/libQt5Core.so.5
#22 0x00007f497cec0e52 in  () at /usr/lib64/libQt5Network.so.5
#23 0x00007f497b890130 in  () at /usr/lib64/libQt5Core.so.5
#24 0x00007f497ce9b8b8 in  () at /usr/lib64/libQt5Network.so.5
#25 0x00007f497cead0b8 in  () at /usr/lib64/libQt5Network.so.5
#26 0x00007f497c3b30cf in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5
#27 0x00007f497b859c1a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt5Core.so.5
#28 0x00007f497b8b1c15 in  () at /usr/lib64/libQt5Core.so.5
#29 0x00007f49794a02b7 in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0
#30 0x00007f49794a0638 in  () at /usr/lib64/libglib-2.0.so.0
#31 0x00007f49794a06ef in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#32 0x00007f497b8b105f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#33 0x00007f497b8585db in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#34 0x00007f497b860840 in QCoreApplication::exec() () at /usr/lib64/libQt5Core.so.5
#35 0x00000000004613bf in main(int, char**) (argc=1, argv=0x7ffe400905a8) at /home/tomas/projects/kmuddy/kmuddy/main.cpp:112
[Inferior 1 (process 9817) detached]


TODO-list:
----------

add zlib checks to cmakefile

Keyboard shortcuts not loaded properly?

Fix bell to go through knotify. Make other things (global notify etc) go through knotify as well.

'Duplicate' object functionality

Problem with prompt detection triggers: I have a script to append some stuff after my prompt and if I want it to be printed I have to add a \n to my script and I think the space at the beginning of the following line is the go ahead signal since I already added a new line to print my script output and the prompt. 
 
The Enabled/Disabled function for macro keys doesn't appear to work. Whether the function is enabled or disabled, the client captures the key and sends in the command. 

/notify can't handle UTF8.

Saving shortcuts supposedly doesn't work, check it out.

Document advanced transcript !!!

MSP: when more matches for a file exist and more repeats are requested,
file should be randomly chosen for each iteration. Currently, it's chosen
only once.

MSP: directory creation does not work !!!

variables should not get expanded in the password for auto-login (hmpf)


Wish-list:
----------
Notation:
* = bigger feature
- = smaller feature
? = not sure if I'll do this
----------
* speed-walking improvements: slow-walking, detecting invalid moves, ... (12.8.2003 by Alex Bache)
  / probably a part of mapper?
- notification improvements (don't notify gags, MUD-specific settings, notify-all-but) (29.8.2003 by Orion Elder)
? support for HTTP proxy (2.9.2003 by Omykron)
  / this looks more like something that KDE itself should support...
- profile-specific settings for action toolbar (position, size, ...) (9.9.2003 by Nuno Sousa)
- file quoting (8.12.2003 by Egarwaen)
- color triggers should support bold/italics/... (17.1.2004 by Egarwaen)
* multiple connections off the same profile should share data (23.1.2004 by Egarwaen)
  / big change - for or after 1.0
- allow disabling MCCP in a profile (23.1.2004 by Saurag)
- allow using F1 in macros (11.2.2004 by Ardanwen)
  / non-trivial, KDE enforces F1 to be help ...
- groupped radio buttons in actions bar (18.2.2004 by Hena)
- allow setting a variable to script's return value (27.3.2004 by Meteor)
- support the EOR option to recognize prompts (17.4.2004 by Sebastian Andersson)
- prompt coloring in the next-to-input label or in statusbar (4.5.2004 by Evuldarke)
- small textbox above input line for displaying of some quick information,
  controllable by scripts (22.6.2004 by Alex Bache)
- have Duplicate button in aliases/triggers/... (11.9.2004 by Alex Bache)
- command-line option (say, --load-profile) to make a connection on startup (14.10.2004 by crache)
? remember last command(s) in some variable (17.10.2004 by kormoc)
  / which commands? incl. ones from triggers/scripts? aliases expanded?
- variable that if set, redirects output to another window (4.11.2004 by Alex Bache)
- prompt bar's font and color should be changeable (5.11.2004 by Gopher)
  / see also a similar wish higher (from 4.5.2004)
- profile option to default to multi-line input (17.11.2004 by Darkk)
- history for multi-line input (no auto-completion) (3.12.2004 by Balinares)
- allow gagging of *some* sent commands (possibly commands prefixed with @ or something) (3.12.2004 by Dan)  
- expand ANSI color codes in script output (7.12.2004 by lontau)
* implement the "remember line" feature (see his mail about it) (13.12.2004 by Warren Brian Noronha)
* implement the MCP protocol and local editing via dns-mud-moo-org-simpleedit package (19.12.2004 by Zephiris)
  / spec is at http://www.belfry.com/fuzzball/trebuchet/mcp.html
  / also have a look at http://www.moo.mud.org/mcp/index.html
* possibility for output windows to input text, with some prefix - for channels and such (28.12.2004 by ixonkai)
- make it so that giving a command separator twice will lead to it being sent to the MUD (only once) (7.1.2005 by giraffel)
  / zMUD does this with its double semicolons
- option to not update idle timer upon sending trigger/script output (15.1.2005 by Trekie)
- have /echo in various colors (20.3.2005 by pkollmorgen)
- aliases that can call other aliases (20.3.2005 by pkollmorgen)
  / doable with a /command macro, that will treat the text as a new command
    to execute (it will have to deal with infinite recursion too)
- ability to exec triggers on text from scripts (20.3.2005 by pkollmorgen)
  / will be doable with some /text macro
- selecting with mouse should scroll the view (20.3.2005 by pkollmorgen)
- option to disable TAB-completion - problems with second input-line (5.4.2005 by Omykron)
- ability to do something when idle timer reaches certain value (23.5.2005 by Olli)
- Shortest-match auto-completion should show greyed text at first, arrow or something should insert the completed text (25.9.2005 by Kaioth)
- triggers that only match if the text has a certain color (5.10.2005 by Magnus)
- convenience: change background color of active tab (3.12.2005 by Ken Rosser)
- accessing output windows using internal scripting (possibly using a parameter in /echo?) (5.12.2005 by dwold)
- somehow be able to send a command without the trailing \n (telnet mode?) (4.2.2006 by nahpets)
- list of running timers, with remaining time (8.2.2006 by trekie)
- triggers that only match off a prompt (24.2.2006 by Alex Bache)
- tab-completion only off a pre-defined list (8.3.2006 by Roady)
- enabling/disabling output windows with some command (1.9.2006 by Edward)
- change the "Do not allow more than 100 commands" to specify how many (16.3.2007 by Chaosone)
- add a silent popup list choice to the command history - popup that only appears upon pressing something (16.3.2007 by Chaosone)
- add "Paste as trigger" somewhere (16.3.2007 by Chaosone)
- timers with float value timeouts
- ability to add comments to objects
- 256color support (1025)


