1
0
Fork 0

GUI: better clickable columns (thanks to ali56s for reporting!)

This commit is contained in:
mrexodia 2017-09-04 22:57:26 +02:00
parent 7c93a0ef48
commit d8ad2e7f53
No known key found for this signature in database
GPG Key ID: FC89E0AAA0C1AAD8
9 changed files with 75 additions and 79 deletions

View File

@ -6,11 +6,11 @@ CallStackView::CallStackView(StdTable* parent) : StdTable(parent)
int charwidth = getCharWidth();
addColumnAt(8 + charwidth * sizeof(dsint) * 2, tr("Address"), true); //address in the stack
addColumnAt(8 + charwidth * sizeof(dsint) * 2, tr("To"), true); //return to
addColumnAt(8 + charwidth * sizeof(dsint) * 2, tr("From"), true); //return from
addColumnAt(8 + charwidth * sizeof(dsint) * 2, tr("Size"), true); //size
addColumnAt(50 * charwidth, tr("Comment"), true);
addColumnAt(8 * charwidth, tr("Party"), true); //party
addColumnAt(8 + charwidth * sizeof(dsint) * 2, tr("To"), false); //return to
addColumnAt(8 + charwidth * sizeof(dsint) * 2, tr("From"), false); //return from
addColumnAt(8 + charwidth * sizeof(dsint) * 2, tr("Size"), false); //size
addColumnAt(50 * charwidth, tr("Comment"), false);
addColumnAt(8 * charwidth, tr("Party"), false); //party
loadColumnFromConfig("CallStack");
connect(Bridge::getBridge(), SIGNAL(updateCallStack()), this, SLOT(updateCallStack()));

View File

