Kill SidebarWidget

This commit is contained in:
Florian Märkl 2018-12-24 16:25:55 +01:00
parent 8241b09e80
commit 9a3844f5d1
10 changed files with 1 additions and 2146 deletions

View File

@ -156,12 +156,10 @@ SOURCES += \
widgets/SdbDock.cpp \ widgets/SdbDock.cpp \
widgets/SectionsWidget.cpp \ widgets/SectionsWidget.cpp \
widgets/SegmentsWidget.cpp \ widgets/SegmentsWidget.cpp \
widgets/Sidebar.cpp \
widgets/StringsWidget.cpp \ widgets/StringsWidget.cpp \
widgets/SymbolsWidget.cpp \ widgets/SymbolsWidget.cpp \
menus/DisassemblyContextMenu.cpp \ menus/DisassemblyContextMenu.cpp \
widgets/DisassemblyWidget.cpp \ widgets/DisassemblyWidget.cpp \
widgets/SidebarWidget.cpp \
widgets/HexdumpWidget.cpp \ widgets/HexdumpWidget.cpp \
common/Configuration.cpp \ common/Configuration.cpp \
common/Colors.cpp \ common/Colors.cpp \
@ -256,12 +254,10 @@ HEADERS += \
widgets/SdbDock.h \ widgets/SdbDock.h \
widgets/SectionsWidget.h \ widgets/SectionsWidget.h \
widgets/SegmentsWidget.h \ widgets/SegmentsWidget.h \
widgets/Sidebar.h \
widgets/StringsWidget.h \ widgets/StringsWidget.h \
widgets/SymbolsWidget.h \ widgets/SymbolsWidget.h \
menus/DisassemblyContextMenu.h \ menus/DisassemblyContextMenu.h \
widgets/DisassemblyWidget.h \ widgets/DisassemblyWidget.h \
widgets/SidebarWidget.h \
widgets/HexdumpWidget.h \ widgets/HexdumpWidget.h \
common/Configuration.h \ common/Configuration.h \
common/Colors.h \ common/Colors.h \
@ -348,10 +344,8 @@ FORMS += \
widgets/ImportsWidget.ui \ widgets/ImportsWidget.ui \
widgets/SdbDock.ui \ widgets/SdbDock.ui \
widgets/RelocsWidget.ui \ widgets/RelocsWidget.ui \
widgets/Sidebar.ui \
widgets/StringsWidget.ui \ widgets/StringsWidget.ui \
widgets/SymbolsWidget.ui \ widgets/SymbolsWidget.ui \
widgets/SidebarWidget.ui \
widgets/HexdumpWidget.ui \ widgets/HexdumpWidget.ui \
dialogs/SaveProjectDialog.ui \ dialogs/SaveProjectDialog.ui \
dialogs/preferences/PreferencesDialog.ui \ dialogs/preferences/PreferencesDialog.ui \

View File

@ -68,7 +68,6 @@
#include "widgets/FlagsWidget.h" #include "widgets/FlagsWidget.h"
#include "widgets/VisualNavbar.h" #include "widgets/VisualNavbar.h"
#include "widgets/Dashboard.h" #include "widgets/Dashboard.h"
#include "widgets/Sidebar.h"
#include "widgets/SdbDock.h" #include "widgets/SdbDock.h"
#include "widgets/Omnibar.h" #include "widgets/Omnibar.h"
#include "widgets/ConsoleWidget.h" #include "widgets/ConsoleWidget.h"
@ -177,7 +176,6 @@ void MainWindow::initUI()
dockWidgets.reserve(20); dockWidgets.reserve(20);
disassemblyDock = new DisassemblyWidget(this, ui->actionDisassembly); disassemblyDock = new DisassemblyWidget(this, ui->actionDisassembly);
sidebarDock = new SidebarWidget(this, ui->actionSidebar);
hexdumpDock = new HexdumpWidget(this, ui->actionHexdump); hexdumpDock = new HexdumpWidget(this, ui->actionHexdump);
pseudocodeDock = new PseudocodeWidget(this, ui->actionPseudocode); pseudocodeDock = new PseudocodeWidget(this, ui->actionPseudocode);
consoleDock = new ConsoleWidget(this, ui->actionConsole); consoleDock = new ConsoleWidget(this, ui->actionConsole);
@ -551,9 +549,8 @@ void MainWindow::restoreDocks()
// In the upper half the functions are the first widget // In the upper half the functions are the first widget
addDockWidget(Qt::TopDockWidgetArea, functionsDock); addDockWidget(Qt::TopDockWidgetArea, functionsDock);
// Function | Dashboard | Sidebar // Function | Dashboard
splitDockWidget(functionsDock, dashboardDock, Qt::Horizontal); splitDockWidget(functionsDock, dashboardDock, Qt::Horizontal);
splitDockWidget(dashboardDock, sidebarDock, Qt::Horizontal);
// In the lower half the console is the first widget // In the lower half the console is the first widget
addDockWidget(Qt::BottomDockWidgetArea, consoleDock); addDockWidget(Qt::BottomDockWidgetArea, consoleDock);
@ -585,7 +582,6 @@ void MainWindow::restoreDocks()
tabifyDockWidget(dashboardDock, vTablesDock); tabifyDockWidget(dashboardDock, vTablesDock);
// Add Stack, Registers and Backtrace vertically stacked // Add Stack, Registers and Backtrace vertically stacked
splitDockWidget(sidebarDock, stackDock, Qt::Horizontal);
splitDockWidget(stackDock, registersDock, Qt::Vertical); splitDockWidget(stackDock, registersDock, Qt::Vertical);
tabifyDockWidget(stackDock, backtraceDock); tabifyDockWidget(stackDock, backtraceDock);
// MemoryMap/Breakpoint/RegRefs widget goes in the center tabs // MemoryMap/Breakpoint/RegRefs widget goes in the center tabs

