Files
seer/src/SeerConfigDialog.cpp
T

127 lines
3.9 KiB
C++
Raw Normal View History

2021-12-20 18:04:53 -06:00
#include "SeerConfigDialog.h"
2021-12-19 11:11:42 -06:00
#include <QtWidgets/QListWidget>
#include <QtWidgets/QListWidgetItem>
#include <QtWidgets/QStackedWidget>
#include <QtCore/QDebug>
SeerConfigDialog::SeerConfigDialog(QWidget* parent) : QDialog(parent) {
// Set up the UI.
setupUi(this);
// Setup the widgets
contentsListWidget->setViewMode(QListView::IconMode);
contentsListWidget->setIconSize(QSize(96, 84));
contentsListWidget->setMovement(QListView::Static);
contentsListWidget->setMaximumWidth(128);
contentsListWidget->setSpacing(12);
2021-12-20 18:04:53 -06:00
// Create pages.
_gdbConfigPage = new SeerGdbConfigPage;
_editorConfigPage = new SeerEditorConfigPage;
_sourceConfigPage = new SeerSourceConfigPage;
_seerConfigPage = new SeerSeerConfigPage;
// Add the pages to the stacked widget.
pagesStackedWidget->addWidget(_gdbConfigPage);
pagesStackedWidget->addWidget(_editorConfigPage);
pagesStackedWidget->addWidget(_sourceConfigPage);
pagesStackedWidget->addWidget(_seerConfigPage);
2021-12-19 11:11:42 -06:00
// Create icons.
QListWidgetItem* configGdbButton = new QListWidgetItem(contentsListWidget);
configGdbButton->setIcon(QIcon(":/seer/resources/gdb.png"));
configGdbButton->setText(tr("GDB"));
configGdbButton->setTextAlignment(Qt::AlignHCenter);
configGdbButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
QListWidgetItem* configEditorButton = new QListWidgetItem(contentsListWidget);
configEditorButton->setIcon(QIcon(":/seer/resources/editor.png"));
configEditorButton->setText(tr("Editor"));
configEditorButton->setTextAlignment(Qt::AlignHCenter);
configEditorButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
2021-12-20 18:04:53 -06:00
QListWidgetItem* configSourceButton = new QListWidgetItem(contentsListWidget);
configSourceButton->setIcon(QIcon(":/seer/resources/source.png"));
configSourceButton->setText(tr("Source"));
configSourceButton->setTextAlignment(Qt::AlignHCenter);
configSourceButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
QListWidgetItem* configSeerButton = new QListWidgetItem(contentsListWidget);
configSeerButton->setIcon(QIcon(":/seer/resources/seer_128x128.png"));
configSeerButton->setText(tr("Seer"));
configSeerButton->setTextAlignment(Qt::AlignHCenter);
configSeerButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
2021-12-19 11:11:42 -06:00
// Connect things.
connect(contentsListWidget, &QListWidget::currentItemChanged, this, &SeerConfigDialog::changePage);
2021-12-20 18:04:53 -06:00
// Set to first page.
contentsListWidget->setCurrentRow(0);
2021-12-19 11:11:42 -06:00
}
SeerConfigDialog::~SeerConfigDialog() {
}
void SeerConfigDialog::changePage(QListWidgetItem* current, QListWidgetItem* previous) {
//qDebug() << __PRETTY_FUNCTION__ << ":" << current << previous;
if (!current) {
current = previous;
}
pagesStackedWidget->setCurrentIndex(contentsListWidget->row(current));
}
2021-12-26 14:57:58 -06:00
void SeerConfigDialog::setGdbProgram (const QString& program) {
_gdbConfigPage->setGdbProgram(program);
}
2021-12-20 20:28:00 -06:00
QString SeerConfigDialog::gdbProgram () const {
return _gdbConfigPage->gdbProgram();
}
2021-12-26 14:57:58 -06:00
void SeerConfigDialog::setGdbArguments (const QString& arguments) {
_gdbConfigPage->setGdbArguments(arguments);
}
2021-12-20 20:28:00 -06:00
QString SeerConfigDialog::gdbArguments () const {
return _gdbConfigPage->gdbArguments();
}
2021-12-26 14:57:58 -06:00
void SeerConfigDialog::setGdbAsyncMode (bool flag) {
2021-12-20 20:28:00 -06:00
2021-12-26 14:57:58 -06:00
_gdbConfigPage->setGdbAsyncMode(flag);
2021-12-20 20:28:00 -06:00
}
2021-12-26 14:57:58 -06:00
bool SeerConfigDialog::gdbAsyncMode () const {
2021-12-20 20:28:00 -06:00
2021-12-26 14:57:58 -06:00
return _gdbConfigPage->gdbAsyncMode();
2021-12-20 20:28:00 -06:00
}
2021-12-26 14:57:58 -06:00
void SeerConfigDialog::setEditorFont (const QFont& font) {
2021-12-20 20:28:00 -06:00
2021-12-26 14:57:58 -06:00
_editorConfigPage->setEditorFont(font);
2021-12-20 20:28:00 -06:00
}
2021-12-26 14:57:58 -06:00
const QFont& SeerConfigDialog::editorFont () const {
2021-12-20 20:28:00 -06:00
2021-12-26 14:57:58 -06:00
return _editorConfigPage->editorFont();
2021-12-20 20:28:00 -06:00
}
void SeerConfigDialog::setEditorHighlighterSettings (const SeerHighlighterSettings& settings) {
_editorConfigPage->setHighlighterSettings(settings);
}
const SeerHighlighterSettings& SeerConfigDialog::editorHighlighterSettings () const {
return _editorConfigPage->highlighterSettings();
}