|
|
@@ -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);
|
|
|
}
|
|
|
|