diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2017-05-27 17:50:22 +0200 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2017-05-27 17:50:22 +0200 |
commit | 8221037c77be1f7c256b2575d4a9a4a9d58a9c0d (patch) | |
tree | d2e70f9603207dbebeb0238bf15af56e24af18dd /src/forms | |
parent | Filter code refactoring (diff) | |
download | smolbote-8221037c77be1f7c256b2575d4a9a4a9d58a9c0d.tar.xz |
Profile improvements
* Some code refactoring
* Profile dialog UI is now only created when needed
* Profile selector dialog
Diffstat (limited to 'src/forms')
-rw-r--r-- | src/forms/bookmarkswidget.cpp | 2 | ||||
-rw-r--r-- | src/forms/profilesdialog.cpp | 54 | ||||
-rw-r--r-- | src/forms/profilesdialog.h | 50 | ||||
-rw-r--r-- | src/forms/profilesdialog.ui | 74 |
4 files changed, 179 insertions, 1 deletions
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 <http://www.gnu.org/licenses/>. + ** + ******************************************************************************/ + +#include "profilesdialog.h" +#include "ui_profilesdialog.h" + +#include "browser.h" +#include <QListWidget> + +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 <http://www.gnu.org/licenses/>. + ** + ******************************************************************************/ + +#ifndef PROFILESDIALOG_H +#define PROFILESDIALOG_H + +#include <QDialog> + +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 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>ProfilesDialog</class> + <widget class="QDialog" name="ProfilesDialog"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>564</width> + <height>458</height> + </rect> + </property> + <property name="windowTitle"> + <string>Dialog</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <widget class="QListWidget" name="listWidget"/> + </item> + <item> + <widget class="QWidget" name="widget" native="true"/> + </item> + </layout> + </item> + <item> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> + </property> + </widget> + </item> + </layout> + </widget> + <resources/> + <connections> + <connection> + <sender>buttonBox</sender> + <signal>accepted()</signal> + <receiver>ProfilesDialog</receiver> + <slot>accept()</slot> + <hints> + <hint type="sourcelabel"> + <x>248</x> + <y>254</y> + </hint> + <hint type="destinationlabel"> + <x>157</x> + <y>274</y> + </hint> + </hints> + </connection> + <connection> + <sender>buttonBox</sender> + <signal>rejected()</signal> + <receiver>ProfilesDialog</receiver> + <slot>reject()</slot> + <hints> + <hint type="sourcelabel"> + <x>316</x> + <y>260</y> + </hint> + <hint type="destinationlabel"> + <x>286</x> + <y>274</y> + </hint> + </hints> + </connection> + </connections> +</ui> |