Make Translation Tests ignore imported files

Change-Id: I4abd222bd15da79a1fe14d01b8a4a1f25d935b3b
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Lukasz Ornatek
2020-09-16 09:21:46 +02:00
committed by Łukasz Ornatek
parent b74ec903a7
commit 0831c07cb3
3 changed files with 27 additions and 20 deletions

View File

@@ -125,8 +125,11 @@ ProjectFileSelectionsWidget::ProjectFileSelectionsWidget(const QString &projectS
const auto settingsDisabledFiles = project->namedSettings(m_projectSettingsKey).toStringList(); const auto settingsDisabledFiles = project->namedSettings(m_projectSettingsKey).toStringList();
if (auto rootProjectNode = project->rootProjectNode()) { if (auto rootProjectNode = project->rootProjectNode()) {
rootProjectNode->forEachNode([this, settingsDisabledFiles, model](ProjectExplorer::FileNode *fileNode) { auto rootPath = rootProjectNode->filePath();
if (fileNode->fileType() == m_fileType) {
rootProjectNode->forEachNode([this, settingsDisabledFiles, model, rootPath](ProjectExplorer::FileNode *fileNode) {
if (fileNode->fileType() == m_fileType
&& !fileNode->filePath().relativeChildPath(rootPath).startsWith("imports/")) {
bool isDisabled = settingsDisabledFiles.contains(fileNode->filePath().toString()); bool isDisabled = settingsDisabledFiles.contains(fileNode->filePath().toString());
model->rootItem()->appendChild(new ProjectFileItem(fileNode->filePath(), isDisabled)); model->rootItem()->appendChild(new ProjectFileItem(fileNode->filePath(), isDisabled));
} }

View File

@@ -104,21 +104,17 @@ QmlDebugTranslationWidget::QmlDebugTranslationWidget(QWidget *parent)
const QString projectSettingsKey = "QmlPreview.DisabledDebugTranslationFiles"; const QString projectSettingsKey = "QmlPreview.DisabledDebugTranslationFiles";
const ProjectExplorer::FileType filterFileType = ProjectExplorer::FileType::QML; const ProjectExplorer::FileType filterFileType = ProjectExplorer::FileType::QML;
auto checkableProjectFileView = new ProjectFileSelectionsWidget(projectSettingsKey, filterFileType); m_checkableProjectFileView = new ProjectFileSelectionsWidget(projectSettingsKey, filterFileType);
checkableProjectFileView->setVisible(false); m_checkableProjectFileView->setVisible(false);
connect(checkableProjectFileView, &ProjectFileSelectionsWidget::selectionChanged, this, &QmlDebugTranslationWidget::setFiles); connect(m_checkableProjectFileView, &ProjectFileSelectionsWidget::selectionChanged, this, &QmlDebugTranslationWidget::setFiles);
m_multipleFileButton = new QRadioButton(tr("multiple files")); m_multipleFileButton = new QRadioButton(tr("multiple files"));
// TODO: fix multiple files issues, because it have some issues disable it for now
m_multipleFileButton->setDisabled(true);
buttonGroup->addButton(m_multipleFileButton); buttonGroup->addButton(m_multipleFileButton);
connect(m_multipleFileButton, &QAbstractButton::toggled, [checkableProjectFileView, this](bool checked) { connect(m_multipleFileButton, &QAbstractButton::toggled, m_checkableProjectFileView, &QWidget::setVisible);
checkableProjectFileView->setVisible(checked); connect(m_multipleFileButton, &QAbstractButton::toggled, this, &QmlDebugTranslationWidget::updateFiles);
setFiles(checkableProjectFileView->checkedFiles());
});
mainLayout->addWidget(m_singleFileButton); mainLayout->addWidget(m_singleFileButton);
mainLayout->addWidget(m_multipleFileButton); mainLayout->addWidget(m_multipleFileButton);
mainLayout->addWidget(checkableProjectFileView); mainLayout->addWidget(m_checkableProjectFileView);
// language checkboxes are add in updateAvailableTranslations method // language checkboxes are add in updateAvailableTranslations method
m_selectLanguageLayout = new QHBoxLayout; m_selectLanguageLayout = new QHBoxLayout;
@@ -226,7 +222,7 @@ void QmlDebugTranslationWidget::updateCurrentEditor(const Core::IEditor *editor)
else else
m_currentFilePath.clear(); m_currentFilePath.clear();
m_singleFileButton->setText(singleFileButtonText(m_currentFilePath.toString())); m_singleFileButton->setText(singleFileButtonText(m_currentFilePath.toString()));
updateFiles();
} }
void QmlDebugTranslationWidget::updateStartupProjectTranslations() void QmlDebugTranslationWidget::updateStartupProjectTranslations()
@@ -253,6 +249,7 @@ void QmlDebugTranslationWidget::updateCurrentTranslations(ProjectExplorer::Proje
tr("Current language is \'<b>%1</b>\' can be changed in the 'Translation' tab.") tr("Current language is \'<b>%1</b>\' can be changed in the 'Translation' tab.")
.arg(multiLanguageAspect->currentLocale()))); .arg(multiLanguageAspect->currentLocale())));
m_testLanguages.clear(); m_testLanguages.clear();
m_testLanguages.append(multiLanguageAspect->currentLocale());
} else { } else {
m_selectLanguageLayout->addWidget(new QLabel(tr("Select which language should be tested:"))); m_selectLanguageLayout->addWidget(new QLabel(tr("Select which language should be tested:")));
QString errorMessage; QString errorMessage;
@@ -272,6 +269,14 @@ void QmlDebugTranslationWidget::updateCurrentTranslations(ProjectExplorer::Proje
} }
} }
void QmlDebugTranslationWidget::updateFiles()
{
if (m_multipleFileButton->isChecked())
setFiles(m_checkableProjectFileView->checkedFiles());
else
setFiles({m_currentFilePath});
}
void QmlDebugTranslationWidget::setFiles(const Utils::FilePaths &filePathes) void QmlDebugTranslationWidget::setFiles(const Utils::FilePaths &filePathes)
{ {
m_selectedFilePaths = filePathes; m_selectedFilePaths = filePathes;
@@ -305,14 +310,9 @@ void QmlDebugTranslationWidget::runTest()
}); });
} }
}; };
if (m_multipleFileButton->isChecked()) {
for (auto filePath : m_selectedFilePaths) { for (auto filePath : m_selectedFilePaths) {
testLanguages(timerCounter++, filePath.toString()); testLanguages(timerCounter++, filePath.toString());
} }
} else {
testLanguages(timerCounter, QString());
}
}); });
connect(runControl, &ProjectExplorer::RunControl::stopped, [this]() { connect(runControl, &ProjectExplorer::RunControl::stopped, [this]() {
m_runTestButton->setChecked(false); m_runTestButton->setChecked(false);

View File

@@ -49,6 +49,8 @@ class RunControl;
namespace QmlPreview { namespace QmlPreview {
class ProjectFileSelectionsWidget;
class QMLPREVIEW_EXPORT QmlDebugTranslationWidget : public QWidget class QMLPREVIEW_EXPORT QmlDebugTranslationWidget : public QWidget
{ {
Q_OBJECT Q_OBJECT
@@ -62,6 +64,7 @@ public:
private: private:
void updateCurrentEditor(const Core::IEditor *editor); void updateCurrentEditor(const Core::IEditor *editor);
void updateCurrentTranslations(ProjectExplorer::Project *project); void updateCurrentTranslations(ProjectExplorer::Project *project);
void updateFiles();
void runTest(); void runTest();
void appendMessage(const QString &message, Utils::OutputFormat format); void appendMessage(const QString &message, Utils::OutputFormat format);
void clear(); void clear();
@@ -81,6 +84,7 @@ private:
QRadioButton *m_singleFileButton = nullptr; QRadioButton *m_singleFileButton = nullptr;
QRadioButton *m_multipleFileButton = nullptr; QRadioButton *m_multipleFileButton = nullptr;
ProjectFileSelectionsWidget *m_checkableProjectFileView = nullptr;
QPushButton *m_runTestButton = nullptr; QPushButton *m_runTestButton = nullptr;
Utils::FilePath m_currentFilePath; Utils::FilePath m_currentFilePath;