mirror of
https://github.com/epasveer/seer.git
synced 2026-08-29 16:40:42 +08:00
Add method to remember variable names when restarting a session.
This commit is contained in:
+5
-33
@@ -1452,40 +1452,12 @@ void SeerGdbWidget::handleGdbTerminateExecutable (bool confirm) {
|
|||||||
if (isGdbRuning() == true) {
|
if (isGdbRuning() == true) {
|
||||||
|
|
||||||
if (confirm) {
|
if (confirm) {
|
||||||
|
int result = QMessageBox::warning(this, "Seer",
|
||||||
|
QString("Terminate current session?"),
|
||||||
|
QMessageBox::Ok|QMessageBox::Cancel, QMessageBox::Cancel);
|
||||||
|
|
||||||
QSettings settings;
|
if (result == QMessageBox::Cancel) {
|
||||||
bool prompt = true;
|
break;
|
||||||
|
|
||||||
settings.beginGroup("mainwindow"); {
|
|
||||||
prompt = settings.value("promptterminate", prompt).toBool();
|
|
||||||
} settings.endGroup();
|
|
||||||
|
|
||||||
if (prompt) {
|
|
||||||
|
|
||||||
QMessageBox msgBox(this);
|
|
||||||
msgBox.setWindowTitle("Seer");
|
|
||||||
msgBox.setText("Terminate current session?");
|
|
||||||
msgBox.setIcon(QMessageBox::Question);
|
|
||||||
|
|
||||||
// Add "Don't ask again" checkbox
|
|
||||||
QCheckBox* dontAskAgainBox = new QCheckBox("Don't ask again", &msgBox);
|
|
||||||
msgBox.setCheckBox(dontAskAgainBox);
|
|
||||||
|
|
||||||
msgBox.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);
|
|
||||||
msgBox.setDefaultButton(QMessageBox::Ok);
|
|
||||||
|
|
||||||
int result = msgBox.exec();
|
|
||||||
|
|
||||||
// Save preference if checked
|
|
||||||
if (dontAskAgainBox->isChecked()) {
|
|
||||||
settings.beginGroup("mainwindow"); {
|
|
||||||
settings.setValue("promptterminate", false);
|
|
||||||
} settings.endGroup();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (result == QMessageBox::Cancel) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+43
-1
@@ -852,7 +852,45 @@ void SeerMainWindow::handleHelpAbout () {
|
|||||||
|
|
||||||
void SeerMainWindow::handleTerminateExecutable () {
|
void SeerMainWindow::handleTerminateExecutable () {
|
||||||
|
|
||||||
gdbWidget->handleGdbTerminateExecutable();
|
if (gdbWidget->isGdbRuning() == true) {
|
||||||
|
|
||||||
|
QSettings settings;
|
||||||
|
bool prompt = true;
|
||||||
|
|
||||||
|
settings.beginGroup("mainwindow"); {
|
||||||
|
prompt = settings.value("promptterminate", prompt).toBool();
|
||||||
|
} settings.endGroup();
|
||||||
|
|
||||||
|
if (prompt) {
|
||||||
|
|
||||||
|
QMessageBox msgBox(this);
|
||||||
|
msgBox.setWindowTitle("Seer");
|
||||||
|
msgBox.setText("Terminate current session?");
|
||||||
|
msgBox.setIcon(QMessageBox::Question);
|
||||||
|
|
||||||
|
// Add "Don't ask again" checkbox
|
||||||
|
QCheckBox* dontAskAgainBox = new QCheckBox("Don't ask again", &msgBox);
|
||||||
|
msgBox.setCheckBox(dontAskAgainBox);
|
||||||
|
|
||||||
|
msgBox.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);
|
||||||
|
msgBox.setDefaultButton(QMessageBox::Ok);
|
||||||
|
|
||||||
|
int result = msgBox.exec();
|
||||||
|
|
||||||
|
// Save preference if checked
|
||||||
|
if (dontAskAgainBox->isChecked()) {
|
||||||
|
settings.beginGroup("mainwindow"); {
|
||||||
|
settings.setValue("promptterminate", false);
|
||||||
|
} settings.endGroup();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (result == QMessageBox::Cancel) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
gdbWidget->handleGdbTerminateExecutable(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SeerMainWindow::handleRestartExecutable () {
|
void SeerMainWindow::handleRestartExecutable () {
|
||||||
@@ -899,6 +937,10 @@ void SeerMainWindow::handleRestartExecutable () {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (gdbWidget->isGdbRuning() == true) {
|
||||||
|
gdbWidget->handleGdbTerminateExecutable(false);
|
||||||
|
}
|
||||||
|
|
||||||
if (gdbWidget->isGdbRuning() == false && gdbWidget->hasBackupLaunchMode()) {
|
if (gdbWidget->isGdbRuning() == false && gdbWidget->hasBackupLaunchMode()) {
|
||||||
gdbWidget->restoreLaunchMode();
|
gdbWidget->restoreLaunchMode();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
#include <QtGui/QFontDatabase>
|
#include <QtGui/QFontDatabase>
|
||||||
#include <QtGui/QClipboard>
|
#include <QtGui/QClipboard>
|
||||||
#include <QtCore/QTimer>
|
#include <QtCore/QTimer>
|
||||||
|
#include <QtCore/QSettings>
|
||||||
#include <QtCore/QDebug>
|
#include <QtCore/QDebug>
|
||||||
|
|
||||||
SeerVariableTrackerBrowserWidget::SeerVariableTrackerBrowserWidget (QWidget* parent) : QWidget(parent) {
|
SeerVariableTrackerBrowserWidget::SeerVariableTrackerBrowserWidget (QWidget* parent) : QWidget(parent) {
|
||||||
@@ -39,6 +40,10 @@ SeerVariableTrackerBrowserWidget::SeerVariableTrackerBrowserWidget (QWidget* par
|
|||||||
QObject::connect(variablesTreeWidget, &QTreeWidget::itemExpanded, this, &SeerVariableTrackerBrowserWidget::handleItemExpanded);
|
QObject::connect(variablesTreeWidget, &QTreeWidget::itemExpanded, this, &SeerVariableTrackerBrowserWidget::handleItemExpanded);
|
||||||
QObject::connect(variablesTreeWidget, &QTreeWidget::itemEntered, this, &SeerVariableTrackerBrowserWidget::handleItemEntered);
|
QObject::connect(variablesTreeWidget, &QTreeWidget::itemEntered, this, &SeerVariableTrackerBrowserWidget::handleItemEntered);
|
||||||
QObject::connect(variablesTreeWidget, &QTreeWidget::customContextMenuRequested, this, &SeerVariableTrackerBrowserWidget::handleContextMenu);
|
QObject::connect(variablesTreeWidget, &QTreeWidget::customContextMenuRequested, this, &SeerVariableTrackerBrowserWidget::handleContextMenu);
|
||||||
|
QObject::connect(variableRememberToolButton, &QToolButton::toggled, this, &SeerVariableTrackerBrowserWidget::handleRememberToolButton);
|
||||||
|
|
||||||
|
// Read state.
|
||||||
|
readSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
SeerVariableTrackerBrowserWidget::~SeerVariableTrackerBrowserWidget () {
|
SeerVariableTrackerBrowserWidget::~SeerVariableTrackerBrowserWidget () {
|
||||||
@@ -240,6 +245,11 @@ void SeerVariableTrackerBrowserWidget::handleStoppingPointReached () {
|
|||||||
|
|
||||||
void SeerVariableTrackerBrowserWidget::handleSessionTerminated () {
|
void SeerVariableTrackerBrowserWidget::handleSessionTerminated () {
|
||||||
|
|
||||||
|
// Remember the variable names?
|
||||||
|
if (variableRememberToolButton->isChecked() == true) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Delete previous contents.
|
// Delete previous contents.
|
||||||
variablesTreeWidget->clear();
|
variablesTreeWidget->clear();
|
||||||
|
|
||||||
@@ -805,3 +815,31 @@ void SeerVariableTrackerBrowserWidget::handleContextMenu (const QPoint& pos) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SeerVariableTrackerBrowserWidget::handleRememberToolButton (bool checked) {
|
||||||
|
|
||||||
|
Q_UNUSED(checked);
|
||||||
|
|
||||||
|
writeSettings();
|
||||||
|
}
|
||||||
|
|
||||||
|
void SeerVariableTrackerBrowserWidget::readSettings () {
|
||||||
|
|
||||||
|
QSettings settings;
|
||||||
|
bool remember = false;
|
||||||
|
|
||||||
|
settings.beginGroup("variabletrackerwindow"); {
|
||||||
|
remember = settings.value("remembervariablenames", remember).toBool();
|
||||||
|
} settings.endGroup();
|
||||||
|
|
||||||
|
variableRememberToolButton->setChecked(remember);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SeerVariableTrackerBrowserWidget::writeSettings () {
|
||||||
|
|
||||||
|
QSettings settings;
|
||||||
|
|
||||||
|
settings.beginGroup("variabletrackerwindow"); {
|
||||||
|
settings.setValue("remembervariablenames", variableRememberToolButton->isChecked());
|
||||||
|
} settings.endGroup();
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ class SeerVariableTrackerBrowserWidget : public QWidget, protected Ui::SeerVaria
|
|||||||
void handleItemExpanded (QTreeWidgetItem* item);
|
void handleItemExpanded (QTreeWidgetItem* item);
|
||||||
void handleItemCollapsed (QTreeWidgetItem* item);
|
void handleItemCollapsed (QTreeWidgetItem* item);
|
||||||
void handleContextMenu (const QPoint& pos);
|
void handleContextMenu (const QPoint& pos);
|
||||||
|
void handleRememberToolButton (bool checked);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void refreshVariableTrackerNames ();
|
void refreshVariableTrackerNames ();
|
||||||
@@ -49,6 +50,8 @@ class SeerVariableTrackerBrowserWidget : public QWidget, protected Ui::SeerVaria
|
|||||||
void showEvent (QShowEvent* event);
|
void showEvent (QShowEvent* event);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
void readSettings ();
|
||||||
|
void writeSettings ();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,23 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QToolButton" name="variableRememberToolButton">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Remember variable names between sessions.</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="resource.qrc">
|
||||||
|
<normaloff>:/seer/resources/RelaxLightIcons/pin.svg</normaloff>:/seer/resources/RelaxLightIcons/pin.svg</iconset>
|
||||||
|
</property>
|
||||||
|
<property name="checkable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QToolButton" name="variableDeleteToolButton">
|
<widget class="QToolButton" name="variableDeleteToolButton">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
|
|||||||
@@ -59,6 +59,8 @@
|
|||||||
<file>resources/RelaxLightIcons/data-warning.svg</file>
|
<file>resources/RelaxLightIcons/data-warning.svg</file>
|
||||||
<file>resources/RelaxLightIcons/dialog-question.svg</file>
|
<file>resources/RelaxLightIcons/dialog-question.svg</file>
|
||||||
<file>resources/RelaxLightIcons/system-shutdown.svg</file>
|
<file>resources/RelaxLightIcons/system-shutdown.svg</file>
|
||||||
|
<file>resources/RelaxLightIcons/pin.svg</file>
|
||||||
|
<file>resources/RelaxLightIcons/lock.svg</file>
|
||||||
<file>resources/help/ThreadProcessInfoBrowser.md</file>
|
<file>resources/help/ThreadProcessInfoBrowser.md</file>
|
||||||
<file>resources/help/seergdb.hlp</file>
|
<file>resources/help/seergdb.hlp</file>
|
||||||
<file>resources/help/StructVisualizer.md</file>
|
<file>resources/help/StructVisualizer.md</file>
|
||||||
|
|||||||
Reference in New Issue
Block a user