Vidalia  0.3.1
PluginWrapper.h
Go to the documentation of this file.
1 /*
2 ** This file is part of Vidalia, and is subject to the license terms in the
3 ** LICENSE file, found in the top level directory of this distribution. If
4 ** you did not receive the LICENSE file with this file, you may obtain it
5 ** from the Vidalia source package distributed by the Vidalia Project at
6 ** http://www.torproject.org/projects/vidalia.html. No part of Vidalia,
7 ** including this file, may be copied, modified, propagated, or distributed
8 ** except according to the terms described in the LICENSE file.
9 */
10 
11 /*
12 ** \file PluginWrapper.h
13 ** \brief Wrapper for the plugin scripts
14 */
15 
16 #ifndef PLUGINWRAPPER_H
17 #define PLUGINWRAPPER_H
18 
19 #include <QtCore>
20 
21 #include "VidaliaTab.h"
22 
23 class PluginEngine;
24 
25 class PluginWrapper : public QObject {
26  Q_OBJECT
27 
28  public:
29  PluginWrapper(const QString &info_path, PluginEngine *engine, QObject *parent = 0);
31 
32  bool hasGUI();
33  bool isPersistent();
34 
35  QString name() const;
36  QString date() const;
37  QString author() const;
38  QString nspace() const;
39  QStringList files() const;
40 
41  QAction *menuAction();
42 
43  signals:
44  void pluginTab(VidaliaTab *);
45 
46  public slots:
47  void start();
48  void stop();
50 
51  private slots:
52  void emitPluginTab();
53 
54  protected:
55  void processInfo(const QString &path);
56  bool checkExceptions();
57 
59  QString _name, _date, _author;
61  QStringList _files;
62  QString _nspace;
63 
64  QAction *_action;
65 };
66 
67 #endif
68