19#include "ui_navigationbarconfigdialog.h"
27 : QDialog(navigationBar)
29 , m_navigationBar(navigationBar)
31 setAttribute(Qt::WA_DeleteOnClose);
35 connect(ui->buttonBox, &QDialogButtonBox::clicked,
this, &NavigationBarConfigDialog::buttonClicked);
40void NavigationBarConfigDialog::loadSettings()
42 auto createItem = [
this](
const NavigationBar::WidgetData &data) {
43 auto *item =
new QListWidgetItem();
44 item->setText(data.name);
45 item->setData(Qt::UserRole + 10, data.id);
48 ToolButton *button = qobject_cast<ToolButton*>(data.widget);
50 item->setIcon(button->
icon());
56 ui->currentItems->clear();
57 for (
const QString &
id : std::as_const(m_navigationBar->m_layoutIds)) {
58 NavigationBar::WidgetData data = m_navigationBar->m_widgets.value(
id);
59 if (data.id.isEmpty()) {
63 ui->currentItems->addItem(createItem(data));
66 ui->availableItems->clear();
67 for (
const NavigationBar::WidgetData &data : std::as_const(m_navigationBar->m_widgets)) {
68 if (!m_navigationBar->m_layoutIds.contains(data.id)) {
69 ui->availableItems->addItem(createItem(data));
73 ui->showSearchBar->setChecked(m_navigationBar->
webSearchBar()->isVisible());
76void NavigationBarConfigDialog::saveSettings()
79 for (
int i = 0;
i < ui->currentItems->count(); ++
i) {
80 ids.append(ui->currentItems->item(
i)->data(Qt::UserRole + 10).toString());
86 settings.
setValue(
QSL(
"ShowSearchBar"), ui->showSearchBar->isChecked());
89 const auto windows =
mApp->windows();
91 window->navigationBar()->loadSettings();
95void NavigationBarConfigDialog::resetToDefaults()
103 const auto windows =
mApp->windows();
105 window->navigationBar()->loadSettings();
109void NavigationBarConfigDialog::buttonClicked(QAbstractButton *button)
111 switch (ui->buttonBox->buttonRole(button)) {
112 case QDialogButtonBox::ApplyRole:
117 case QDialogButtonBox::RejectRole:
121 case QDialogButtonBox::ResetRole:
126 case QDialogButtonBox::AcceptRole:
NavigationBarConfigDialog(NavigationBar *navigationBar)
WebSearchBar * webSearchBar()
void beginGroup(const QString &prefix)
void remove(const QString &key)
void setValue(const QString &key, const QVariant &defaultValue=QVariant())