diff options
Diffstat (limited to 'Plugins/DbAndroid/dbandroid.h')
| -rw-r--r-- | Plugins/DbAndroid/dbandroid.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/Plugins/DbAndroid/dbandroid.h b/Plugins/DbAndroid/dbandroid.h new file mode 100644 index 0000000..68893d0 --- /dev/null +++ b/Plugins/DbAndroid/dbandroid.h @@ -0,0 +1,63 @@ +#ifndef DBANDROID_H +#define DBANDROID_H + +#include "dbandroid_global.h" +#include "plugins/dbplugin.h" +#include "plugins/genericplugin.h" +#include "config_builder.h" + +class AdbManager; +class DbAndroidConnectionFactory; + +CFG_CATEGORIES(DbAndroidConfig, + CFG_CATEGORY(DbAndroid, + CFG_ENTRY(QString, AdbPath, QString()) + ) +) + +class DBANDROIDSHARED_EXPORT DbAndroid : public GenericPlugin, public DbPlugin +{ + Q_OBJECT + SQLITESTUDIO_PLUGIN("dbandroid.json") + + public: + DbAndroid(); + + QString getLabel() const; + bool checkIfDbServedByPlugin(Db* db) const; + Db* getInstance(const QString& name, const QString& path, const QHash<QString, QVariant>& options, QString* errorMessage); + QList<DbPluginOption> getOptionsList() const; + QString generateDbName(const QVariant& baseValue); + bool init(); + void deinit(); + QString getCurrentAdb(); + AdbManager* getAdbManager() const; + bool isAdbValid() const; + DbAndroidConnectionFactory* getConnectionFactory() const; + + static_char* PASSWORD_OPT = "remote_access_password"; + + private: + void initAdb(); + QString askForAdbPath(); + + AdbManager* adbManager = nullptr; + DbAndroidConnectionFactory* connectionFactory = nullptr; + bool adbValid = false; + + static_char* SELECT_ADB_URL = "select_adb://"; + + CFG_LOCAL_PERSISTABLE(DbAndroidConfig, cfg) + + private slots: + void handleValidAdb(bool showMessage); + void handleInvalidAdb(); + void statusFieldLinkClicked(const QString& link); + void deviceListChanged(); + + signals: + void adbReady(bool showMessage); + void invalidAdb(); +}; + +#endif // DBANDROID_H |
