From 8221037c77be1f7c256b2575d4a9a4a9d58a9c0d Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Sat, 27 May 2017 17:50:22 +0200 Subject: Profile improvements * Some code refactoring * Profile dialog UI is now only created when needed * Profile selector dialog --- src/forms/bookmarkswidget.cpp | 2 +- src/forms/profilesdialog.cpp | 54 +++++++++++++++++++++++++++++++ src/forms/profilesdialog.h | 50 +++++++++++++++++++++++++++++ src/forms/profilesdialog.ui | 74 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 179 insertions(+), 1 deletion(-) create mode 100644 src/forms/profilesdialog.cpp create mode 100644 src/forms/profilesdialog.h create mode 100644 src/forms/profilesdialog.ui (limited to 'src/forms') diff --git a/src/forms/bookmarkswidget.cpp b/src/forms/bookmarkswidget.cpp index ffb5d6c..9a43224 100644 --- a/src/forms/bookmarkswidget.cpp +++ b/src/forms/bookmarkswidget.cpp @@ -89,7 +89,7 @@ void BookmarksWidget::openItem(QTreeWidgetItem *item, int column) Q_UNUSED(column) if(window) { - window->addNewTab(QUrl::fromUserInput(item->text(1))); + window->newTab(QUrl::fromUserInput(item->text(1))); } else { qWarning("Trying to open a link without a MainWindow set"); } diff --git a/src/forms/profilesdialog.cpp b/src/forms/profilesdialog.cpp new file mode 100644 index 0000000..c77208d --- /dev/null +++ b/src/forms/profilesdialog.cpp @@ -0,0 +1,54 @@ +/******************************************************************************* + ** + ** smolbote: yet another qute browser + ** Copyright (C) 2017 Xian Nox + ** + ** This program is free software: you can redistribute it and/or modify + ** it under the terms of the GNU General Public License as published by + ** the Free Software Foundation, either version 3 of the License, or + ** (at your option) any later version. + ** + ** This program is distributed in the hope that it will be useful, + ** but WITHOUT ANY WARRANTY; without even the implied warranty of + ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + ** GNU General Public License for more details. + ** + ** You should have received a copy of the GNU General Public License + ** along with this program. If not, see . + ** + ******************************************************************************/ + +#include "profilesdialog.h" +#include "ui_profilesdialog.h" + +#include "browser.h" +#include + +ProfilesDialog::ProfilesDialog(MainWindow *window, QWidget *parent) : + QDialog(parent), + ui(new Ui::ProfilesDialog) +{ + ui->setupUi(this); + m_window = window; + + connect(this, SIGNAL(accepted()), this, SLOT(loadSelectedProfile())); +} + +ProfilesDialog::~ProfilesDialog() +{ + delete ui; +} + +int ProfilesDialog::exec() +{ + qDebug("Showing..."); + for(QString name : qApp->profiles()) { + ui->listWidget->addItem(name); + } + return QDialog::exec(); +} + +void ProfilesDialog::loadSelectedProfile() +{ + m_window->setProfile(qApp->profile(ui->listWidget->currentItem()->text())); +} diff --git a/src/forms/profilesdialog.h b/src/forms/profilesdialog.h new file mode 100644 index 0000000..bb6655b --- /dev/null +++ b/src/forms/profilesdialog.h @@ -0,0 +1,50 @@ +/******************************************************************************* + ** + ** smolbote: yet another qute browser + ** Copyright (C) 2017 Xian Nox + ** + ** This program is free software: you can redistribute it and/or modify + ** it under the terms of the GNU General Public License as published by + ** the Free Software Foundation, either version 3 of the License, or + ** (at your option) any later version. + ** + ** This program is distributed in the hope that it will be useful, + ** but WITHOUT ANY WARRANTY; without even the implied warranty of + ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + ** GNU General Public License for more details. + ** + ** You should have received a copy of the GNU General Public License + ** along with this program. If not, see . + ** + ******************************************************************************/ + +#ifndef PROFILESDIALOG_H +#define PROFILESDIALOG_H + +#include + +namespace Ui { +class ProfilesDialog; +} + +class MainWindow; +class ProfilesDialog : public QDialog +{ + Q_OBJECT + +public: + explicit ProfilesDialog(MainWindow *window, QWidget *parent = 0); + ~ProfilesDialog(); + +public slots: + int exec(); + +private slots: + void loadSelectedProfile(); + +private: + Ui::ProfilesDialog *ui; + MainWindow *m_window; +}; + +#endif // PROFILESDIALOG_H diff --git a/src/forms/profilesdialog.ui b/src/forms/profilesdialog.ui new file mode 100644 index 0000000..880e441 --- /dev/null +++ b/src/forms/profilesdialog.ui @@ -0,0 +1,74 @@ + + + ProfilesDialog + + + + 0 + 0 + 564 + 458 + + + + Dialog + + + + + + + + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + buttonBox + accepted() + ProfilesDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + ProfilesDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + -- cgit v1.2.1