View File

@ -5,7 +5,6 @@
#include "Cutter.h" // only needed for ut64 #include "Cutter.h" // only needed for ut64
#include "widgets/DisassemblyWidget.h" #include "widgets/DisassemblyWidget.h"
#include "widgets/SidebarWidget.h"
#include "widgets/StackWidget.h" #include "widgets/StackWidget.h"
#include "widgets/RegistersWidget.h" #include "widgets/RegistersWidget.h"
#include "widgets/BacktraceWidget.h" #include "widgets/BacktraceWidget.h"
@ -196,7 +195,6 @@ private:
QList<QDockWidget *> dockWidgets; QList<QDockWidget *> dockWidgets;
QMap<QAction *, QDockWidget *> dockWidgetActions; QMap<QAction *, QDockWidget *> dockWidgetActions;
DisassemblyWidget *disassemblyDock = nullptr; DisassemblyWidget *disassemblyDock = nullptr;
SidebarWidget *sidebarDock = nullptr;
HexdumpWidget *hexdumpDock = nullptr; HexdumpWidget *hexdumpDock = nullptr;
PseudocodeWidget *pseudocodeDock = nullptr; PseudocodeWidget *pseudocodeDock = nullptr;
QDockWidget *graphDock = nullptr; QDockWidget *graphDock = nullptr;

View File

