Qt support for changing 'statuslines' dynamically
Turns out it was nearly as simple as I originally thought. I just missed one significant detail the first time around. This leaves DYNAMIC_STATUSLINES as conditionl but now enables it by default. Using 'O' to change 'statuslines' from 2 to 3 or vice versa now works for Qt as well as for curses and tty.
This commit is contained in:
+3
-2
@@ -834,10 +834,11 @@ void NetHackQtBind::qt_outrip(winid wid, int how, time_t when)
|
||||
|
||||
void NetHackQtBind::qt_preference_update(const char *optname)
|
||||
{
|
||||
#ifdef DYNAMIC_STATUSLINES // leave disabled; redoStatus() doesn't work
|
||||
#ifdef DYNAMIC_STATUSLINES // defined in qt_main.h
|
||||
if (!strcmp(optname, "statuslines")) {
|
||||
// delete and recreate status window
|
||||
main->redoStatus();
|
||||
// to toggle statuslines from 2 to 3 or vice versa
|
||||
id_to_window[WIN_STATUS] = main->redoStatus();
|
||||
}
|
||||
#else
|
||||
nhUse(optname);
|
||||
|
||||
+5
-3
@@ -1180,14 +1180,14 @@ void NetHackQtMainWindow::layout()
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef DYNAMIC_STATUSLINES // leave disabled; this doesn't work as intended
|
||||
#ifdef DYNAMIC_STATUSLINES
|
||||
// called when 'statuslines' changes from 2 to 3 or vice versa; simpler to
|
||||
// destroy and recreate the status window than to adjust existing fields
|
||||
void NetHackQtMainWindow::redoStatus()
|
||||
NetHackQtWindow *NetHackQtMainWindow::redoStatus()
|
||||
{
|
||||
NetHackQtStatusWindow *oldstatus = this->status;
|
||||
if (!oldstatus)
|
||||
return; // not ready yet?
|
||||
return NULL; // not ready yet?
|
||||
this->status = new NetHackQtStatusWindow;
|
||||
|
||||
if (!qt_compact_mode)
|
||||
@@ -1195,6 +1195,8 @@ void NetHackQtMainWindow::redoStatus()
|
||||
|
||||
delete oldstatus;
|
||||
ShowIfReady();
|
||||
|
||||
return (NetHackQtWindow *) this->status;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
+6
-1
@@ -14,6 +14,11 @@
|
||||
#include "qt_kde0.h"
|
||||
#endif
|
||||
|
||||
// Allow changing 'statuslines:2' to 'statuslines:3' or vice versa
|
||||
// while the game is running; deletes and re-creates the status window.
|
||||
// [Used in qt_bind.cpp and qt_main.cpp, but not referenced in qt_stat.cpp.]
|
||||
#define DYNAMIC_STATUSLINES
|
||||
|
||||
namespace nethack_qt_ {
|
||||
|
||||
class NetHackQtInvUsageWindow;
|
||||
@@ -54,7 +59,7 @@ public:
|
||||
void resizePaperDoll(bool); // ENHANCED_PAPERDOLL
|
||||
#ifdef DYNAMIC_STATUSLINES
|
||||
// called when 'statuslines' option has been changed
|
||||
void redoStatus();
|
||||
NetHackQtWindow *redoStatus();
|
||||
#endif
|
||||
|
||||
public slots:
|
||||
|
||||
Reference in New Issue
Block a user