diff --git a/core_form/frmalbum/frmalbum.cpp b/core_form/frmalbum/frmalbum.cpp index 1705316..e20b65f 100644 --- a/core_form/frmalbum/frmalbum.cpp +++ b/core_form/frmalbum/frmalbum.cpp @@ -13,10 +13,27 @@ FrmAlbum::~FrmAlbum() delete ui; } +void FrmAlbum::slot_updateImage() +{ + QList urls = { + QUrl("https://imagehyj.oss-cn-hangzhou.aliyuncs.com/blog/20250320201317.png"), + QUrl("https://imagehyj.oss-cn-hangzhou.aliyuncs.com/blog/EDH386.jpeg"), + QUrl("https://imagehyj.oss-cn-hangzhou.aliyuncs.com/blog/20250321103557.png"), + QUrl("https://imagehyj.oss-cn-hangzhou.aliyuncs.com/blog/logo512.png") + }; + + foreach (const QUrl& u, urls) { + FrmImgShow* widget = new FrmImgShow(this); + widget->loadImage(u); + picWidgetList.push_front(widget); + } +} + void FrmAlbum::initForm() { layout = new QHBoxLayout(this); panelWidget = new PanelWidget(this); + panelWidget->setSpace(5); layout->addWidget(panelWidget); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); @@ -34,6 +51,7 @@ void FrmAlbum::initForm() QUrl("https://imagehyj.oss-cn-hangzhou.aliyuncs.com/blog/20250320201317.png"), QUrl("https://imagehyj.oss-cn-hangzhou.aliyuncs.com/blog/EDH386.jpeg"), QUrl("https://imagehyj.oss-cn-hangzhou.aliyuncs.com/blog/20250321103557.png"), + QUrl("https://imagehyj.oss-cn-hangzhou.aliyuncs.com/blog/logo512.png") }; foreach (const QUrl& u, urls) { @@ -42,5 +60,6 @@ void FrmAlbum::initForm() picWidgetList.push_front(widget); } - panelWidget->setWidget(picWidgetList, 3); + panelWidget->setWidget(picWidgetList, 4); + panelWidget->setSpace(15); } diff --git a/core_form/frmalbum/frmalbum.h b/core_form/frmalbum/frmalbum.h index a8f2441..db81558 100644 --- a/core_form/frmalbum/frmalbum.h +++ b/core_form/frmalbum/frmalbum.h @@ -18,6 +18,9 @@ public: explicit FrmAlbum(QWidget *parent = nullptr); ~FrmAlbum(); +public slots: + void slot_updateImage(); + private: Ui::FrmAlbum *ui; QList picWidgetList; diff --git a/core_form/frmimgshow/frmimgshow.cpp b/core_form/frmimgshow/frmimgshow.cpp index e4736b7..ed649e1 100644 --- a/core_form/frmimgshow/frmimgshow.cpp +++ b/core_form/frmimgshow/frmimgshow.cpp @@ -32,7 +32,18 @@ void FrmImgShow::loadImage(const QUrl &imageUrl) void FrmImgShow::setImage(const QPixmap &pixmap) { qDebug() << "setImage"; - labImg->setPixmap(pixmap.scaled(200, 200, Qt::KeepAspectRatio, Qt::SmoothTransformation)); + // int h = pixmap.height(); + // int w = pixmap.width(); + // int sh, sw; + // if (h >= w) { + // sh = 140; + // sw = w * h / 140; + // } + // else { + // sw = 140; + // sh = h * w /140; + // } + labImg->setPixmap(pixmap.scaled(this->labImg->width(), this->labImg->height())); } void FrmImgShow::setLoadingState(bool loading) @@ -46,38 +57,38 @@ QSize FrmImgShow::sizeHint() return QSize(300, 300); } -// bool FrmImgShow::eventFilter(QObject *watched, QEvent *event) -// { - // if (watched == btnCopy) { - // if (event->type() == QEvent::Enter) { - // btnCopy->setIcon(QIcon(QPixmap(":/qrc/image/copy_blue.png"))); - // return true; - // } - // else if (event->type() == QEvent::Leave) { - // btnCopy->setIcon(QIcon(QPixmap(":/qrc/image/copy_white.png"))); - // return true; - // } - // else { - // return false; - // } - // } +bool FrmImgShow::eventFilter(QObject *watched, QEvent *event) +{ + if (watched == btnCopy) { + if (event->type() == QEvent::Enter) { + btnCopy->setIcon(QIcon(QPixmap(":/qrc/image/copy_blue.png"))); + return true; + } + else if (event->type() == QEvent::Leave) { + btnCopy->setIcon(QIcon(QPixmap(":/qrc/image/copy_white.png"))); + return true; + } + else { + return false; + } + } - // if (watched == btnDelete) { - // if (event->type() == QEvent::Enter) { - // btnDelete->setIcon(QIcon(QPixmap(":/qrc/image/delete_red.png"))); - // return true; - // } - // else if (event->type() == QEvent::Leave) { - // btnDelete->setIcon(QIcon(QPixmap(":/qrc/image/delete_white.png"))); - // return true; - // } - // else { - // return false; - // } - // } + if (watched == btnDelete) { + if (event->type() == QEvent::Enter) { + btnDelete->setIcon(QIcon(QPixmap(":/qrc/image/delete_red.png"))); + return true; + } + else if (event->type() == QEvent::Leave) { + btnDelete->setIcon(QIcon(QPixmap(":/qrc/image/delete_white.png"))); + return true; + } + else { + return false; + } + } - // return QWidget::eventFilter(watched, event); -// } + return QWidget::eventFilter(watched, event); +} void FrmImgShow::onFinished(QNetworkReply *reply) { @@ -91,39 +102,58 @@ void FrmImgShow::onFinished(QNetworkReply *reply) void FrmImgShow::initForm() { - labImg = new QLabel(this); - // btnCopy = new QPushButton(this); - // btnCopy->setMaximumHeight(18); - // btnDelete = new QPushButton(this); - // btnDelete->setMaximumHeight(18); - // horizenSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); - // hLayout = new QHBoxLayout(); + this->setWindowFlag(Qt::FramelessWindowHint); + this->setWindowFlags(this->windowFlags() | Qt::WindowSystemMenuHint | Qt::WindowMinMaxButtonsHint); + setAttribute(Qt::WA_TranslucentBackground); + + vLayout = new QVBoxLayout(this); + setLayout(vLayout); + labImg = new QLabel(); + btnCopy = new QPushButton(); + btnCopy->setMinimumSize(22, 22); + btnCopy->setFlat(true); + btnCopy->setIcon(QIcon(":/qrc/image/copy_white.png")); + + btnCopy->installEventFilter(this); + + btnDelete = new QPushButton(); + btnDelete->setMinimumSize(22, 22); + btnDelete->setFlat(true); + btnDelete->setIcon(QIcon(":/qrc/image/delete_white.png")); + btnDelete->installEventFilter(this); + + horizenSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + hLayout = new QHBoxLayout(); + + ckbSelect = new QCheckBox(); + // ckbSelect->setMinimumSize(20, 20); + // ckbSelect->setStyleSheet("border:1px solid white;border-radius:5px"); + ckbSelect->setStyleSheet("border-style:none;"); + + hLayout->addWidget(btnCopy); + hLayout->addWidget(btnDelete); + hLayout->setContentsMargins(0, 0, 0, 0); + hLayout->addSpacerItem(horizenSpacer); + hLayout->addWidget(ckbSelect); + hLayout->setSpacing(0); - // ckbSelect = new QCheckBox(this); - // ckbSelect->setMaximumHeight(18); - // hLayout->addWidget(btnCopy); - // hLayout->addWidget(btnDelete); - // hLayout->setContentsMargins(0, 0, 0, 0); - // hLayout->addSpacerItem(horizenSpacer); - // hLayout->addWidget(ckbSelect); - vLayout = new QVBoxLayout(); vLayout->addWidget(labImg); - // vLayout->addLayout(hLayout); + vLayout->addLayout(hLayout); vLayout->setContentsMargins(0, 0, 0, 0); - // vLayout->addLayout(vLayout); - this->setLayout(vLayout); + // btnCopy->setIcon(QIcon(QPixmap(":/qrc/image/copy_white.png"))); // btnDelete->setIcon(QIcon(QPixmap(":/qrc/image/delete_white.png"))); // btnCopy->setFixedSize(32, 32); // btnCopy->setCursor(Qt::PointingHandCursor); - setStyleSheet("background-color: #FF0000;border: 1px solid white"); + // setStyleSheet("background-color: #FF0000;border: 1px solid white"); - setFixedSize(140, 160); + setFixedSize(134, 160); - this->labImg->setFixedSize(140, 140); + + this->labImg->setMinimumSize(130, 130); } void FrmImgShow::initWidget() diff --git a/core_form/frmimgshow/frmimgshow.h b/core_form/frmimgshow/frmimgshow.h index 385f4e3..37526c6 100644 --- a/core_form/frmimgshow/frmimgshow.h +++ b/core_form/frmimgshow/frmimgshow.h @@ -37,7 +37,7 @@ private: QVBoxLayout* vLayout; protected: - // virtual bool eventFilter(QObject* watched, QEvent* event); + virtual bool eventFilter(QObject* watched, QEvent* event); private slots: void onFinished(QNetworkReply *reply); diff --git a/core_support/tchttpservice/tchttpservice.cpp b/core_support/tchttpservice/tchttpservice.cpp index 70b78b7..928d1cb 100644 --- a/core_support/tchttpservice/tchttpservice.cpp +++ b/core_support/tchttpservice/tchttpservice.cpp @@ -49,6 +49,7 @@ void TCHttpService::apiLogin() this->m_token = jsonObj["token"].toString(); qDebug() << this->m_token; m_isOnline = true; + ImageManager::instance()->addDomainUser(m_domain, m_userName); emit signal_loginSuc(); } diff --git a/core_support/tchttpservice/tchttpservice.h b/core_support/tchttpservice/tchttpservice.h index c917294..ee0100f 100644 --- a/core_support/tchttpservice/tchttpservice.h +++ b/core_support/tchttpservice/tchttpservice.h @@ -19,19 +19,13 @@ #include #include #include +#include "urldatabase.h" class TCHttpService : public QObject { Q_OBJECT private: - typedef struct { - QString file_name; - int share_status; - QString url; - qint64 size; - } file_info_t; - QMap m_fileMap; public: static TCHttpService* getInstance(); diff --git a/core_support/urldatabase/urldatabase.cpp b/core_support/urldatabase/urldatabase.cpp index 77180de..169ca36 100644 --- a/core_support/urldatabase/urldatabase.cpp +++ b/core_support/urldatabase/urldatabase.cpp @@ -1,217 +1,217 @@ -#include "urldatabase.h" +#include "urldatabase.h".h" +#include +#include +#include -ImageUrlDatabase::ImageUrlDatabase(QObject *parent) : QObject(parent) +ImageManager* ImageManager::m_instance = nullptr; +QMutex ImageManager::m_mutex; + +ImageManager::ImageManager(QObject *parent) : QObject(parent) { + } -ImageUrlDatabase::~ImageUrlDatabase() +ImageManager::~ImageManager() { if (m_db.isOpen()) { m_db.close(); } } -bool ImageUrlDatabase::openDatabase(const QString &path) +ImageManager* ImageManager::instance() { - m_db = QSqlDatabase::addDatabase("QSQLITE"); - m_db.setDatabaseName(path); + QMutexLocker locker(&m_mutex); + if (!m_instance) { + m_instance = new ImageManager(); + } + return m_instance; +} + +bool ImageManager::initialize(const QString &dbPath) +{ + m_db = QSqlDatabase::addDatabase("QSQLITE", "image_manager_connection"); + m_db.setDatabaseName(dbPath); if (!m_db.open()) { qWarning() << "Failed to open database:" << m_db.lastError().text(); return false; } - // 创建表结构 - QSqlQuery query; + return createTables(); +} + +bool ImageManager::createTables() +{ + QSqlQuery query(m_db); + + // 创建域名表 + if (!query.exec("CREATE TABLE IF NOT EXISTS domains (" + "domain_id INTEGER PRIMARY KEY AUTOINCREMENT, " + "domain TEXT NOT NULL UNIQUE)")) { + qWarning() << "Failed to create domains table:" << query.lastError().text(); + return false; + } // 创建用户表 if (!query.exec("CREATE TABLE IF NOT EXISTS users (" "user_id INTEGER PRIMARY KEY AUTOINCREMENT, " - "username TEXT NOT NULL UNIQUE, " - "created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP)")) { + "username TEXT NOT NULL UNIQUE)")) { qWarning() << "Failed to create users table:" << query.lastError().text(); return false; } - // 创建服务器表 - if (!query.exec("CREATE TABLE IF NOT EXISTS servers (" - "server_id INTEGER PRIMARY KEY AUTOINCREMENT, " - "domain TEXT NOT NULL UNIQUE, " - "created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP)")) { - qWarning() << "Failed to create servers table:" << query.lastError().text(); + // 创建域名-用户关联表(确保唯一) + if (!query.exec("CREATE TABLE IF NOT EXISTS domain_users (" + "id INTEGER PRIMARY KEY AUTOINCREMENT, " + "domain_id INTEGER NOT NULL, " + "user_id INTEGER NOT NULL, " + "UNIQUE(domain_id, user_id), " + "FOREIGN KEY(domain_id) REFERENCES domains(domain_id), " + "FOREIGN KEY(user_id) REFERENCES users(user_id))")) { + qWarning() << "Failed to create domain_users table:" << query.lastError().text(); return false; } // 创建图片URL表 if (!query.exec("CREATE TABLE IF NOT EXISTS image_urls (" "url_id INTEGER PRIMARY KEY AUTOINCREMENT, " - "user_id INTEGER NOT NULL, " - "server_id INTEGER NOT NULL, " + "domain_user_id INTEGER NOT NULL, " "image_url TEXT NOT NULL, " - "last_accessed TIMESTAMP, " - "created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, " - "FOREIGN KEY (user_id) REFERENCES users(user_id), " - "FOREIGN KEY (server_id) REFERENCES servers(server_id), " - "UNIQUE(user_id, server_id, image_url))")) { + "upload_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, " + "FOREIGN KEY(domain_user_id) REFERENCES domain_users(id), " + "UNIQUE(domain_user_id, image_url))")) { qWarning() << "Failed to create image_urls table:" << query.lastError().text(); return false; } - // 创建索引 - query.exec("CREATE INDEX IF NOT EXISTS idx_image_user ON image_urls(user_id)"); - query.exec("CREATE INDEX IF NOT EXISTS idx_image_server ON image_urls(server_id)"); - return true; } -int ImageUrlDatabase::addUser(const QString &username) +bool ImageManager::addDomain(const QString &domain) { - QSqlQuery query; + QSqlQuery query(m_db); + query.prepare("INSERT OR IGNORE INTO domains (domain) VALUES (?)"); + query.addBindValue(domain); + return query.exec(); +} + +bool ImageManager::addUser(const QString &user) +{ + QSqlQuery query(m_db); query.prepare("INSERT OR IGNORE INTO users (username) VALUES (?)"); - query.addBindValue(username); - - if (!query.exec()) { - qWarning() << "Failed to add user:" << query.lastError().text(); - return -1; - } - - // 获取用户ID - return getUserId(username); + query.addBindValue(user); + return query.exec(); } -int ImageUrlDatabase::getUserId(const QString &username) +int ImageManager::getDomainId(const QString &domain) { - QSqlQuery query; + QSqlQuery query(m_db); + query.prepare("SELECT domain_id FROM domains WHERE domain = ?"); + query.addBindValue(domain); + if (query.exec() && query.next()) { + return query.value(0).toInt(); + } + return -1; +} + +int ImageManager::getUserId(const QString &user) +{ + QSqlQuery query(m_db); query.prepare("SELECT user_id FROM users WHERE username = ?"); - query.addBindValue(username); - - if (!query.exec() || !query.next()) { - return -1; + query.addBindValue(user); + if (query.exec() && query.next()) { + return query.value(0).toInt(); } - - return query.value(0).toInt(); + return -1; } -int ImageUrlDatabase::addServer(const QString &domain) +bool ImageManager::addDomainUser(const QString &domain, const QString &user) { - QSqlQuery query; - query.prepare("INSERT OR IGNORE INTO servers (domain) VALUES (?)"); - query.addBindValue(domain); - - if (!query.exec()) { - qWarning() << "Failed to add server:" << query.lastError().text(); - return -1; - } - - // 获取服务器ID - return getServerId(domain); -} - -int ImageUrlDatabase::getServerId(const QString &domain) -{ - QSqlQuery query; - query.prepare("SELECT server_id FROM servers WHERE domain = ?"); - query.addBindValue(domain); - - if (!query.exec() || !query.next()) { - return -1; - } - - return query.value(0).toInt(); -} - -bool ImageUrlDatabase::addImageUrl(const QString &username, const QString &domain, const QString &imageUrl) -{ - int userId = addUser(username); - if (userId == -1) return false; - - int serverId = addServer(domain); - if (serverId == -1) return false; - - QSqlQuery query; - query.prepare("INSERT OR REPLACE INTO image_urls (user_id, server_id, image_url, last_accessed) " - "VALUES (?, ?, ?, datetime('now'))"); - query.addBindValue(userId); - query.addBindValue(serverId); - query.addBindValue(imageUrl); - - if (!query.exec()) { - qWarning() << "Failed to add image URL:" << query.lastError().text(); + if (!addDomain(domain) || !addUser(user)) { return false; } - return true; -} + int domainId = getDomainId(domain); + int userId = getUserId(user); -QList ImageUrlDatabase::getUserImages(const QString &username) -{ - QList result; - int userId = getUserId(username); - - if (userId == -1) return result; - - QSqlQuery query; - query.prepare("SELECT i.image_url FROM image_urls i " - "WHERE i.user_id = ? " - "ORDER BY i.last_accessed DESC"); - query.addBindValue(userId); - - if (!query.exec()) { - qWarning() << "Failed to get user images:" << query.lastError().text(); - return result; - } - - while (query.next()) { - result.append(query.value(0).toString()); - } - - return result; -} - -QList ImageUrlDatabase::getServerImages(const QString &domain) -{ - QList result; - int serverId = getServerId(domain); - - if (serverId == -1) return result; - - QSqlQuery query; - query.prepare("SELECT i.image_url FROM image_urls i " - "WHERE i.server_id = ? " - "ORDER BY i.last_accessed DESC"); - query.addBindValue(serverId); - - if (!query.exec()) { - qWarning() << "Failed to get server images:" << query.lastError().text(); - return result; - } - - while (query.next()) { - result.append(query.value(0).toString()); - } - - return result; -} - -bool ImageUrlDatabase::updateLastAccessed(const QString &username, const QString &domain, const QString &imageUrl) -{ - int userId = getUserId(username); - if (userId == -1) return false; - - int serverId = getServerId(domain); - if (serverId == -1) return false; - - QSqlQuery query; - query.prepare("UPDATE image_urls SET last_accessed = datetime('now') " - "WHERE user_id = ? AND server_id = ? AND image_url = ?"); - query.addBindValue(userId); - query.addBindValue(serverId); - query.addBindValue(imageUrl); - - if (!query.exec()) { - qWarning() << "Failed to update last accessed time:" << query.lastError().text(); + if (domainId == -1 || userId == -1) { return false; } - return query.numRowsAffected() > 0; + QSqlQuery query(m_db); + query.prepare("INSERT OR IGNORE INTO domain_users (domain_id, user_id) VALUES (?, ?)"); + query.addBindValue(domainId); + query.addBindValue(userId); + return query.exec(); +} + +bool ImageManager::addImageUrl(const QString &domain, const QString &user, const QUrl &imageUrl) +{ + int domainId = getDomainId(domain); + int userId = getUserId(user); + + if (domainId == -1 || userId == -1) { + return false; + } + + QSqlQuery query(m_db); + query.prepare("SELECT id FROM domain_users WHERE domain_id = ? AND user_id = ?"); + query.addBindValue(domainId); + query.addBindValue(userId); + + if (!query.exec() || !query.next()) { + return false; + } + + int domainUserId = query.value(0).toInt(); + + query.prepare("INSERT OR IGNORE INTO image_urls (domain_user_id, image_url) VALUES (?, ?)"); + query.addBindValue(domainUserId); + query.addBindValue(imageUrl.toString()); + return query.exec(); +} + +QList ImageManager::getImageUrls(const QString &domain, const QString &user) +{ + QList urls; + + int domainId = getDomainId(domain); + int userId = getUserId(user); + + if (domainId == -1 || userId == -1) { + return urls; + } + + QSqlQuery query(m_db); + query.prepare("SELECT i.image_url FROM image_urls i " + "JOIN domain_users du ON i.domain_user_id = du.id " + "WHERE du.domain_id = ? AND du.user_id = ? " + "ORDER BY i.upload_time DESC"); + query.addBindValue(domainId); + query.addBindValue(userId); + + if (query.exec()) { + while (query.next()) { + urls.append(QUrl(query.value(0).toString())); + } + } + + return urls; +} + +bool ImageManager::containsDomainUser(const QString &domain, const QString &user) +{ + int domainId = getDomainId(domain); + int userId = getUserId(user); + + if (domainId == -1 || userId == -1) { + return false; + } + + QSqlQuery query(m_db); + query.prepare("SELECT 1 FROM domain_users WHERE domain_id = ? AND user_id = ?"); + query.addBindValue(domainId); + query.addBindValue(userId); + + return query.exec() && query.next(); } diff --git a/core_support/urldatabase/urldatabase.h b/core_support/urldatabase/urldatabase.h index ce24969..050c4fc 100644 --- a/core_support/urldatabase/urldatabase.h +++ b/core_support/urldatabase/urldatabase.h @@ -6,34 +6,50 @@ #include #include #include +#include +#include +#include +#include +#include -class ImageUrlDatabase : public QObject + +class ImageManager : public QObject { Q_OBJECT -public: - explicit ImageUrlDatabase(QObject *parent = nullptr); - ~ImageUrlDatabase(); - - bool openDatabase(const QString &path); - - // 用户操作 - int addUser(const QString &username); - - // 服务器操作 - int addServer(const QString &domain); - - // 图片URL操作 - bool addImageUrl(const QString &username, const QString &domain, const QString &imageUrl); - QList getUserImages(const QString &username); - QList getServerImages(const QString &domain); - bool updateLastAccessed(const QString &username, const QString &domain, const QString &imageUrl); private: + explicit ImageManager(QObject *parent = nullptr); + ~ImageManager(); + +public: + static ImageManager* instance(); + + // 初始化数据库连接 + bool initialize(const QString &dbPath); + + // 添加域名-用户对(不重复) + bool addDomainUser(const QString &domain, const QString &user); + + // 上传成功后添加图片URL + bool addImageUrl(const QString &domain, const QString &user, const QUrl &imageUrl); + + // 获取特定域名-用户的所有图片URL + QList getImageUrls(const QString &domain, const QString &user); + + // 检查域名-用户对是否存在 + bool containsDomainUser(const QString &domain, const QString &user); + +private: + static ImageManager* m_instance; + static QMutex m_mutex; + QSqlDatabase m_db; - // 内部辅助方法 - int getUserId(const QString &username); - int getServerId(const QString &domain); + bool createTables(); + bool addDomain(const QString &domain); + bool addUser(const QString &user); + int getDomainId(const QString &domain); + int getUserId(const QString &user); }; #endif // URLDATABASE_H diff --git a/picpanel.pro.user b/picpanel.pro.user index 4270e99..825a513 100644 --- a/picpanel.pro.user +++ b/picpanel.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {631b5895-04c2-4f08-83d2-9e1277f189a1} + {4f2ec396-c2e0-4f3d-a369-5968ecaf5cee} ProjectExplorer.Project.ActiveTarget @@ -41,7 +41,7 @@ false true false - 2 + 0 true true 0 @@ -74,11 +74,15 @@ 0 true + + -fno-delayed-template-parsing + + true true true Builtin.DefaultTidyAndClazy - 12 + 16 true @@ -99,8 +103,8 @@ 0 0 - E:\picpanel\build\Desktop_Qt_6_7_3_MinGW_64_bit-Debug - E:/picpanel/build/Desktop_Qt_6_7_3_MinGW_64_bit-Debug + D:\Workspaces\picpanel\build\Desktop_Qt_6_7_3_MinGW_64_bit-Debug + D:/Workspaces/picpanel/build/Desktop_Qt_6_7_3_MinGW_64_bit-Debug true @@ -138,8 +142,8 @@ 2 - E:\picpanel\build\Desktop_Qt_6_7_3_MinGW_64_bit-Release - E:/picpanel/build/Desktop_Qt_6_7_3_MinGW_64_bit-Release + D:\Workspaces\picpanel\build\Desktop_Qt_6_7_3_MinGW_64_bit-Release + D:/Workspaces/picpanel/build/Desktop_Qt_6_7_3_MinGW_64_bit-Release true @@ -179,8 +183,8 @@ 0 - E:\picpanel\build\Desktop_Qt_6_7_3_MinGW_64_bit-Profile - E:/picpanel/build/Desktop_Qt_6_7_3_MinGW_64_bit-Profile + D:\Workspaces\picpanel\build\Desktop_Qt_6_7_3_MinGW_64_bit-Profile + D:/Workspaces/picpanel/build/Desktop_Qt_6_7_3_MinGW_64_bit-Profile true @@ -245,20 +249,263 @@ false -e cpu-cycles --call-graph "dwarf,4096" -F 250 - Qt4ProjectManager.Qt4RunConfiguration:E:/picpanel/picpanel.pro - E:/picpanel/picpanel.pro + Qt4ProjectManager.Qt4RunConfiguration:D:/Workspaces/picpanel/picpanel.pro + D:/Workspaces/picpanel/picpanel.pro false true true true - E:/picpanel/build/Desktop_Qt_6_7_3_MinGW_64_bit-Debug + D:/Workspaces/picpanel/build/Desktop_Qt_6_7_3_MinGW_64_bit-Debug 1 + + ProjectExplorer.Project.Target.1 + + Desktop Qt 5.14.2 MinGW 64-bit + Desktop Qt 5.14.2 MinGW 64-bit + qt.qt5.5142.win64_mingw73_kit + 0 + 0 + 0 + + D:/Workspaces/build-picpanel-Desktop_Qt_5_14_2_MinGW_64_bit-Debug + + + true + QtProjectManager.QMakeBuildStep + true + + false + false + false + + + true + Qt4ProjectManager.MakeStep + + false + + + false + + 2 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + + true + clean + + false + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + Debug + Qt4ProjectManager.Qt4BuildConfiguration + 2 + + + D:/Workspaces/build-picpanel-Desktop_Qt_5_14_2_MinGW_64_bit-Release + + + true + QtProjectManager.QMakeBuildStep + false + + false + false + true + + + true + Qt4ProjectManager.MakeStep + + false + + + false + + 2 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + + true + clean + + false + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + Release + Qt4ProjectManager.Qt4BuildConfiguration + 0 + + + D:/Workspaces/build-picpanel-Desktop_Qt_5_14_2_MinGW_64_bit-Profile + + + true + QtProjectManager.QMakeBuildStep + true + + false + true + true + + + true + Qt4ProjectManager.MakeStep + + false + + + false + + 2 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + + true + clean + + false + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + Profile + Qt4ProjectManager.Qt4BuildConfiguration + 0 + + 3 + + + 0 + Deploy + Deploy + ProjectExplorer.BuildSteps.Deploy + + 1 + ProjectExplorer.DefaultDeployConfiguration + + 1 + + + dwarf + + cpu-cycles + + + 250 + + -e + cpu-cycles + --call-graph + dwarf,4096 + -F + 250 + + -F + true + 4096 + false + false + 1000 + + true + + false + false + false + false + true + 0.01 + 10 + true + kcachegrind + 1 + 25 + + 1 + true + false + true + valgrind + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + + 2 + + Qt4ProjectManager.Qt4RunConfiguration:D:/Workspaces/picpanel/picpanel.pro + D:/Workspaces/picpanel/picpanel.pro + + false + + false + true + true + false + false + true + + D:/Workspaces/build-picpanel-Desktop_Qt_5_14_2_MinGW_64_bit-Debug + + 1 + + ProjectExplorer.Project.TargetCount - 1 + 2 ProjectExplorer.Project.Updater.FileVersion diff --git a/qrc/image/copy_blue.png b/qrc/image/copy_blue.png index 8ccffad..7532bf9 100644 Binary files a/qrc/image/copy_blue.png and b/qrc/image/copy_blue.png differ diff --git a/qrc/image/copy_white.png b/qrc/image/copy_white.png index f282f14..0c38a55 100644 Binary files a/qrc/image/copy_white.png and b/qrc/image/copy_white.png differ diff --git a/widget.cpp b/widget.cpp index e292514..73c291b 100644 --- a/widget.cpp +++ b/widget.cpp @@ -1,6 +1,7 @@ #include "widget.h" #include "ui_widget.h" #include "tchttpservice.h" +#include "urldatabase.h" Widget::Widget(QWidget *parent) : QWidget(parent) @@ -11,6 +12,8 @@ Widget::Widget(QWidget *parent) initWidget(); initSignalSlot(); initTrayApp(); + QString stdPath = QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation); + ImageManager::instance()->initialize(stdPath + "/picpanel.db"); // this->btnPageUpload->setChecked(true); // this->btnPageUpload->setStyleSheet("{border: none;border-right: 4px solid #409EFF;color: #409EFF;}"); } @@ -205,6 +208,7 @@ void Widget::initSignalSlot() connect(TCHttpService::getInstance(), &TCHttpService::signal_loginSuc, this, &Widget::slot_loginSec); connect(frmupload, &FrmUpload::signal_uploadSuccess, this, &Widget::slot_uploadSuccess); + connect(this, &Widget::signal_updateImage, frmalbum, &FrmAlbum::slot_updateImage); } void Widget::initLeftMenu() @@ -370,6 +374,7 @@ void Widget::pageChangeSlot() btnPageUpload->setIcon(iconUploadWhite); btnPageSetting->setIcon(iconSettingWhite); ui->stackedWidget->setCurrentWidget(frmalbum); + emit signal_updateImage(); } else { btn->setIcon(iconSettingBlue); diff --git a/widget.h b/widget.h index 55ecb2e..6a3abdc 100644 --- a/widget.h +++ b/widget.h @@ -91,5 +91,8 @@ private: FileConfigDecode* fileConfig; +signals: + void signal_updateImage(); + }; #endif // WIDGET_H diff --git a/widget.ui b/widget.ui index fe8ec59..b0137f2 100644 --- a/widget.ui +++ b/widget.ui @@ -150,6 +150,9 @@ + + 0 + @@ -166,7 +169,7 @@ - 200 + 180 16777215