chengxr 1 year ago
parent
commit
d0ecadba63
3 changed files with 21 additions and 25 deletions
  1. 1 1
      QFD/common/ProjectManager.cpp
  2. 18 23
      QFD/view/HomeView.cpp
  3. 2 1
      QFD/view/HomeView.h

+ 1 - 1
QFD/common/ProjectManager.cpp

@@ -95,7 +95,7 @@ int ProjectManager::queryProjects(QList<ProjectInfo *> *projList)
 
 int ProjectManager::queryProjects(QList<ProjectInfo *> *list, int &total, int page, int pageSize, QString name)
 {
-    qDebug() << __FUNCTION__ << __LINE__ << total << page << pageSize << name << endl;
+    qDebug() << __FUNCTION__ << __LINE__ << "page:" << page << "pagesize:" << pageSize << "name:" << name << endl;
     bool ret = ProjectService().SelectAllByPage(list, total, page, pageSize, name);
     return ret ? QF_CODE_SUCCEEDED : QF_CODE_DATA_ERROR;
 }

+ 18 - 23
QFD/view/HomeView.cpp

@@ -128,23 +128,18 @@ void HomeView::loadProjects()
         return;
     }
 
-    m_projListWidget->setProjects(filterResult());
+    m_projListWidget->setProjects(m_projList);
 }
 
-QList<ProjectInfo *> HomeView::filterResult() const
+int HomeView::firstPage() const
 {
-    QList<ProjectInfo *> list;
-    for (ProjectInfo *proj : m_projList) {
-        bool search                           = proj->projectName.contains(m_search->text());
-        QList<ProjectManager::EvalType> types = ProjectManager::evalTypeList(*proj);
-        bool typeValid                        = types.contains(ProjectManager::Requirements)
-                | types.contains(ProjectManager::SchemeOptimization)
-                | types.contains(ProjectManager::OverallEfficiency);
-        if (search && typeValid) {
-            list.append(proj);
-        }
-    }
-    return list;
+    return 1;
+}
+
+int HomeView::finalPage() const
+{
+    int p = m_total / m_pageSize + (m_total % m_pageSize > 0 ? 1 : 0);
+    return std::max(p, firstPage());
 }
 
 void HomeView::slotCreateProjClicked()
@@ -156,14 +151,12 @@ void HomeView::slotCreateProjClicked()
     }
 }
 
-void HomeView::slotSearchTextChanged()
-{
-    m_projListWidget->setProjects(filterResult());
-}
+void HomeView::slotSearchTextChanged() { }
 
 void HomeView::slotFilterClicked()
 {
-    qDebug() << __FUNCTION__ << __LINE__ << endl;
+    m_page = firstPage();
+    loadProjects();
 }
 
 /// @todo 修改或者新建项目后, 列表移到该条目
@@ -221,24 +214,26 @@ void HomeView::slotDeleteProject(ProjectInfo *proj)
 
 void HomeView::slotPreviousClicked()
 {
-    qDebug() << __FUNCTION__ << __LINE__ << endl;
+    m_page--;
+    m_page = std::max(m_page, firstPage());
     loadProjects();
 }
 
 void HomeView::slotNextClicked()
 {
-    qDebug() << __FUNCTION__ << __LINE__ << endl;
+    m_page++;
+    m_page = std::min(m_page, finalPage());
     loadProjects();
 }
 
 void HomeView::slotFirstClicked()
 {
-    qDebug() << __FUNCTION__ << __LINE__ << endl;
+    m_page = firstPage();
     loadProjects();
 }
 
 void HomeView::slotFinalClicked()
 {
-    qDebug() << __FUNCTION__ << __LINE__ << endl;
+    m_page = finalPage();
     loadProjects();
 }

+ 2 - 1
QFD/view/HomeView.h

@@ -37,7 +37,8 @@ private:
 
     void loadProjects();
 
-    QList<ProjectInfo *> filterResult() const;
+    int firstPage() const;  // 首页页码
+    int finalPage() const;  // 末页页码
 
 private slots:
     void slotCreateProjClicked();