15#ifndef LUA_DEBUGGER_UTILS_H
16#define LUA_DEBUGGER_UTILS_H
24#include <QKeySequence>
27#include <QStandardItem>
28#include <QStandardItemModel>
35#include "epan/wslua/wslua_debugger.h"
65 while (item && item->parent())
67 item = item->parent();
75 bool rootExpanded =
false;
101 const QString &rootKey,
const QString &key,
bool expanded);
111 const QString &rootKey);
122namespace LuaDebuggerSettingsKeys
124constexpr const char *Theme =
"theme";
127constexpr const char *MainSplitter =
"mainSplitterState";
128constexpr const char *LeftSplitter =
"leftSplitterState";
129constexpr const char *EvalSplitter =
"evalSplitterState";
130constexpr const char *SectionVariables =
"sectionVariables";
131constexpr const char *SectionStack =
"sectionStack";
132constexpr const char *SectionFiles =
"sectionFiles";
133constexpr const char *SectionBreakpoints =
"sectionBreakpoints";
134constexpr const char *SectionEval =
"sectionEval";
135constexpr const char *SectionSettings =
"sectionSettings";
136constexpr const char *SectionWatch =
"sectionWatch";
137constexpr const char *Breakpoints =
"breakpoints";
138constexpr const char *Watches =
"watches";
139constexpr const char *BreakOnError =
"breakOnError";
143constexpr qint32 FileTreePathRole =
static_cast<qint32
>(Qt::UserRole);
144constexpr qint32 FileTreeIsDirectoryRole =
static_cast<qint32
>(Qt::UserRole + 1);
145constexpr qint32 BreakpointFileRole =
static_cast<qint32
>(Qt::UserRole + 2);
146constexpr qint32 BreakpointLineRole =
static_cast<qint32
>(Qt::UserRole + 3);
147constexpr qint32 BreakpointConditionRole =
static_cast<qint32
>(Qt::UserRole + 30);
148constexpr qint32 BreakpointHitCountRole =
static_cast<qint32
>(Qt::UserRole + 31);
149constexpr qint32 BreakpointHitTargetRole =
static_cast<qint32
>(Qt::UserRole + 32);
150constexpr qint32 BreakpointConditionErrRole =
static_cast<qint32
>(Qt::UserRole + 33);
151constexpr qint32 BreakpointLogMessageRole =
static_cast<qint32
>(Qt::UserRole + 34);
152constexpr qint32 BreakpointHitModeRole =
static_cast<qint32
>(Qt::UserRole + 35);
153constexpr qint32 BreakpointLogAlsoPauseRole =
static_cast<qint32
>(Qt::UserRole + 36);
154constexpr qint32 StackItemFileRole =
static_cast<qint32
>(Qt::UserRole + 4);
155constexpr qint32 StackItemLineRole =
static_cast<qint32
>(Qt::UserRole + 5);
156constexpr qint32 StackItemNavigableRole =
static_cast<qint32
>(Qt::UserRole + 6);
157constexpr qint32 StackItemLevelRole =
static_cast<qint32
>(Qt::UserRole + 7);
158constexpr qint32 VariablePathRole =
static_cast<qint32
>(Qt::UserRole + 8);
159constexpr qint32 VariableTypeRole =
static_cast<qint32
>(Qt::UserRole + 9);
160constexpr qint32 VariableCanExpandRole =
static_cast<qint32
>(Qt::UserRole + 10);
161constexpr qint32 WatchSpecRole =
static_cast<qint32
>(Qt::UserRole + 11);
162constexpr qint32 WatchSubpathRole =
static_cast<qint32
>(Qt::UserRole + 13);
163constexpr qint32 WatchPendingNewRole =
static_cast<qint32
>(Qt::UserRole + 15);
164constexpr qint32 ChangedFlashSerialRole =
static_cast<qint32
>(Qt::UserRole + 20);
166constexpr qsizetype WATCH_TOOLTIP_MAX_CHARS = 4096;
167constexpr int WATCH_EXPR_MAX_CHARS = 65536;
168constexpr int CHANGED_FLASH_MS = 500;
169constexpr int WATCH_PLACEHOLDER_DEFER_MS = 250;
170constexpr QChar CHANGE_KEY_SEP = QChar(0x1F);
175extern const QKeySequence kLuaDbgCtxGoToLine;
176extern const QKeySequence kLuaDbgCtxRunToLine;
177extern const QKeySequence kLuaDbgCtxWatchEdit;
178extern const QKeySequence kLuaDbgCtxWatchCopyValue;
179extern const QKeySequence kLuaDbgCtxWatchDuplicate;
180extern const QKeySequence kLuaDbgCtxWatchRemoveAll;
181extern const QKeySequence kLuaDbgCtxAddWatch;
182extern const QKeySequence kLuaDbgCtxToggleBreakpoint;
183extern const QKeySequence kLuaDbgCtxReloadLuaPlugins;
184extern const QKeySequence kLuaDbgCtxRemoveAllBreakpoints;
198namespace LuaDebuggerItems
209 if (!indexInRow.isValid())
213 return indexInRow.sibling(indexInRow.row(), col).data(Qt::DisplayRole).toString();
222inline QStandardItem *
rowCol0(QStandardItemModel *model, QStandardItem *cell)
228 const QModelIndex ix = model->indexFromItem(cell);
233 return model->itemFromIndex(ix.sibling(ix.row(), 0));
243inline QStandardItem *
cellAt(QStandardItemModel *model, QStandardItem *col0,
int col)
245 if (!model || !col0 || col0->column() != 0)
249 QStandardItem *par = col0->parent();
252 return model->item(col0->row(), col);
254 return par->child(col0->row(), col);
264inline QString text(QStandardItemModel *model, QStandardItem *col0,
int col)
266 QStandardItem *c =
cellAt(model, col0, col);
267 return c ? c->text() : QString();
277inline void setText(QStandardItemModel *model, QStandardItem *col0,
int col,
const QString &t)
279 QStandardItem *c =
cellAt(model, col0, col);
293inline void setToolTip(QStandardItemModel *model, QStandardItem *col0,
int col,
const QString &tip)
295 QStandardItem *c =
cellAt(model, col0, col);
309inline void setFont(QStandardItemModel *model, QStandardItem *col0,
int col,
const QFont &font)
311 QStandardItem *c =
cellAt(model, col0, col);
325inline void setForeground(QStandardItemModel *model, QStandardItem *col0,
int col,
const QBrush &brush)
327 QStandardItem *c =
cellAt(model, col0, col);
330 c->setForeground(brush);
341inline void setBackground(QStandardItemModel *model, QStandardItem *col0,
int col,
const QBrush &brush)
343 QStandardItem *c =
cellAt(model, col0, col);
346 c->setBackground(brush);
357inline void setIcon(QStandardItemModel *model, QStandardItem *col0,
int col,
const QIcon &icon)
359 QStandardItem *c =
cellAt(model, col0, col);
373inline void setTextAlignment(QStandardItemModel *model, QStandardItem *col0,
int col, Qt::Alignment align)
375 QStandardItem *c =
cellAt(model, col0, col);
378 c->setTextAlignment(align);
388inline QModelIndex
indexCol0(QStandardItemModel *model, QStandardItem *col0)
390 if (!model || !col0 || col0->column() != 0)
392 return QModelIndex();
394 return model->indexFromItem(col0);
403inline bool isExpanded(QTreeView *tree, QStandardItemModel *model, QStandardItem *col0)
405 const QModelIndex ix =
indexCol0(model, col0);
406 return ix.isValid() && tree->isExpanded(ix);
416inline void setExpanded(QTreeView *tree, QStandardItemModel *model, QStandardItem *col0,
bool expanded)
418 const QModelIndex ix =
indexCol0(model, col0);
421 tree->setExpanded(ix, expanded);
429namespace LuaDebuggerPath
473QString
changeKey(
int stackLevel,
const QString &path);
499template <
class Key,
class Map>
500bool shouldMarkChanged(
const Map &baseline,
const Key &key,
const QString &newVal,
bool flashNew =
false)
502 const auto it = baseline.constFind(key);
503 if (it != baseline.constEnd())
505 return *it != newVal;
507 return flashNew && !baseline.isEmpty();
516QString variableSectionRootKeyFromItem(
const QStandardItem *item);
524bool watchSpecUsesPathResolution(
const QString &spec);
533QString variableTreeChildPath(
const QString &parentPath,
const QString &nameText);
542QString expressionWatchChildSubpath(
const QString &parentSubpath,
const QString &nameText);
550bool variableChildrenShouldSortByName(
const QString &parentPath);
557 bool canExpand =
false;
579 int columnCount = 3);
666using TreePathKeyFinder = QStandardItem *(*)(QStandardItem *,
const QString &);
679 QStringList pathKeys, TreePathKeyFinder findByKey);
691 QStringList pathKeys);
765 const QFont &baseFont,
const QColor &color,
789 const QFont &baseFont,
const QPalette &palette,
794extern const QString kLuaDbgHeaderMinus;
807extern const QString kLuaDbgHeaderToolButtonStyle;
821 bool hasExtras =
false,
int alpha = 255);
862 const QStringList &glyphs);
896 const QFont &titleFont,
const QPalette &palette);
933 void attach(Ui::LuaDebuggerDialog *ui, QTreeView *breakpointsTree);
951 Ui::LuaDebuggerDialog *ui_ =
nullptr;
952 QTreeView *breakpointsTree_ =
nullptr;
1104 bool parentVisited);
1124 QHash<QString , QString> watchRootBaseline_;
1127 QHash<QString , QString> watchRootCurrent_;
1130 QHash<QString , QHash<QString , QString>> watchChildBaseline_;
1133 QHash<QString , QHash<QString , QString>> watchChildCurrent_;
1136 QHash<QString , QString> variablesBaseline_;
1139 QHash<QString , QString> variablesCurrent_;
1142 QSet<QString > variablesBaselineParents_;
1145 QSet<QString > variablesCurrentParents_;
1148 QHash<QString , QSet<QString >> watchChildBaselineParents_;
1151 QHash<QString , QSet<QString >> watchChildCurrentParents_;
1154 QBrush changedValueBrush_;
1157 QBrush changedFlashBrush_;
1160 bool isPauseEntryRefresh_ =
false;
1163 qint32 flashSerial_ = 0;
1166 int pauseEntryStackLevel_ = 0;
1169 QString pauseEntryFrame0Identity_;
1172 bool pauseEntryFrame0MatchesPrev_ =
false;
"Value changed since last pause" highlighter for the Watch and Variables trees.
Definition lua_debugger_utils.h:989
bool observeWatchRootValue(const QString &rootKey, const QString &value)
Record the latest value for a watch root keyed by the composite rootKey. Returns true if the new valu...
Definition lua_debugger_utils.cpp:1390
bool changeHighlightAllowed(int stackSelectionLevel) const
Checks if change highlighting is allowed for a given stack level.
Definition lua_debugger_utils.cpp:1523
LuaDebuggerChangeHighlightTracker()=default
Constructs a default LuaDebuggerChangeHighlightTracker.
void clearChangeBaselinesForWatchSpec(const QString &spec)
Clears change baselines for a specific watch specification.
Definition lua_debugger_utils.cpp:1429
void snapshotBaselinesOnPauseEntry()
Snapshots the current values to baseline on a new pause entry.
Definition lua_debugger_utils.cpp:1283
void clearAllChangeBaselines()
Clears all change baselines for watches and variables.
Definition lua_debugger_utils.cpp:1364
void pruneChangeBaselinesToLiveWatchSpecs(QStandardItemModel *watchModel)
Prunes baselines to keep only those present in the live watch specs.
Definition lua_debugger_utils.cpp:1480
void setPauseEntryRefresh(bool active)
Toggle the pause-entry refresh flag. The dialog turns it on for the duration of the pause-entry refre...
Definition lua_debugger_utils.h:1026
bool observeVariablesValue(const QString &variablesKey, const QString &value, bool parentVisited)
Variables-tree counterpart to observeWatchChildValue.
Definition lua_debugger_utils.cpp:1420
void refreshChangedValueBrushes(QTreeView *watchTree, QWidget *paletteFallback)
Refreshes the brushes used for changed values based on the application palette.
Definition lua_debugger_utils.cpp:1259
bool observeVariablesParent(const QString &parentKey)
Variables-tree counterpart to observeWatchChildParent.
Definition lua_debugger_utils.cpp:1413
void applyChangedVisuals(QObject *timerOwner, QStandardItem *anchor, bool changed)
Stamp the anchor row with the change visuals; isPauseEntryRefresh_ is consulted internally so callers...
Definition lua_debugger_utils.cpp:1318
bool observeWatchChildValue(const QString &rootKey, const QString &childPath, const QString &value, bool parentVisited)
Record the latest value for a watch-child row at rootKey/childPath. parentVisited is the result of ob...
Definition lua_debugger_utils.cpp:1404
void clearWatchBaselines()
Wipe watch-side baselines (root + child value maps and visited-parent sets). Variables-tree maps are ...
Definition lua_debugger_utils.cpp:1380
bool observeWatchChildParent(const QString &rootKey, const QString &parentPath)
Record parentPath as a visited parent in the watch-child visited-parents set keyed by rootKey....
Definition lua_debugger_utils.cpp:1397
void setPauseEntryStackLevel(int level)
Sets the stack level for the pause entry.
Definition lua_debugger_utils.h:1017
void updatePauseEntryFrameIdentity()
Updates the identity of the current frame on pause entry.
Definition lua_debugger_utils.cpp:1297
Top-level dialog hosting the Lua debugger UI components.
Definition lua_debugger_dialog.h:189
Centralised keyboard-shortcut dispatcher for the Lua debugger dialog's eventFilter().
Definition lua_debugger_utils.h:921
bool reserveShortcutOverride(const QKeyEvent *ke) const
Pre-empt a debugger-owned shortcut on QEvent::ShortcutOverride.
Definition lua_debugger_utils.cpp:1079
bool handleKeyPress(QObject *obj, const QKeyEvent *ke)
Handle a QEvent::KeyPress delivered to the debugger UI.
Definition lua_debugger_utils.cpp:1095
void attach(Ui::LuaDebuggerDialog *ui, QTreeView *breakpointsTree)
Wire the router to the dialog's Ui struct and breakpoints tree. Must be called once,...
Definition lua_debugger_utils.cpp:1073
QString watchItemExpansionKey(const QStandardItem *item)
Return the expansion key for a watch item.
Definition lua_debugger_utils.cpp:639
QString watchSpecFromChangeKey(const QString &key)
Return the watch specification corresponding to a change key.
Definition lua_debugger_utils.cpp:184
bool watchSpecIsGlobalScoped(const QString &spec)
Check whether a watch specification is globally scoped.
Definition lua_debugger_utils.cpp:171
QString watchVariablePathForSpec(const QString &spec)
Return the variable path for a watch specification.
Definition lua_debugger_utils.cpp:310
QString changeKey(int stackLevel, const QString &path)
Return the change key for a variable at a given stack level and path.
Definition lua_debugger_utils.cpp:182
void watchRootSetVariablePathRoleFromSpec(QStandardItem *row, const QString &spec)
Set the variable path role on a watch root row item from a watch specification.
Definition lua_debugger_utils.cpp:338
VariableRowFields readVariableRowFields(const wslua_variable_t &v, const QString &parentPath)
Read the display fields of a variable row from a Lua variable.
Definition lua_debugger_utils.cpp:262
QStandardItem * findVariableItemByPathRecursive(QStandardItem *node, const QString &path)
Find a variable item by path in a subtree, searching recursively.
Definition lua_debugger_utils.cpp:617
QString watchPathParentKey(const QString &path)
Return the parent key of a watch path.
Definition lua_debugger_utils.cpp:402
LuaDbgInvalidFilterColors invalidFilterColors()
Return the foreground and background colors used to indicate an invalid filter expression in the Lua ...
Definition lua_debugger_utils.cpp:163
void applyWatchFilterErrorChrome(QStandardItem *specItem, QTreeView *tree)
Apply filter error chrome to a watch specification item.
Definition lua_debugger_utils.cpp:583
QString stripWatchExpressionErrorPrefix(const QString &errStr)
Strip the error prefix from a watch expression error string.
Definition lua_debugger_utils.cpp:190
bool variablesPathIsGlobalScoped(const QString &path)
Check whether a variables path is globally scoped.
Definition lua_debugger_utils.cpp:177
void reexpandWatchDescendantsByPathKeys(QTreeView *tree, QStandardItemModel *model, QStandardItem *subtree, QStringList pathKeys)
Re-expand previously expanded watch descendants of a subtree by their path keys.
Definition lua_debugger_utils.cpp:563
void applyWatchChildRowTextAndTooltip(QStandardItem *specItem, const QString &rawVal, const QString &typeText)
Apply the raw value and type text to a watch child row item.
Definition lua_debugger_utils.cpp:437
QString watchResolvedVariablePathForTooltip(const QString &spec)
Return the resolved variable path for a watch tooltip.
Definition lua_debugger_utils.cpp:322
QStandardItem * findWatchItemBySubpathOrPathKey(QStandardItem *subtree, const QString &key)
Find a watch item in a subtree by its subpath or path key.
Definition lua_debugger_utils.cpp:474
void clearWatchFilterErrorChrome(QStandardItem *specItem, QTreeView *tree)
Clear the filter error chrome from a watch specification item.
Definition lua_debugger_utils.cpp:569
QString watchPathOriginSuffix(const QStandardItem *item, const QString &spec)
Return the origin suffix for a watch path tooltip.
Definition lua_debugger_utils.cpp:367
QStandardItem * findVariableTreeItemByPathKey(QStandardItem *subtree, const QString &key)
Find a variable tree item in a subtree by its path key.
Definition lua_debugger_utils.cpp:499
int watchSubpathBoundaryCount(const QString &subpath)
Return the number of subpath boundaries in a watch subpath.
Definition lua_debugger_utils.cpp:456
void applyVariableExpansionIndicator(QStandardItem *anchor, bool canExpand, bool enabledOnlyPlaceholder, int columnCount)
Apply an expansion indicator to a variable row anchor item.
Definition lua_debugger_utils.cpp:273
QString capWatchTooltipText(const QString &s)
Truncate a watch tooltip text string to a reasonable length.
Definition lua_debugger_utils.cpp:393
void setupWatchRootItemFromSpec(QStandardItem *specItem, QStandardItem *valueItem, const QString &spec)
Set up a watch root item from a watch specification.
Definition lua_debugger_utils.cpp:598
void reexpandTreeDescendantsByPathKeys(QTreeView *tree, QStandardItemModel *model, QStandardItem *subtree, QStringList pathKeys, TreePathKeyFinder findByKey)
Re-expand previously expanded descendants of a subtree by their path keys.
Definition lua_debugger_utils.cpp:522
const QString kLuaDbgHeaderEdit
Definition lua_debugger_utils.cpp:659
QStringList luaDbgTreeSectionExpandedSubpaths(const QHash< QString, LuaDbgTreeSectionExpansionState > &map, const QString &rootKey)
Expanded-descendant subpaths recorded for rootKey, or empty.
Definition lua_debugger_utils.cpp:121
const QString kLuaDbgRowExtras
Definition lua_debugger_utils.cpp:662
void setForeground(QStandardItemModel *model, QStandardItem *col0, int col, const QBrush &brush)
Set the foreground brush for a cell in column col for a row whose column-0 anchor is col0.
Definition lua_debugger_utils.h:325
void luaDbgRecordTreeSectionRootExpansion(QHash< QString, LuaDbgTreeSectionExpansionState > &map, const QString &rootKey, bool expanded)
Record / clear root-level expansion for rootKey in map. Mutates map in place; collapsing a root with ...
Definition lua_debugger_utils.cpp:72
QIcon luaDbgPaintedGlyphIcon(const QString &glyph, int side, qreal dpr, const QFont &baseFont, const QColor &color, int margin=1)
Paint a glyph centred into a square pixmap and return it as an icon.
Definition lua_debugger_utils.cpp:740
QStandardItem * luaDbgWatchRootItem(QStandardItem *item)
Finds the root item of a QStandardItem hierarchy.
Definition lua_debugger_utils.h:63
void luaDbgRecordTreeSectionSubpathExpansion(QHash< QString, LuaDbgTreeSectionExpansionState > &map, const QString &rootKey, const QString &key, bool expanded)
Add / remove one descendant subpath key under rootKey in map. Mirrors luaDbgRecordTreeSectionRootExpa...
Definition lua_debugger_utils.cpp:91
void styleLuaDebuggerHeaderFittedTextButton(QToolButton *btn, int side, const QFont &titleFont, const QStringList &glyphs)
Style a Lua debugger header button with fitted text glyphs.
Definition lua_debugger_utils.cpp:836
const QString kLuaDbgHeaderPlus
Definition lua_debugger_utils.cpp:657
const QString kLuaDbgHeaderRemoveAll
Definition lua_debugger_utils.cpp:660
void styleLuaDebuggerHeaderBreakpointToggleButton(QToolButton *btn, int side)
Style a Lua debugger header breakpoint toggle button.
Definition lua_debugger_utils.cpp:827
constexpr const char * DebuggerEnabled
Definition lua_debugger_utils.h:126
void luaDbgDrawBreakpointDot(QPainter &painter, qreal dotLeft, qreal dotTop, qreal radius, bool enabled, bool hasExtras=false, int alpha=255)
Draws a breakpoint dot on the given painter.
Definition lua_debugger_utils.cpp:666
QIcon luaDbgBreakpointHeaderIconForMode(const QFont *editorFont, LuaDbgBpHeaderIconMode mode, int headerSide, qreal dpr)
Return the appropriate breakpoint header icon for the given mode.
Definition lua_debugger_utils.cpp:699
void setBackground(QStandardItemModel *model, QStandardItem *col0, int col, const QBrush &brush)
Set the background brush for a cell in column col for a row whose column-0 anchor is col0.
Definition lua_debugger_utils.h:341
QString rowColumnDisplayText(const QModelIndex &indexInRow, int col)
Qt::DisplayRole text for column col in the same row as indexInRow.
Definition lua_debugger_utils.h:207
void setText(QStandardItemModel *model, QStandardItem *col0, int col, const QString &t)
Set the text for a cell in column col for a row whose column-0 anchor is col0.
Definition lua_debugger_utils.h:277
QKeySequence luaDbgSeqFromKeyEvent(const QKeyEvent *ke)
Build a key sequence from a key event for matching against QAction shortcuts. Wraps the Qt5/Qt6 modif...
Definition lua_debugger_utils.cpp:147
void setExpanded(QTreeView *tree, QStandardItemModel *model, QStandardItem *col0, bool expanded)
Set the expansion state for a cell in column col for a row whose column-0 anchor is col0.
Definition lua_debugger_utils.h:416
LuaDbgBpHeaderIconMode
Controls the state of the header toggle icon in the Lua debugger breakpoint list.
Definition lua_debugger_utils.h:827
void setFont(QStandardItemModel *model, QStandardItem *col0, int col, const QFont &font)
Set the font for a cell in column col for a row whose column-0 anchor is col0.
Definition lua_debugger_utils.h:309
QString luaDebuggerSettingsFilePath()
Returns the file path for Lua debugger settings.
Definition lua_debugger_utils.cpp:66
void styleLuaDebuggerHeaderIconOnlyButton(QToolButton *btn, int side)
Style a Lua debugger header icon-only button.
Definition lua_debugger_utils.cpp:887
void setTextAlignment(QStandardItemModel *model, QStandardItem *col0, int col, Qt::Alignment align)
Set the text alignment for a cell in column col for a row whose column-0 anchor is col0.
Definition lua_debugger_utils.h:373
QIcon luaDbgErrorBreakHeaderIcon(bool checked, int side, qreal dpr, const QFont &titleFont, const QPalette &palette)
Build a colored Break-on-Error toggle icon for the breakpoints section header.
Definition lua_debugger_utils.cpp:901
void setIcon(QStandardItemModel *model, QStandardItem *col0, int col, const QIcon &icon)
Set the icon for a cell in column col for a row whose column-0 anchor is col0.
Definition lua_debugger_utils.h:357
QModelIndex indexCol0(QStandardItemModel *model, QStandardItem *col0)
Check whether a cell in column col for a row whose column-0 anchor is col0 is expanded in the tree vi...
Definition lua_debugger_utils.h:388
QIcon luaDbgMakeSelectionAwareIcon(const QIcon &base, const QPalette &palette)
Create a selection-aware icon for tree icons (breakpoints, variables, and watch) that applies a selec...
Definition lua_debugger_utils.cpp:934
constexpr int kLuaDbgEvalOutputMaxLines
Definition lua_debugger_utils.h:173
void setToolTip(QStandardItemModel *model, QStandardItem *col0, int col, const QString &tip)
Set the tool tip for a cell in column col for a row whose column-0 anchor is col0.
Definition lua_debugger_utils.h:293
void styleLuaDebuggerHeaderPlusMinusButton(QToolButton *btn, int side, const QFont &titleFont)
Style a Lua debugger header plus/minus button.
Definition lua_debugger_utils.cpp:881
QIcon luaDbgPaintedGlyphButtonIcon(const QString &glyph, int side, qreal dpr, const QFont &baseFont, const QPalette &palette, int margin=2)
Creates an icon for a painted glyph button.
Definition lua_debugger_utils.cpp:815
bool shouldMarkChanged(const Map &baseline, const Key &key, const QString &newVal, bool flashNew=false)
Determine whether a variable has changed based on its current and baseline values.
Definition lua_debugger_utils.h:500
bool isExpanded(QTreeView *tree, QStandardItemModel *model, QStandardItem *col0)
Check whether a cell in column col for a row whose column-0 anchor is col0 is expanded in the tree vi...
Definition lua_debugger_utils.h:403
QStandardItem * rowCol0(QStandardItemModel *model, QStandardItem *cell)
Column-0 item for the same row as cell.
Definition lua_debugger_utils.h:222
const QString kLuaDbgRowLog
Definition lua_debugger_utils.cpp:661
QStandardItem * cellAt(QStandardItemModel *model, QStandardItem *col0, int col)
Cell in column col for a row whose column-0 anchor is col0.
Definition lua_debugger_utils.h:243
Definition lua_debugger_utils.h:74
Definition lua_debugger_utils.h:433
Definition lua_debugger_utils.h:553
Variable structure for inspection.
Definition wslua_debugger.h:401