PIVX Core  5.6.99
P2P Digital Currency
pwidget.h
Go to the documentation of this file.
1 // Copyright (c) 2019-2020 The PIVX Core developers
2 // Distributed under the MIT software license, see the accompanying
3 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4 
5 #ifndef PIVX_QT_PWIDGET_H
6 #define PIVX_QT_PWIDGET_H
7 
8 #include "prunnable.h"
9 #include "walletmodel.h"
10 #include <QObject>
11 #include <QString>
12 #include <QWidget>
13 
14 class PIVXGUI;
15 class ClientModel;
16 class WalletModel;
17 class WorkerTask;
18 
19 namespace Ui {
20 class PWidget;
21 }
22 
24 {
25 public:
26  virtual QString translate(const char *msg) = 0;
27 };
28 
29 class PWidget : public QWidget, public Runnable, public Translator
30 {
31  Q_OBJECT
32 public:
33  explicit PWidget(PIVXGUI* _window = nullptr, QWidget *parent = nullptr);
34  explicit PWidget(PWidget *parent = nullptr);
35 
36  void setClientModel(ClientModel* model);
37  void setWalletModel(WalletModel* model);
38 
39  PIVXGUI* getWindow() { return this->window; }
40 
41  void run(int type) override;
42  void onError(QString error, int type) override;
43 
44  void inform(const QString& message);
45  void emitMessage(const QString& title, const QString& message, unsigned int style, bool* ret = nullptr);
46 
47  QString translate(const char *msg) override { return tr(msg); }
48 
49 Q_SIGNALS:
50  void message(const QString& title, const QString& body, unsigned int style, bool* ret = nullptr);
51  void showHide(bool show);
52  bool execDialog(QDialog *dialog, int xDiv = 3, int yDiv = 5);
53 
54 protected Q_SLOTS:
55  virtual void changeTheme(bool isLightTheme, QString &theme);
56  void onChangeTheme(bool isLightTheme, QString &theme);
57 
58 protected:
59  PIVXGUI* window = nullptr;
62 
63  virtual void loadClientModel();
64  virtual void loadWalletModel();
65 
66  void showHideOp(bool show);
67  bool execute(int type, std::unique_ptr<WalletModel::UnlockContext> pctx = nullptr);
68  void warn(const QString& title, const QString& message);
69  bool ask(const QString& title, const QString& message);
70  void showDialog(QDialog *dialog, int xDiv = 3, int yDiv = 5);
71 
72 private:
73  QSharedPointer<WorkerTask> task;
74 
75  void init();
76 private Q_SLOTS:
77  void errorString(QString, int);
78 
79 };
80 
81 #endif // PIVX_QT_PWIDGET_H
Model for PIVX network client.
Definition: clientmodel.h:50
PIVX GUI main class.
Definition: pivxgui.h:46
QSharedPointer< WorkerTask > task
Definition: pwidget.h:73
void setClientModel(ClientModel *model)
Definition: pwidget.cpp:21
PIVXGUI * window
Definition: pwidget.h:59
void inform(const QString &message)
Definition: pwidget.cpp:45
WalletModel * walletModel
Definition: pwidget.h:61
void setWalletModel(WalletModel *model)
Definition: pwidget.cpp:27
void showDialog(QDialog *dialog, int xDiv=3, int yDiv=5)
Definition: pwidget.cpp:62
PWidget(PIVXGUI *_window=nullptr, QWidget *parent=nullptr)
Definition: pwidget.cpp:12
void onError(QString error, int type) override
Definition: pwidget.cpp:134
void warn(const QString &title, const QString &message)
Definition: pwidget.cpp:50
ClientModel * clientModel
Definition: pwidget.h:60
bool execute(int type, std::unique_ptr< WalletModel::UnlockContext > pctx=nullptr)
Definition: pwidget.cpp:94
QString translate(const char *msg) override
Definition: pwidget.h:47
PIVXGUI * getWindow()
Definition: pwidget.h:39
void run(int type) override
Definition: pwidget.cpp:133
bool execDialog(QDialog *dialog, int xDiv=3, int yDiv=5)
void showHideOp(bool show)
Definition: pwidget.cpp:40
void message(const QString &title, const QString &body, unsigned int style, bool *ret=nullptr)
void showHide(bool show)
void init()
Definition: pwidget.cpp:15
virtual void loadWalletModel()
Definition: pwidget.cpp:131
void errorString(QString, int)
Definition: pwidget.cpp:119
void onChangeTheme(bool isLightTheme, QString &theme)
Definition: pwidget.cpp:33
bool ask(const QString &title, const QString &message)
Definition: pwidget.cpp:55
virtual void loadClientModel()
Definition: pwidget.cpp:130
virtual void changeTheme(bool isLightTheme, QString &theme)
Definition: pwidget.cpp:132
void emitMessage(const QString &title, const QString &message, unsigned int style, bool *ret=nullptr)
Definition: pwidget.cpp:67
virtual QString translate(const char *msg)=0
Interface to PIVX wallet from Qt view code.
Definition: walletmodel.h:109
bool isLightTheme()
Definition: qtutils.cpp:210
bool error(const char *fmt, const Args &... args)
Definition: system.h:77