Просмотр исходного кода

Merge topic 'cmake-gui-completion' into release-3.19

854f5ea1cb cmake-gui: Restore completion during path editing

Acked-by: Kitware Robot <[email protected]>
Merge-request: !5619
Brad King 5 лет назад
Родитель
Сommit
cd107321f7
1 измененных файлов с 14 добавлено и 9 удалено
  1. 14 9
      Source/QtDialog/QCMakeWidgets.cxx

+ 14 - 9
Source/QtDialog/QCMakeWidgets.cxx

@@ -1,12 +1,17 @@
 /* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
    file Copyright.txt or https://cmake.org/licensing for details.  */
+
+// FIXME: Port to QFileSystemModel from the deprecated QDirModel.
+// Be sure completion works when incrementally editing existing paths.
+#define QT_DEPRECATED_WARNINGS_SINCE QT_VERSION_CHECK(5, 14, 0)
+
 #include "QCMakeWidgets.h"
 
 #include <utility>
 
+#include <QDirModel>
 #include <QFileDialog>
 #include <QFileInfo>
-#include <QFileSystemModel>
 #include <QResizeEvent>
 #include <QToolButton>
 
@@ -88,20 +93,20 @@ void QCMakePathEditor::chooseFile()
   }
 }
 
-// use same QFileSystemModel for all completers
-static QFileSystemModel* fileDirModel()
+// use same QDirModel for all completers
+static QDirModel* fileDirModel()
 {
-  static QFileSystemModel* m = nullptr;
+  static QDirModel* m = nullptr;
   if (!m) {
-    m = new QFileSystemModel();
+    m = new QDirModel();
   }
   return m;
 }
-static QFileSystemModel* pathDirModel()
+static QDirModel* pathDirModel()
 {
-  static QFileSystemModel* m = nullptr;
+  static QDirModel* m = nullptr;
   if (!m) {
-    m = new QFileSystemModel();
+    m = new QDirModel();
     m->setFilter(QDir::AllDirs | QDir::Drives | QDir::NoDotAndDotDot);
   }
   return m;
@@ -110,7 +115,7 @@ static QFileSystemModel* pathDirModel()
 QCMakeFileCompleter::QCMakeFileCompleter(QObject* o, bool dirs)
   : QCompleter(o)
 {
-  QFileSystemModel* m = dirs ? pathDirModel() : fileDirModel();
+  QDirModel* m = dirs ? pathDirModel() : fileDirModel();
   this->setModel(m);
 }