Dooble
dooble_accepted_or_blocked_domains.h
1 /*
2 ** Copyright (c) 2008 - present, Alexis Megas.
3 ** All rights reserved.
4 **
5 ** Redistribution and use in source and binary forms, with or without
6 ** modification, are permitted provided that the following conditions
7 ** are met:
8 ** 1. Redistributions of source code must retain the above copyright
9 ** notice, this list of conditions and the following disclaimer.
10 ** 2. Redistributions in binary form must reproduce the above copyright
11 ** notice, this list of conditions and the following disclaimer in the
12 ** documentation and/or other materials provided with the distribution.
13 ** 3. The name of the author may not be used to endorse or promote products
14 ** derived from Dooble without specific prior written permission.
15 **
16 ** DOOBLE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17 ** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18 ** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19 ** IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20 ** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21 ** NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22 ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23 ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25 ** DOOBLE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27 
28 #ifndef dooble_accepted_or_blocked_domains_h
29 #define dooble_accepted_or_blocked_domains_h
30 
31 #include <QMainWindow>
32 #include <QTimer>
33 
34 #include "ui_dooble_accepted_or_blocked_domains.h"
35 
36 class dooble_accepted_or_blocked_domains: public QMainWindow
37 {
38  Q_OBJECT
39 
40  public:
42  bool contains(const QString &domain) const;
43  bool exception(const QUrl &url) const;
44  void accept_or_block_domain(const QString &domain);
45  void new_exception(const QString &url);
46  void purge(void);
47 
48  public slots:
49  void show(void);
50  void showNormal(void);
51 
52  protected:
53  void closeEvent(QCloseEvent *event);
54  void keyPressEvent(QKeyEvent *event);
55  void resizeEvent(QResizeEvent *event);
56 
57  private:
58  QHash<QString, char> m_domains;
59  QHash<QString, char> m_exceptions;
60  QTimer m_search_timer;
61  Ui_dooble_accepted_or_blocked_domains m_ui;
62  void populate(void);
63  void populate_exceptions(void);
64  void save_blocked_domain(const QString &domain, bool state);
65  void save_exception(const QString &url, bool state);
66  void save_settings(void);
67 
68  private slots:
69  void slot_add(void);
70  void slot_delete_all_exceptions(void);
71  void slot_delete_selected(void);
72  void slot_delete_selected_exceptions(void);
73  void slot_exceptions_item_changed(QTableWidgetItem *item);
74  void slot_find(void);
75  void slot_import(void);
76  void slot_item_changed(QTableWidgetItem *item);
77  void slot_new_exception(const QString &url);
78  void slot_new_exception(void);
79  void slot_populate(void);
80  void slot_radio_button_toggled(bool state);
81  void slot_search_timer_timeout(void);
82 };
83 
84 #endif
Definition: dooble_accepted_or_blocked_domains.h:36