forked from qt-creator/qt-creator
Generic Project: Preserve out of project files on "Edit Files"
Change-Id: Ia71ed20f8cd5563f1e7fce7a99cf12fc4e7e62c2 Reviewed-on: http://codereview.qt.nokia.com/1076 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
This commit is contained in:
@@ -58,6 +58,12 @@ SelectableFilesModel::SelectableFilesModel(const QString &baseDir, QObject *pare
|
|||||||
void SelectableFilesModel::setInitialMarkedFiles(const QStringList &files)
|
void SelectableFilesModel::setInitialMarkedFiles(const QStringList &files)
|
||||||
{
|
{
|
||||||
m_files = files.toSet();
|
m_files = files.toSet();
|
||||||
|
m_outOfBaseDirFiles.clear();
|
||||||
|
QString base = m_baseDir + '/';
|
||||||
|
foreach (const QString &file, m_files)
|
||||||
|
if (!file.startsWith(base))
|
||||||
|
m_outOfBaseDirFiles.append(file);
|
||||||
|
|
||||||
m_allFiles = false;
|
m_allFiles = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -333,11 +339,16 @@ void SelectableFilesModel::collectPaths(Tree *root, QStringList *result) const
|
|||||||
|
|
||||||
QStringList SelectableFilesModel::selectedFiles() const
|
QStringList SelectableFilesModel::selectedFiles() const
|
||||||
{
|
{
|
||||||
QStringList result;
|
QStringList result = m_outOfBaseDirFiles;
|
||||||
collectFiles(m_root, &result);
|
collectFiles(m_root, &result);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QStringList SelectableFilesModel::preservedFiles() const
|
||||||
|
{
|
||||||
|
return m_outOfBaseDirFiles;
|
||||||
|
}
|
||||||
|
|
||||||
void SelectableFilesModel::collectFiles(Tree *root, QStringList *result) const
|
void SelectableFilesModel::collectFiles(Tree *root, QStringList *result) const
|
||||||
{
|
{
|
||||||
if (root->checked == Qt::Unchecked)
|
if (root->checked == Qt::Unchecked)
|
||||||
@@ -526,6 +537,10 @@ SelectableFilesDialog::SelectableFilesDialog(const QString &path, const QStringL
|
|||||||
m_view->hide();
|
m_view->hide();
|
||||||
layout->addWidget(m_view);
|
layout->addWidget(m_view);
|
||||||
|
|
||||||
|
m_preservedFiles = new QLabel;
|
||||||
|
m_preservedFiles->hide();
|
||||||
|
layout->addWidget(m_preservedFiles);
|
||||||
|
|
||||||
m_progressLabel = new QLabel(this);
|
m_progressLabel = new QLabel(this);
|
||||||
m_progressLabel->setMaximumWidth(500);
|
m_progressLabel->setMaximumWidth(500);
|
||||||
layout->addWidget(m_progressLabel);
|
layout->addWidget(m_progressLabel);
|
||||||
@@ -569,6 +584,13 @@ void SelectableFilesDialog::parsingFinished()
|
|||||||
m_view->expand(QModelIndex());
|
m_view->expand(QModelIndex());
|
||||||
smartExpand(m_selectableFilesModel->index(0,0, QModelIndex()));
|
smartExpand(m_selectableFilesModel->index(0,0, QModelIndex()));
|
||||||
applyFilter();
|
applyFilter();
|
||||||
|
const QStringList &preservedFiles = m_selectableFilesModel->preservedFiles();
|
||||||
|
if (preservedFiles.isEmpty()) {
|
||||||
|
m_preservedFiles->hide();
|
||||||
|
} else {
|
||||||
|
m_preservedFiles->show();
|
||||||
|
m_preservedFiles->setText(tr("Not showing %1 files that are outside of the base directory.\nThese files are preserved.").arg(preservedFiles.count()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SelectableFilesDialog::smartExpand(const QModelIndex &index)
|
void SelectableFilesDialog::smartExpand(const QModelIndex &index)
|
||||||
|
|||||||
@@ -88,6 +88,7 @@ public:
|
|||||||
|
|
||||||
QStringList selectedFiles() const;
|
QStringList selectedFiles() const;
|
||||||
QStringList selectedPaths() const;
|
QStringList selectedPaths() const;
|
||||||
|
QStringList preservedFiles() const;
|
||||||
|
|
||||||
// only call this once
|
// only call this once
|
||||||
void startParsing();
|
void startParsing();
|
||||||
@@ -115,6 +116,7 @@ private:
|
|||||||
// Used in the future thread need to all not used after calling startParsing
|
// Used in the future thread need to all not used after calling startParsing
|
||||||
QString m_baseDir;
|
QString m_baseDir;
|
||||||
QSet<QString> m_files;
|
QSet<QString> m_files;
|
||||||
|
QStringList m_outOfBaseDirFiles;
|
||||||
QSet<QString> m_suffixes;
|
QSet<QString> m_suffixes;
|
||||||
QFutureWatcher<void> m_watcher;
|
QFutureWatcher<void> m_watcher;
|
||||||
Tree *m_rootForFuture;
|
Tree *m_rootForFuture;
|
||||||
@@ -143,6 +145,7 @@ private:
|
|||||||
QLineEdit *m_filterLineEdit;
|
QLineEdit *m_filterLineEdit;
|
||||||
QPushButton *m_applyFilterButton;
|
QPushButton *m_applyFilterButton;
|
||||||
QTreeView *m_view;
|
QTreeView *m_view;
|
||||||
|
QLabel *m_preservedFiles;
|
||||||
QLabel *m_progressLabel;
|
QLabel *m_progressLabel;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user