@ -27,7 +27,7 @@ CommandHelpView::CommandHelpView(QWidget* parent) : QWidget(parent), ui(new Ui::
// Create module list
mModuleList = new StdTable();
mModuleList->addColumnAt(0, tr("Module"), false);
mModuleList->addColumnAt(0, tr("Module"), true);
// Setup symbol list
mSearchListView->mList->addColumnAt(0, tr("Command"), true);

View File

@ -18,18 +18,18 @@ HandlesView::HandlesView(QWidget* parent) : QWidget(parent)
int wCharWidth = mHandlesTable->mList->getCharWidth();
// Setup handles list
mHandlesTable->mList->setDrawDebugOnly(true);
mHandlesTable->mList->addColumnAt(8 + 16 * wCharWidth, tr("Type"), false);
mHandlesTable->mList->addColumnAt(8 + 8 * wCharWidth, tr("Type number"), false);
mHandlesTable->mList->addColumnAt(8 + sizeof(duint) * 2 * wCharWidth, tr("Handle"), false);
mHandlesTable->mList->addColumnAt(8 + 16 * wCharWidth, tr("Access"), false);
mHandlesTable->mList->addColumnAt(8 + wCharWidth * 20, tr("Name"), false);
mHandlesTable->mList->addColumnAt(8 + 16 * wCharWidth, tr("Type"), true);
mHandlesTable->mList->addColumnAt(8 + 8 * wCharWidth, tr("Type number"), true);
mHandlesTable->mList->addColumnAt(8 + sizeof(duint) * 2 * wCharWidth, tr("Handle"), true);
mHandlesTable->mList->addColumnAt(8 + 16 * wCharWidth, tr("Access"), true);
mHandlesTable->mList->addColumnAt(8 + wCharWidth * 20, tr("Name"), true);
mHandlesTable->mList->loadColumnFromConfig("Handle");
// Setup search list
mHandlesTable->mSearchList->addColumnAt(8 + 16 * wCharWidth, tr("Type"), false);
mHandlesTable->mSearchList->addColumnAt(8 + 8 * wCharWidth, tr("Type number"), false);
mHandlesTable->mSearchList->addColumnAt(8 + sizeof(duint) * 2 * wCharWidth, tr("Handle"), false);
mHandlesTable->mSearchList->addColumnAt(8 + 16 * wCharWidth, tr("Access"), false);
mHandlesTable->mSearchList->addColumnAt(8 + wCharWidth * 20, tr("Name"), false);
mHandlesTable->mSearchList->addColumnAt(8 + 16 * wCharWidth, tr("Type"), true);
mHandlesTable->mSearchList->addColumnAt(8 + 8 * wCharWidth, tr("Type number"), true);
mHandlesTable->mSearchList->addColumnAt(8 + sizeof(duint) * 2 * wCharWidth, tr("Handle"), true);
mHandlesTable->mSearchList->addColumnAt(8 + 16 * wCharWidth, tr("Access"), true);
mHandlesTable->mSearchList->addColumnAt(8 + wCharWidth * 20, tr("Name"), true);
mHandlesTable->mSearchList->loadColumnFromConfig("Handle");
mWindowsTable = new SearchListView(true, this, true);
@ -37,28 +37,28 @@ HandlesView::HandlesView(QWidget* parent) : QWidget(parent)
mWindowsTable->mSearchStartCol = 0;
// Setup windows list
mWindowsTable->mList->setDrawDebugOnly(true);
mWindowsTable->mList->addColumnAt(8 + sizeof(duint) * 2 * wCharWidth, tr("Proc"), false);
mWindowsTable->mList->addColumnAt(8 + 8 * wCharWidth, tr("Handle"), false);
mWindowsTable->mList->addColumnAt(8 + 120 * wCharWidth, tr("Title"), false);
mWindowsTable->mList->addColumnAt(8 + 40 * wCharWidth, tr("Class"), false);
mWindowsTable->mList->addColumnAt(8 + 8 * wCharWidth, tr("Thread"), false);
mWindowsTable->mList->addColumnAt(8 + 16 * wCharWidth, tr("Style"), false);
mWindowsTable->mList->addColumnAt(8 + 16 * wCharWidth, tr("StyleEx"), false);
mWindowsTable->mList->addColumnAt(8 + 8 * wCharWidth, tr("Parent"), false);
mWindowsTable->mList->addColumnAt(8 + 20 * wCharWidth, tr("Size"), false);
mWindowsTable->mList->addColumnAt(8 + 6 * wCharWidth, tr("Enable"), false);
mWindowsTable->mList->addColumnAt(8 + sizeof(duint) * 2 * wCharWidth, tr("Proc"), true);
mWindowsTable->mList->addColumnAt(8 + 8 * wCharWidth, tr("Handle"), true);
mWindowsTable->mList->addColumnAt(8 + 120 * wCharWidth, tr("Title"), true);
mWindowsTable->mList->addColumnAt(8 + 40 * wCharWidth, tr("Class"), true);
mWindowsTable->mList->addColumnAt(8 + 8 * wCharWidth, tr("Thread"), true);
mWindowsTable->mList->addColumnAt(8 + 16 * wCharWidth, tr("Style"), true);
mWindowsTable->mList->addColumnAt(8 + 16 * wCharWidth, tr("StyleEx"), true);
mWindowsTable->mList->addColumnAt(8 + 8 * wCharWidth, tr("Parent"), true);
mWindowsTable->mList->addColumnAt(8 + 20 * wCharWidth, tr("Size"), true);
mWindowsTable->mList->addColumnAt(8 + 6 * wCharWidth, tr("Enable"), true);
mWindowsTable->mList->loadColumnFromConfig("Window");
// Setup search list
mWindowsTable->mSearchList->addColumnAt(8 + sizeof(duint) * 2 * wCharWidth, tr("Proc"), false);
mWindowsTable->mSearchList->addColumnAt(8 + 8 * wCharWidth, tr("Handle"), false);
mWindowsTable->mSearchList->addColumnAt(8 + 120 * wCharWidth, tr("Title"), false);
mWindowsTable->mSearchList->addColumnAt(8 + 40 * wCharWidth, tr("Class"), false);
mWindowsTable->mSearchList->addColumnAt(8 + 8 * wCharWidth, tr("Thread"), false);
mWindowsTable->mSearchList->addColumnAt(8 + 16 * wCharWidth, tr("Style"), false);
mWindowsTable->mSearchList->addColumnAt(8 + 16 * wCharWidth, tr("StyleEx"), false);
mWindowsTable->mSearchList->addColumnAt(8 + 8 * wCharWidth, tr("Parent"), false);
mWindowsTable->mSearchList->addColumnAt(8 + 20 * wCharWidth, tr("Size"), false);
mWindowsTable->mSearchList->addColumnAt(8 + 6 * wCharWidth, tr("Enable"), false);
mWindowsTable->mSearchList->addColumnAt(8 + sizeof(duint) * 2 * wCharWidth, tr("Proc"), true);
mWindowsTable->mSearchList->addColumnAt(8 + 8 * wCharWidth, tr("Handle"), true);
mWindowsTable->mSearchList->addColumnAt(8 + 120 * wCharWidth, tr("Title"), true);
mWindowsTable->mSearchList->addColumnAt(8 + 40 * wCharWidth, tr("Class"), true);
mWindowsTable->mSearchList->addColumnAt(8 + 8 * wCharWidth, tr("Thread"), true);
mWindowsTable->mSearchList->addColumnAt(8 + 16 * wCharWidth, tr("Style"), true);
mWindowsTable->mSearchList->addColumnAt(8 + 16 * wCharWidth, tr("StyleEx"), true);
mWindowsTable->mSearchList->addColumnAt(8 + 8 * wCharWidth, tr("Parent"), true);
mWindowsTable->mSearchList->addColumnAt(8 + 20 * wCharWidth, tr("Size"), true);
mWindowsTable->mSearchList->addColumnAt(8 + 6 * wCharWidth, tr("Enable"), true);
mWindowsTable->mSearchList->loadColumnFromConfig("Window");
mTcpConnectionsTable = new SearchListView(true, this, true);
@ -66,14 +66,14 @@ HandlesView::HandlesView(QWidget* parent) : QWidget(parent)
mHandlesTable->mSearchStartCol = 0;
// create tcp list
mTcpConnectionsTable->mList->setDrawDebugOnly(true);
mTcpConnectionsTable->mList->addColumnAt(8 + 64 * wCharWidth, tr("Remote address"), false);
mTcpConnectionsTable->mList->addColumnAt(8 + 64 * wCharWidth, tr("Local address"), false);
mTcpConnectionsTable->mList->addColumnAt(8 + 8 * wCharWidth, tr("State"), false);
mTcpConnectionsTable->mList->addColumnAt(8 + 64 * wCharWidth, tr("Remote address"), true);
mTcpConnectionsTable->mList->addColumnAt(8 + 64 * wCharWidth, tr("Local address"), true);
mTcpConnectionsTable->mList->addColumnAt(8 + 8 * wCharWidth, tr("State"), true);
mTcpConnectionsTable->mList->loadColumnFromConfig("TcpConnection");
// create search list
mTcpConnectionsTable->mSearchList->addColumnAt(8 + 64 * wCharWidth, tr("Remote address"), false);
mTcpConnectionsTable->mSearchList->addColumnAt(8 + 64 * wCharWidth, tr("Local address"), false);
mTcpConnectionsTable->mSearchList->addColumnAt(8 + 8 * wCharWidth, tr("State"), false);
mTcpConnectionsTable->mSearchList->addColumnAt(8 + 64 * wCharWidth, tr("Remote address"), true);
mTcpConnectionsTable->mSearchList->addColumnAt(8 + 64 * wCharWidth, tr("Local address"), true);
mTcpConnectionsTable->mSearchList->addColumnAt(8 + 8 * wCharWidth, tr("State"), true);
mTcpConnectionsTable->mSearchList->loadColumnFromConfig("TcpConnection");
/*
mHeapsTable = new ReferenceView(this);
@ -88,8 +88,8 @@ HandlesView::HandlesView(QWidget* parent) : QWidget(parent)
mPrivilegesTable->setWindowTitle("Privileges");
mPrivilegesTable->setDrawDebugOnly(true);
mPrivilegesTable->setContextMenuPolicy(Qt::CustomContextMenu);
mPrivilegesTable->addColumnAt(8 + 32 * wCharWidth, tr("Privilege"), false);
mPrivilegesTable->addColumnAt(8 + 16 * wCharWidth, tr("State"), false);
mPrivilegesTable->addColumnAt(8 + 32 * wCharWidth, tr("Privilege"), true);
mPrivilegesTable->addColumnAt(8 + 16 * wCharWidth, tr("State"), true);
mPrivilegesTable->loadColumnFromConfig("Privilege");
// Splitter

View File

@ -24,9 +24,9 @@ LocalVarsView::LocalVarsView(CPUMultiDump* parent) : StdTable(parent)
configUpdatedSlot();
int charWidth = getCharWidth();
addColumnAt(8 + 20 * charWidth, tr("Name"), false);
addColumnAt(8 + 10 * charWidth, tr("Expression"), false); //[EBP + 10]
addColumnAt(8 + 10 * charWidth, tr("Value"), false);
addColumnAt(8 + 20 * charWidth, tr("Name"), true);
addColumnAt(8 + 10 * charWidth, tr("Expression"), true); //[EBP + 10]
addColumnAt(8 + 10 * charWidth, tr("Value"), true);
loadColumnFromConfig("LocalVarsView");
setupContextMenu();

View File

@ -23,7 +23,7 @@ MemoryMapView::MemoryMapView(StdTable* parent)
int charwidth = getCharWidth();
addColumnAt(8 + charwidth * 2 * sizeof(duint), tr("Address"), false, tr("Address")); //addr
addColumnAt(8 + charwidth * 2 * sizeof(duint), tr("Address"), true, tr("Address")); //addr
addColumnAt(8 + charwidth * 2 * sizeof(duint), tr("Size"), false, tr("Size")); //size
addColumnAt(8 + charwidth * 32, tr("Info"), false, tr("Page Information")); //page information
addColumnAt(8 + charwidth * 28, tr("Content"), false, tr("Content of section")); //content of section

View File

@ -6,7 +6,7 @@ SEHChainView::SEHChainView(StdTable* parent) : StdTable(parent)
int charWidth = getCharWidth();
addColumnAt(8 + charWidth * sizeof(dsint) * 2, tr("Address"), true); //address in the stack
addColumnAt(8 + charWidth * sizeof(dsint) * 2, tr("Handler"), true); // Exception Handler
addColumnAt(8 + charWidth * sizeof(dsint) * 2, tr("Handler"), false); // Exception Handler
addColumnAt(8 + charWidth * 50, tr("Module/Label"), false);
addColumnAt(charWidth * 10, tr("Comment"), false);
connect(Bridge::getBridge(), SIGNAL(updateSEHChain()), this, SLOT(updateSEHChain()));

View File

@ -32,16 +32,16 @@ SymbolView::SymbolView(QWidget* parent) : QWidget(parent), ui(new Ui::SymbolView
int charwidth = mModuleList->mList->getCharWidth();
mModuleList->mList->enableMultiSelection(true);
mModuleList->mList->setCipBase(true);
mModuleList->mList->addColumnAt(charwidth * 2 * sizeof(dsint) + 8, tr("Base"), false);
mModuleList->mList->addColumnAt(charwidth * 2 * sizeof(dsint) + 8, tr("Base"), true);
mModuleList->mList->addColumnAt(300, tr("Module"), true);
mModuleList->mList->addColumnAt(charwidth * 8, tr("Party"), false);
mModuleList->mList->addColumnAt(charwidth * 60, tr("Path"), false);
mModuleList->mList->addColumnAt(charwidth * 8, tr("Party"), true);
mModuleList->mList->addColumnAt(charwidth * 60, tr("Path"), true);
mModuleList->mList->loadColumnFromConfig("Module");
mModuleList->mSearchList->setCipBase(true);
mModuleList->mSearchList->addColumnAt(charwidth * 2 * sizeof(dsint) + 8, tr("Base"), false);
mModuleList->mSearchList->addColumnAt(charwidth * 2 * sizeof(dsint) + 8, tr("Base"), true);
mModuleList->mSearchList->addColumnAt(300, "Module", true);
mModuleList->mSearchList->addColumnAt(charwidth * 8, tr("Party"), false);
mModuleList->mSearchList->addColumnAt(charwidth * 60, tr("Path"), false);
mModuleList->mSearchList->addColumnAt(charwidth * 8, tr("Party"), true);
mModuleList->mSearchList->addColumnAt(charwidth * 60, tr("Path"), true);
mModuleList->mSearchList->loadColumnFromConfig("Module");
// Setup symbol list

View File

@ -156,24 +156,20 @@ ThreadView::ThreadView(StdTable* parent) : StdTable(parent)
{
enableMultiSelection(true);
int charwidth = getCharWidth();
addColumnAt(8 + charwidth * sizeof(unsigned int) * 2, tr("Number"), false, "", SortBy::AsInt);
addColumnAt(8 + charwidth * sizeof(unsigned int) * 2, tr("ID"), false, "", SortBy::AsHex);
addColumnAt(8 + charwidth * sizeof(duint) * 2, tr("Entry"), false, "", SortBy::AsHex);
addColumnAt(8 + charwidth * sizeof(duint) * 2, tr("TEB"), false, "", SortBy::AsHex);
#ifdef _WIN64
addColumnAt(8 + charwidth * sizeof(duint) * 2, tr("RIP"), false, "", SortBy::AsHex);
#else
addColumnAt(8 + charwidth * sizeof(duint) * 2, tr("EIP"), false, "", SortBy::AsHex);
#endif //_WIN64
addColumnAt(8 + charwidth * 14, tr("Suspend Count"), false, "", SortBy::AsInt);
addColumnAt(8 + charwidth * 12, tr("Priority"), false);
addColumnAt(8 + charwidth * 12, tr("Wait Reason"), false);
addColumnAt(8 + charwidth * 10, tr("Last Error"), false);
addColumnAt(8 + charwidth * 16, tr("User Time"), false);
addColumnAt(8 + charwidth * 16, tr("Kernel Time"), false);
addColumnAt(8 + charwidth * 16, tr("Creation Time"), false);
addColumnAt(8 + charwidth * 10, tr("CPU Cycles"), false, "", SortBy::AsInt);
addColumnAt(8, tr("Name"), false);
addColumnAt(8 + charwidth * sizeof(unsigned int) * 2, tr("Number"), true, "", SortBy::AsInt);
addColumnAt(8 + charwidth * sizeof(unsigned int) * 2, tr("ID"), true, "", SortBy::AsHex);
addColumnAt(8 + charwidth * sizeof(duint) * 2, tr("Entry"), true, "", SortBy::AsHex);
addColumnAt(8 + charwidth * sizeof(duint) * 2, tr("TEB"), true, "", SortBy::AsHex);
addColumnAt(8 + charwidth * sizeof(duint) * 2, ArchValue(tr("EIP"), tr("RIP")), true, "", SortBy::AsHex);
addColumnAt(8 + charwidth * 14, tr("Suspend Count"), true, "", SortBy::AsInt);
addColumnAt(8 + charwidth * 12, tr("Priority"), true);
addColumnAt(8 + charwidth * 12, tr("Wait Reason"), true);
addColumnAt(8 + charwidth * 10, tr("Last Error"), true, "", SortBy::AsHex);
addColumnAt(8 + charwidth * 16, tr("User Time"), true);
addColumnAt(8 + charwidth * 16, tr("Kernel Time"), true);
addColumnAt(8 + charwidth * 16, tr("Creation Time"), true);
addColumnAt(8 + charwidth * 10, tr("CPU Cycles"), true, "", SortBy::AsHex);
addColumnAt(8, tr("Name"), true);
loadColumnFromConfig("Thread");
//setCopyMenuOnly(true);

View File

@ -7,12 +7,12 @@
WatchView::WatchView(CPUMultiDump* parent) : StdTable(parent)
{
int charWidth = getCharWidth();
addColumnAt(8 + charWidth * 12, tr("Name"), false);
addColumnAt(8 + charWidth * 20, tr("Expression"), false);
addColumnAt(8 + charWidth * sizeof(duint) * 2, tr("Value"), false);
addColumnAt(8 + charWidth * 8, tr("Type"), false);
addColumnAt(150, tr("Watchdog Mode"), false);
addColumnAt(30, tr("ID"), false);
addColumnAt(8 + charWidth * 12, tr("Name"), true);
addColumnAt(8 + charWidth * 20, tr("Expression"), true);
addColumnAt(8 + charWidth * sizeof(duint) * 2, tr("Value"), true);
addColumnAt(8 + charWidth * 8, tr("Type"), true);
addColumnAt(150, tr("Watchdog Mode"), true);
addColumnAt(30, tr("ID"), true, "", SortBy::AsInt);
connect(Bridge::getBridge(), SIGNAL(updateWatch()), this, SLOT(updateWatch()));
connect(this, SIGNAL(contextMenuSignal(QPoint)), this, SLOT(contextMenuSlot(QPoint)));