#pragma once #include #include #include #include #include #include #include #include "buttonstruct.h" struct ConfigResponse; class ConfigRequest; struct Record2; class SoftwareRequest; typedef struct tagRecord{ int id; int sort; QString initial_position; QString app_id; bool locked; bool is_navbar; bool is_elite; QString type; QString category_id; QString logo; QString img; QString name; QString orig_name; QString version; QString dev; time_t create_time; time_t use_time; QString op; QString func; QString path; QString url; bool status; }Record; #include "netio.h" struct Categrory { int id; int total; QString name; bool display; int sort; }; class SQLiteHelper : public QObject { Q_OBJECT public: SQLiteHelper(QObject *parent = nullptr); bool update_software(); bool insert_software(QString name, QString orig_name, QString path, QString sort, bool* categories, QString logo="", QString img="",QString type="app",bool locked=false,QString op="soft",QString func="",QString url="",bool is_navbar=false,bool is_elite=false,QString dev=""); bool edit_software(QString name, QString orig_name, QString path, QString sort, bool* categories,QString type=""); bool get_software(QList* buttons, ConfigResponse* config_response); bool get_software(QList* button_structs,QString background_color , QString title_color, QString title_cover_color); bool update_app(); bool get_buttons(QList &buttons); bool get_category(QList& categrories, bool is_edit,bool all=false); bool set_category(QList& categrories); bool get_all_software(QList &softwares,int category); bool get_a_software(QString orig_name, Record2 *record); bool update_total();//警告:这个函数必须用于事务中 bool use_software(QString orig_name); QSqlDatabase db; ~SQLiteHelper(); private: QNetworkReply* reply; QEventLoop eventLoop; bool downloadSuccess; bool delete_software(QString orig_name); bool execute_query(QString sql, QList& softwares); void cancelDownload(); };