Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 43 additions & 21 deletions src/Debugger.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1138,28 +1138,31 @@ void Debugger::closeEvent(QCloseEvent *event) {
// ensure that the detach event fires so that everyone who cases will be notified
Q_EMIT detachEvent();

QSettings settings;
const QByteArray state = saveState();
settings.beginGroup("Window");
settings.setValue("window.logger.visible", logger_->isVisible());
settings.setValue("window.state", state);
settings.setValue("window.view.state", mainWindow_->saveState());
settings.setValue("window.width", width());
settings.setValue("window.height", height());
settings.setValue("window.x", x());
settings.setValue("window.y", y());
settings.setValue("window.stack.show_address.enabled", stackView_->showAddress());
settings.setValue("window.stack.show_hex.enabled", stackView_->showHexDump());
settings.setValue("window.stack.show_ascii.enabled", stackView_->showAsciiDump());
settings.setValue("window.stack.show_comments.enabled", stackView_->showComments());

QByteArray disassemblyState = cpuView_->saveState();
settings.setValue("window.disassembly.state", disassemblyState);

QByteArray splitterState = splitter_->saveState();
settings.setValue("window.splitter.state", splitterState);
if (!ui_reset_) {
QSettings settings;
const QByteArray state = saveState();
settings.beginGroup("Window");
settings.setValue("window.logger.visible", logger_->isVisible());
settings.setValue("window.state", state);
settings.setValue("window.view.state", mainWindow_->saveState());
settings.setValue("window.width", width());
settings.setValue("window.height", height());
settings.setValue("window.x", x());
settings.setValue("window.y", y());
settings.setValue("window.stack.show_address.enabled", stackView_->showAddress());
settings.setValue("window.stack.show_hex.enabled", stackView_->showHexDump());
settings.setValue("window.stack.show_ascii.enabled", stackView_->showAsciiDump());
settings.setValue("window.stack.show_comments.enabled", stackView_->showComments());

QByteArray disassemblyState = cpuView_->saveState();
settings.setValue("window.disassembly.state", disassemblyState);

QByteArray splitterState = splitter_->saveState();
settings.setValue("window.splitter.state", splitterState);

settings.endGroup();
}

settings.endGroup();
event->accept();
}

Expand Down Expand Up @@ -3619,3 +3622,22 @@ void Debugger::on_action_Breakpoints_triggered() {

breakpointDialog_->show();
}

void Debugger::on_action_Reset_UI_triggered() {

int resp = QMessageBox::question(edb::v1::debugger_ui,
tr("Reset UI Layout?"),
tr("Are you sure you want to reset the UI layout to its default state? This will take effect after restarting edb."),
QMessageBox::Yes | QMessageBox::No,
QMessageBox::No);

if (resp != QMessageBox::Yes) {
return;
}

QSettings settings;
settings.beginGroup("Window");
settings.remove("");
settings.endGroup();
ui_reset_ = true;
}
2 changes: 2 additions & 0 deletions src/Debugger.h
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@ public Q_SLOTS:
void on_action_Step_Over_triggered();
void on_action_Threads_triggered();
void on_action_Breakpoints_triggered();
void on_action_Reset_UI_triggered();

private:
void toggleFlag(int);
Expand Down Expand Up @@ -307,6 +308,7 @@ private Q_SLOTS:
QToolButton *tabDelete_ = nullptr;
RecentFileManager *recentFileManager_ = nullptr;
bool stackViewLocked_ = false;
bool ui_reset_ = false;

#if defined(Q_OS_LINUX)
edb::address_t debugPointer_ = 0;
Expand Down
9 changes: 8 additions & 1 deletion src/Debugger.ui
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
<x>0</x>
<y>0</y>
<width>800</width>
<height>30</height>
<height>20</height>
</rect>
</property>
<widget class="QMenu" name="menu_help">
Expand Down Expand Up @@ -59,6 +59,8 @@
</property>
<addaction name="action_Configure_Debugger"/>
<addaction name="actionApplication_Working_Directory"/>
<addaction name="separator"/>
<addaction name="action_Reset_UI"/>
</widget>
<widget class="QMenu" name="menu_File">
<property name="title">
Expand Down Expand Up @@ -444,6 +446,11 @@
<string>Ctrl+B</string>
</property>
</action>
<action name="action_Reset_UI">
<property name="text">
<string>Reset UI</string>
</property>
</action>
</widget>
<resources/>
<connections>
Expand Down