40 lines
939 B
C++
40 lines
939 B
C++
#pragma once
|
|
#include <QDialog>
|
|
|
|
#include "repo/IProjectRepository.hpp"
|
|
|
|
class QLineEdit;
|
|
class QComboBox;
|
|
class QTableWidget;
|
|
class QLabel;
|
|
class QPushButton;
|
|
|
|
namespace geopro::app {
|
|
|
|
// 项目列表弹窗:名称/类型过滤 + 分页表格;点项目名 → 切换项目并关闭。
|
|
class ProjectListDialog : public QDialog {
|
|
Q_OBJECT
|
|
public:
|
|
explicit ProjectListDialog(data::IProjectRepository& repo, QWidget* parent = nullptr);
|
|
|
|
signals:
|
|
void projectChosen(const QString& projectId, const QString& projectName);
|
|
|
|
private:
|
|
void query();
|
|
void fillTypeFilter();
|
|
|
|
data::IProjectRepository& repo_;
|
|
QLineEdit* nameEdit_ = nullptr;
|
|
QComboBox* typeCombo_ = nullptr;
|
|
QTableWidget* table_ = nullptr;
|
|
QLabel* pageLabel_ = nullptr;
|
|
QPushButton* prevBtn_ = nullptr;
|
|
QPushButton* nextBtn_ = nullptr;
|
|
int pageNo_ = 1;
|
|
int pageSize_ = 20;
|
|
int total_ = 0;
|
|
};
|
|
|
|
} // namespace geopro::app
|