1 /**************************************************************************
2 * Otter Browser: Web browser controlled by the user, not vice-versa.
3 * Copyright (C) 2013 - 2017 Michal Dutkiewicz aka Emdek <michal@emdek.pl>
4 * Copyright (C) 2016 - 2017 Piotr Wójcik <chocimier@tlen.pl>
5 *
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 *
19 **************************************************************************/
20 
21 #ifndef OTTER_CONFIGURATIONOPTIONWIDGET_H
22 #define OTTER_CONFIGURATIONOPTIONWIDGET_H
23 
24 #include "../../../core/ActionsManager.h"
25 #include "../../../ui/Window.h"
26 
27 #include <QtWidgets/QWidget>
28 
29 namespace Otter
30 {
31 
32 class OptionWidget;
33 
34 class ConfigurationOptionWidget final : public QWidget
35 {
36 	Q_OBJECT
37 
38 public:
39 	explicit ConfigurationOptionWidget(Window *window, const ToolBarsManager::ToolBarDefinition::Entry &definition, QWidget *parent = nullptr);
40 
41 protected:
42 	enum OptionScope
43 	{
44 		WindowScope = 0,
45 		GlobalScope
46 	};
47 
48 protected slots:
49 	void handleOptionChanged(int option, const QVariant &value);
50 	void updateValue(int option);
51 	void setWindow(Window *window);
52 	void save();
53 
54 private:
55 	OptionWidget *m_optionWidget;
56 	QPointer<Window> m_window;
57 	OptionScope m_scope;
58 	int m_identifier;
59 };
60 
61 }
62 
63 #endif
64