Introduce a config resolver (#2244)

* Add config resolver

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Enable resolver even when using systray

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Fix bugs

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Do not show resolver for shortcut conflicts

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Fix build error on MacOS and Windows

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Add missing translations

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Replace variable i with row

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Improve presentation

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Disambiguate shortcuts and general settings

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Wrap some strings in tr

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Update tooltips in ConfigResolver

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
This commit is contained in:
Haris Gušić
2022-01-13 23:01:56 +01:00
committed by GitHub
parent 563a479552
commit 417a1534cf
11 changed files with 385 additions and 141 deletions

View File

@@ -0,0 +1,42 @@
#include "src/config/configerrordetails.h"
#include "src/utils/abstractlogger.h"
#include "src/utils/confighandler.h"
#include <QApplication>
#include <QDialogButtonBox>
#include <QTextEdit>
#include <QVBoxLayout>
ConfigErrorDetails::ConfigErrorDetails(QWidget* parent)
: QDialog(parent)
{
// Generate error log message
QString str;
AbstractLogger stream(str, AbstractLogger::Error);
ConfigHandler().checkForErrors(&stream);
// Set up dialog
setWindowTitle(tr("Configuration errors"));
setLayout(new QVBoxLayout(this));
// Add text display
QTextEdit* textDisplay = new QTextEdit(this);
textDisplay->setPlainText(str);
textDisplay->setReadOnly(true);
layout()->addWidget(textDisplay);
// Add Ok button
using BBox = QDialogButtonBox;
BBox* buttons = new BBox(BBox::Ok);
layout()->addWidget(buttons);
connect(buttons, &BBox::clicked, this, [this]() { close(); });
show();
qApp->processEvents();
QPoint center = geometry().center();
QRect dialogRect(0, 0, 600, 400);
dialogRect.moveCenter(center);
setGeometry(dialogRect);
}