Skip to content

Commit

Permalink
debug menu: Add message viewdata tab
Browse files Browse the repository at this point in the history
This shows the loaded message data that can be
used for constructing messages.
  • Loading branch information
perim committed Jul 30, 2017
1 parent ec5c482 commit 9765b31
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 1 deletion.
5 changes: 5 additions & 0 deletions src/message.cpp
Expand Up @@ -734,6 +734,11 @@ VIEWDATA *getViewData(const char *pName)
return ptr;
}

QStringList getViewDataKeys()
{
return apsViewData.keys();
}

/* Release the message heaps */
bool messageShutdown()
{
Expand Down
3 changes: 3 additions & 0 deletions src/message.h
Expand Up @@ -69,6 +69,9 @@ const char *loadResearchViewData(const char *fileName);
/** Get the view data that contains the text message pointer passed in. */
VIEWDATA *getViewData(const char *pTextMsg);

/// Get a list of viewdata entries
QStringList getViewDataKeys();

/** Release the viewdata memory. */
void viewDataShutDown(const char *fileName);

Expand Down
27 changes: 26 additions & 1 deletion src/qtscriptdebug.cpp
Expand Up @@ -116,6 +116,23 @@ void ScriptDebugger::fogButtonClicked()
kf_ToggleFog();
}

static void fillViewdataModel(QStandardItemModel &m)
{
const QStringList view_type = { "RES", "PPL", "PROX", "RPLX", "BEACON" };
int row = 0;
m.setRowCount(0);
m.setHorizontalHeaderLabels({"Name", "Type", "Source"});
QStringList keys = getViewDataKeys();
for (QString& key : keys)
{
VIEWDATA *ptr = getViewData(key.toUtf8().constData());
m.setItem(row, 0, new QStandardItem(key));
m.setItem(row, 1, new QStandardItem(view_type.at(ptr->type)));
m.setItem(row, 2, new QStandardItem(ptr->fileName));
row++;
}
}

static void fillMessageModel(QStandardItemModel &m)
{
const QStringList msg_type = { "RESEARCH", "CAMPAIGN", "MISSION", "PROXIMITY" };
Expand Down Expand Up @@ -253,6 +270,14 @@ ScriptDebugger::ScriptDebugger(const MODELMAP &models, QStandardItemModel *trigg
fillMessageModel(messageModel);
messageView.resizeColumnToContents(0);

// Add viewdata
viewdataView.setModel(&viewdataModel);
viewdataView.setSelectionMode(QAbstractItemView::NoSelection);
viewdataView.setSelectionBehavior(QAbstractItemView::SelectRows);
tab.addTab(&viewdataView, "Viewdata");
fillViewdataModel(viewdataModel);
viewdataView.resizeColumnToContents(0);

// Add labels
labelModel = createLabelModel();
labelModel->setParent(this); // take ownership to avoid memory leaks
Expand Down Expand Up @@ -283,7 +308,7 @@ ScriptDebugger::ScriptDebugger(const MODELMAP &models, QStandardItemModel *trigg
QHBoxLayout *layout = new QHBoxLayout(this);
layout->addWidget(&tab);
setLayout(layout);
resize(600, 700);
resize(640, 700);
setSizeGripEnabled(true);
show();
raise();
Expand Down
2 changes: 2 additions & 0 deletions src/qtscriptdebug.h
Expand Up @@ -56,10 +56,12 @@ class ScriptDebugger : public QDialog
QStandardItemModel *labelModel;
QStandardItemModel selectedModel;
QStandardItemModel messageModel;
QStandardItemModel viewdataModel;
QTreeView selectedView;
QTreeView labelView;
QTreeView triggerView;
QTreeView messageView;
QTreeView viewdataView;
MODELMAP modelMap;
EDITMAP editMap;
int powerValue = 0;
Expand Down

0 comments on commit 9765b31

Please sign in to comment.