@ -197,7 +197,6 @@ QToolTip {
<addaction name="actionHexdump"/> <addaction name="actionHexdump"/>
<addaction name="actionPseudocode"/> <addaction name="actionPseudocode"/>
<addaction name="actionFunctions"/> <addaction name="actionFunctions"/>
<addaction name="actionSidebar"/>
<addaction name="separator"/> <addaction name="separator"/>
<addaction name="actionStrings"/> <addaction name="actionStrings"/>
<addaction name="actionSearch"/> <addaction name="actionSearch"/>
@ -950,14 +949,6 @@ QToolTip {
<string>Hexdump</string> <string>Hexdump</string>
</property> </property>
</action> </action>
<action name="actionSidebar">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text">
<string>Sidebar</string>
</property>
</action>
<action name="actionConsole"> <action name="actionConsole">
<property name="checkable"> <property name="checkable">
<bool>true</bool> <bool>true</bool>

View File

@ -1,65 +0,0 @@
#include "Sidebar.h"
#include "ui_Sidebar.h"
#include "MainWindow.h"
#include <QSettings>
SideBar::SideBar(MainWindow *main) :
QWidget(main),
ui(new Ui::SideBar),
main(main)
{
ui->setupUi(this);
QSettings settings;
if (settings.value("responsive").toBool()) {
ui->respButton->setChecked(true);
} else {
ui->respButton->setChecked(false);
}
}
SideBar::~SideBar() {}
void SideBar::on_tabsButton_clicked()
{
this->main->on_actionTabs_triggered();
}
void SideBar::on_lockButton_clicked()
{
if (ui->lockButton->isChecked()) {
ui->lockButton->setIcon(QIcon(":/img/icons/unlock_white.svg"));
this->main->lockUnlock_Docks(1);
} else {
ui->lockButton->setIcon(QIcon(":/img/icons/lock_white.svg"));
this->main->lockUnlock_Docks(0);
}
}
void SideBar::on_calcInput_textChanged(const QString &arg1)
{
ui->calcOutput->setText(QString::number(Core()->math(arg1)));
}
void SideBar::on_asm2hex_clicked()
{
ui->hexInput->setPlainText(Core()->assemble(ui->asmInput->toPlainText()));
}
void SideBar::on_hex2asm_clicked()
{
ui->asmInput->setPlainText(Core()->disassemble(ui->hexInput->toPlainText()));
}
void SideBar::on_respButton_toggled(bool checked)
{
this->main->toggleResponsive(checked);
}
void SideBar::on_refreshButton_clicked()
{
this->main->refreshAll();
}

View File

@ -1,42 +0,0 @@
#ifndef SIDEBAR_H
#define SIDEBAR_H
#include <QWidget>
#include <memory>
class MainWindow;
namespace Ui {
class SideBar;
}
class SideBar : public QWidget
{
Q_OBJECT
public:
explicit SideBar(MainWindow *main);
~SideBar();
private slots:
void on_tabsButton_clicked();
void on_lockButton_clicked();
void on_calcInput_textChanged(const QString &arg1);
void on_asm2hex_clicked();
void on_hex2asm_clicked();
void on_respButton_toggled(bool checked);
void on_refreshButton_clicked();
private:
std::unique_ptr<Ui::SideBar> ui;
MainWindow *main;
};
#endif // SIDEBAR_H

File diff suppressed because it is too large Load Diff

View File

@ -1,241 +0,0 @@
#include "SidebarWidget.h"
#include "ui_SidebarWidget.h"
#include "DisassemblerGraphView.h"
#include "common/Helpers.h"
#include "common/TempConfig.h"
#include <QTemporaryFile>
#include <QFontDialog>
#include <QScrollBar>
#include <QShortcut>
#include <QMenu>
#include <QFont>
#include <QUrl>
#include <QSettings>
#include <QJsonObject>
#include <QJsonArray>
SidebarWidget::SidebarWidget(MainWindow *main, QAction *action) :
CutterDockWidget(main, action),
ui(new Ui::SidebarWidget)
{
ui->setupUi(this);
// Add margin to function name line edit
ui->fcnNameEdit->setTextMargins(5, 0, 0, 0);
setScrollMode();
connect(Core(), SIGNAL(seekChanged(RVA)), this, SLOT(on_seekChanged(RVA)));
connect(Core(), SIGNAL(flagsChanged()), this, SLOT(refresh()));
connect(Core(), SIGNAL(commentsChanged()), this, SLOT(refresh()));
connect(Core(), SIGNAL(asmOptionsChanged()), this, SLOT(refresh()));
connect(Core(), SIGNAL(refreshAll()), this, SLOT(refresh()));
}
SidebarWidget::~SidebarWidget()
{
}
void SidebarWidget::on_seekChanged(RVA addr)
{
refresh(addr);
}
void SidebarWidget::refresh(RVA addr)
{
if (addr == RVA_INVALID)
addr = Core()->getOffset();
updateRefs(addr);
setFcnName(addr);
fillOffsetInfo(RAddressString(addr));
fillRegistersInfo();
}
void SidebarWidget::on_xrefFromTreeWidget_itemDoubleClicked(QTreeWidgetItem *item, int column)
{
if (column < 0)
return;
XrefDescription xref = item->data(0, Qt::UserRole).value<XrefDescription>();
Core()->seek(xref.to);
}
void SidebarWidget::on_xrefToTreeWidget_itemDoubleClicked(QTreeWidgetItem *item, int column)
{
if (column < 0)
return;
XrefDescription xref = item->data(0, Qt::UserRole).value<XrefDescription>();
Core()->seek(xref.from);
}
void SidebarWidget::on_offsetToolButton_clicked()
{
if (ui->offsetToolButton->isChecked()) {
ui->offsetTreeWidget->hide();
ui->offsetToolButton->setArrowType(Qt::RightArrow);
} else {
ui->offsetTreeWidget->show();
ui->offsetToolButton->setArrowType(Qt::DownArrow);
}
}
void SidebarWidget::on_opcodeDescToolButton_clicked()
{
if (ui->opcodeDescToolButton->isChecked()) {
ui->opcodeDescText->hide();
ui->opcodeDescToolButton->setArrowType(Qt::RightArrow);
} else {
ui->opcodeDescText->show();
ui->opcodeDescToolButton->setArrowType(Qt::DownArrow);
}
}
void SidebarWidget::on_xrefFromToolButton_clicked()
{
if (ui->xrefFromToolButton->isChecked()) {
ui->xrefFromTreeWidget->hide();
ui->xrefFromToolButton->setArrowType(Qt::RightArrow);
} else {
ui->xrefFromTreeWidget->show();
ui->xrefFromToolButton->setArrowType(Qt::DownArrow);
}
}
void SidebarWidget::on_xrefToToolButton_clicked()
{
if (ui->xrefToToolButton->isChecked()) {
ui->xrefToTreeWidget->hide();
ui->xrefToToolButton->setArrowType(Qt::RightArrow);
} else {
ui->xrefToTreeWidget->show();
ui->xrefToToolButton->setArrowType(Qt::DownArrow);
}
}
void SidebarWidget::on_regInfoToolButton_clicked()
{
if (ui->regInfoToolButton->isChecked()) {
ui->regInfoTreeWidget->hide();
ui->regInfoToolButton->setArrowType(Qt::RightArrow);
} else {
ui->regInfoTreeWidget->show();
ui->regInfoToolButton->setArrowType(Qt::DownArrow);
}
}
void SidebarWidget::updateRefs(RVA addr)
{
QList<XrefDescription> refs = Core()->getXRefs(addr, false, false);
QList<XrefDescription> xrefs = Core()->getXRefs(addr, true, false);
// Update disasm side bar
this->fillRefs(refs, xrefs);
}
void SidebarWidget::fillRefs(QList<XrefDescription> refs, QList<XrefDescription> xrefs)
{
TempConfig tempConfig;
tempConfig.set("scr.html", false)
.set("scr.color", COLOR_MODE_DISABLED);
ui->xrefFromTreeWidget->clear();
for (int i = 0; i < refs.size(); ++i) {
XrefDescription xref = refs[i];
QTreeWidgetItem *tempItem = new QTreeWidgetItem();
tempItem->setText(0, xref.to_str);
tempItem->setText(1, Core()->disassembleSingleInstruction(xref.to));
tempItem->setData(0, Qt::UserRole, QVariant::fromValue(xref));
QString tooltip = Core()->cmd("pdi 10 @ " + QString::number(xref.to)).trimmed();
tempItem->setToolTip(0, tooltip);
tempItem->setToolTip(1, tooltip);
ui->xrefFromTreeWidget->insertTopLevelItem(0, tempItem);
}
// Adjust columns to content
qhelpers::adjustColumns(ui->xrefFromTreeWidget, 0);
ui->xrefToTreeWidget->clear();
for (int i = 0; i < xrefs.size(); ++i) {
XrefDescription xref = xrefs[i];
QTreeWidgetItem *tempItem = new QTreeWidgetItem();
tempItem->setText(0, xref.from_str);
tempItem->setText(1, Core()->disassembleSingleInstruction(xref.from));
tempItem->setData(0, Qt::UserRole, QVariant::fromValue(xref));
QString tooltip = Core()->cmd("pdi 10 @ " + QString::number(xref.from)).trimmed();
ui->xrefToTreeWidget->insertTopLevelItem(0, tempItem);
}
// Adjust columns to content
qhelpers::adjustColumns(ui->xrefToTreeWidget, 0);
}
void SidebarWidget::fillOffsetInfo(QString off)
{
TempConfig tempConfig;
tempConfig.set("scr.html", false)
.set("scr.color", COLOR_MODE_DISABLED);
ui->offsetTreeWidget->clear();
QString raw = Core()->cmd(QString("ao@") + off).trimmed();
QList<QString> lines = raw.split("\n", QString::SkipEmptyParts);
for (const QString &line : lines) {
QList<QString> eles = line.split(":", QString::SkipEmptyParts);
if (eles.length() < 2) {
continue;
}
QTreeWidgetItem *tempItem = new QTreeWidgetItem();
tempItem->setText(0, eles.at(0).toUpper());
tempItem->setText(1, eles.at(1));
ui->offsetTreeWidget->insertTopLevelItem(0, tempItem);
}
// Adjust column to contents
qhelpers::adjustColumns(ui->offsetTreeWidget, 0);
// Add opcode description
QStringList description = Core()->cmd("aod @ " + off).split(": ");
if (description.length() >= 2) {
ui->opcodeDescText->setPlainText("# " + description[0] + ":\n" + description[1]);
}
}
void SidebarWidget::setFcnName(RVA addr)
{
ui->fcnNameEdit->setText(Core()->cmdFunctionAt(addr));
}
void SidebarWidget::setScrollMode()
{
qhelpers::setVerticalScrollMode(ui->xrefFromTreeWidget);
qhelpers::setVerticalScrollMode(ui->xrefToTreeWidget);
}
void SidebarWidget::fillRegistersInfo()
{
TempConfig tempConfig;
tempConfig.set("scr.html", false)
.set("scr.color", COLOR_MODE_DISABLED);
ui->regInfoTreeWidget->clear();
QJsonObject jsonRoot = Core()->getRegistersInfo().object();
for (const QString &key : jsonRoot.keys()) {
QTreeWidgetItem *tempItem = new QTreeWidgetItem();
QString tempString;
tempItem->setText(0, key.toUpper());
for (const QJsonValue &value : jsonRoot[key].toArray()) {
tempString.append(value.toString() + " ");
}
tempItem->setText(1, tempString);
ui->regInfoTreeWidget->addTopLevelItem(tempItem);
}
// Adjust columns to content
qhelpers::adjustColumns(ui->regInfoTreeWidget, 0);
}

View File

@ -1,61 +0,0 @@
#ifndef SIDEBARWIDGET_H
#define SIDEBARWIDGET_H
#include <QDebug>
#include <QTextEdit>
#include <QTreeWidget>
#include <QTabWidget>
#include <QUrl>
#include <QPlainTextEdit>
#include <QMouseEvent>
#include <memory>
#include "Cutter.h"
#include "CutterDockWidget.h"
#include "common/Highlighter.h"
#include "common/HexAsciiHighlighter.h"
#include "common/HexHighlighter.h"
#include "Dashboard.h"
namespace Ui {
class SidebarWidget;
}
class SidebarWidget : public CutterDockWidget
{
Q_OBJECT
public:
explicit SidebarWidget(MainWindow *main, QAction *action = nullptr);
~SidebarWidget();
private:
std::unique_ptr<Ui::SidebarWidget> ui;
void setFcnName(RVA addr);
void updateRefs(RVA addr);
void fillRefs(QList<XrefDescription> refs, QList<XrefDescription> xrefs);
void fillOffsetInfo(QString off);
void fillRegistersInfo();
void setScrollMode();
private slots:
void on_seekChanged(RVA addr);
void refresh(RVA addr = RVA_INVALID);
void on_xrefFromTreeWidget_itemDoubleClicked(QTreeWidgetItem *item, int column);
void on_xrefToTreeWidget_itemDoubleClicked(QTreeWidgetItem *item, int column);
void on_offsetToolButton_clicked();
void on_opcodeDescToolButton_clicked();
void on_xrefFromToolButton_clicked();
void on_xrefToToolButton_clicked();
void on_regInfoToolButton_clicked();
};
#endif // SIDEBARWIDGET_H

View File

@ -1,629 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>SidebarWidget</class>
<widget class="QDockWidget" name="SidebarWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>333</width>
<height>835</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Ignored" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="windowTitle">
<string notr="true">Sidebar</string>
</property>
<widget class="QWidget" name="dockWidgetContents">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QScrollArea" name="scrollArea_4">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="lineWidth">
<number>0</number>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="sizeAdjustPolicy">
<enum>QAbstractScrollArea::AdjustToContents</enum>
</property>
<property name="widgetResizable">
<bool>true</bool>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
<widget class="QWidget" name="scrollAreaWidgetContents_4">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>333</width>
<height>810</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QVBoxLayout" name="verticalLayout_11">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QVBoxLayout" name="verticalLayout_12">
<property name="spacing">
<number>5</number>
</property>
<property name="leftMargin">
<number>2</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
<number>5</number>
</property>
<property name="topMargin">
<number>2</number>
</property>
<property name="bottomMargin">
<number>2</number>
</property>
<item>
<widget class="QLabel" name="label">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string> Function:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="fcnNameEdit">
<property name="inputMask">
<string notr="true"/>
</property>
<property name="text">
<string notr="true"/>
</property>
<property name="frame">
<bool>false</bool>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="spacing">
<number>5</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<item>
<widget class="QToolButton" name="offsetToolButton">
<property name="text">
<string/>
</property>
<property name="iconSize">
<size>
<width>8</width>
<height>8</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="autoRaise">
<bool>true</bool>
</property>
<property name="arrowType">
<enum>Qt::DownArrow</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_2">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="mouseTracking">
<bool>true</bool>
</property>
<property name="text">
<string>Offset info:</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QTreeWidget" name="offsetTreeWidget">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>175</height>
</size>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="indentation">
<number>10</number>
</property>
<property name="headerHidden">
<bool>true</bool>
</property>
<column>
<property name="text">
<string>Info</string>
</property>
</column>
<column>
<property name="text">
<string>Value</string>
</property>
</column>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_5">
<item>
<widget class="QToolButton" name="opcodeDescToolButton">
<property name="text">
<string>...</string>
</property>
<property name="iconSize">
<size>
<width>8</width>
<height>8</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="autoRaise">
<bool>true</bool>
</property>
<property name="arrowType">
<enum>Qt::DownArrow</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_3">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="mouseTracking">
<bool>true</bool>
</property>
<property name="text">
<string>Opcode description:</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QPlainTextEdit" name="opcodeDescText">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="verticalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="undoRedoEnabled">
<bool>false</bool>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_17">
<property name="spacing">
<number>5</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<item>
<widget class="QToolButton" name="regInfoToolButton">
<property name="text">
<string/>
</property>
<property name="iconSize">
<size>
<width>8</width>
<height>8</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="autoRaise">
<bool>true</bool>
</property>
<property name="arrowType">
<enum>Qt::DownArrow</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_4">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="mouseTracking">
<bool>true</bool>
</property>
<property name="text">
<string>Function registers info:</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QTreeWidget" name="regInfoTreeWidget">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>100</height>
</size>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="indentation">
<number>10</number>
</property>
<property name="headerHidden">
<bool>true</bool>
</property>
<column>
<property name="text">
<string>Info</string>
</property>
</column>
<column>
<property name="text">
<string>Value</string>
</property>
</column>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_16">
<property name="spacing">
<number>5</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<item>
<widget class="QToolButton" name="xrefToToolButton">
<property name="text">
<string>...</string>
</property>
<property name="iconSize">
<size>
<width>8</width>
<height>8</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="autoRaise">
<bool>true</bool>
</property>
<property name="arrowType">
<enum>Qt::DownArrow</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="xrefToLabel">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>X-Refs to current address:</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QTreeWidget" name="xrefToTreeWidget">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>100</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">QTreeWidget::item
{
padding-top: 1px;
padding-bottom: 1px;
}
QToolTip {
background-color: #444;
border: 3px solid #444;
color: rgb(232, 232, 232);
font: 12pt &quot;Monaco&quot;;
}</string>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="verticalScrollMode">
<enum>QAbstractItemView::ScrollPerPixel</enum>
</property>
<property name="indentation">
<number>8</number>
</property>
<column>
<property name="text">
<string>Address</string>
</property>
</column>
<column>
<property name="text">
<string>Instruction</string>
</property>
</column>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_15">
<property name="spacing">
<number>5</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<item>
<widget class="QToolButton" name="xrefFromToolButton">
<property name="text">
<string/>
</property>
<property name="iconSize">
<size>
<width>8</width>
<height>8</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="autoRaise">
<bool>true</bool>
</property>
<property name="arrowType">
<enum>Qt::DownArrow</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="xrefFromLabel">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>X-Refs from current address:</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QTreeWidget" name="xrefFromTreeWidget">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>100</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">QTreeWidget::item
{
padding-top: 1px;
padding-bottom: 1px;
}
QToolTip {
background-color: #444;
border: 3px solid #444;
color: rgb(232, 232, 232);
font: 12pt &quot;Monaco&quot;;
}</string>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="verticalScrollMode">
<enum>QAbstractItemView::ScrollPerPixel</enum>
</property>
<property name="indentation">
<number>8</number>
</property>
<column>
<property name="text">
<string>Address</string>
</property>
</column>
<column>
<property name="text">
<string>Instruction</string>
</property>
</column>
</widget>
</item>
<item>
<spacer name="verticalSpacer_4">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
</widget>
<resources>
<include location="../resources.qrc"/>
</resources>
<connections/>
</ui>