aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSvetlana Abramenkova <sabramenkova@luxoft.com>2019-05-15 16:30:03 +0300
committerSvetlana Abramenkova <sabramenkova@luxoft.com>2019-05-15 16:35:01 +0300
commit57a01a6a87bdb33d73d6fbb6fe39d071d52522aa (patch)
treea844d3d3156c53f2f481bbfb5e73a8f827ef2e8b
parentaa5b08501ef8fe1aabf85286c2d8c8fa697d956c (diff)
Fix set imports to preferences from console
Change-Id: Iba70c12ee5dd418421365933477eef6d3d2e07b9 Fixed: AUTOSUITE-855 Reviewed-by: Nikolay Zamotaev <nzamotaev@luxoft.com>
-rw-r--r--src/bench/importpathoptionpage.cpp31
-rw-r--r--src/bench/importpathoptionpage.h5
-rw-r--r--src/bench/main.cpp12
-rw-r--r--src/bench/mainwindow.cpp30
-rw-r--r--src/bench/mainwindow.h12
-rw-r--r--src/bench/optionsdialog.cpp5
-rw-r--r--src/bench/optionsdialog.h2
7 files changed, 60 insertions, 37 deletions
diff --git a/src/bench/importpathoptionpage.cpp b/src/bench/importpathoptionpage.cpp
index 6796aca..21edb84 100644
--- a/src/bench/importpathoptionpage.cpp
+++ b/src/bench/importpathoptionpage.cpp
@@ -38,16 +38,6 @@ ImportPathOptionPage::ImportPathOptionPage(QWidget *parent) :
ui(new Ui::ImportPathOptionPage)
{
ui->setupUi(this);
- QSettings s;
- int count = s.beginReadArray("imports");
- QListWidgetItem *item;
- for (int i=0; i<count; i++) {
- s.setArrayIndex(i);
- item = new QListWidgetItem(s.value("path").toString());
- item->setFlags(item->flags () | Qt::ItemIsEditable);
- ui->importList->addItem(item);
- }
- s.endArray();
connect(ui->addButton, &QAbstractButton::clicked, this, &ImportPathOptionPage::addItem);
connect(ui->removeButton, &QAbstractButton::clicked, this, &ImportPathOptionPage::removeItem);
@@ -62,15 +52,10 @@ ImportPathOptionPage::~ImportPathOptionPage()
void ImportPathOptionPage::apply()
{
QStringList paths;
- QSettings s;
- s.beginWriteArray("imports");
- for (int i=0; i<ui->importList->count(); i++) {
- QString path(ui->importList->item(i)->text());
- paths << path;
- s.setArrayIndex(i);
- s.setValue("path", path);
+ for (int i = 0; i < ui->importList->count(); i++) {
+ paths << ui->importList->item(i)->text();
}
- s.endArray();
+ emit updateImportPaths(paths);
}
void ImportPathOptionPage::addItem()
@@ -99,3 +84,13 @@ void ImportPathOptionPage::editItem()
ui->importList->editItem(item);
}
}
+
+void ImportPathOptionPage::setImports(const QStringList &imports)
+{
+ QListWidgetItem *item;
+ for (int i = 0; i < imports.count(); i++) {
+ item = new QListWidgetItem(imports.at(i));
+ item->setFlags(item->flags () | Qt::ItemIsEditable);
+ ui->importList->addItem(item);
+ }
+}
diff --git a/src/bench/importpathoptionpage.h b/src/bench/importpathoptionpage.h
index 8a57d6a..2000b9f 100644
--- a/src/bench/importpathoptionpage.h
+++ b/src/bench/importpathoptionpage.h
@@ -50,6 +50,11 @@ public:
explicit ImportPathOptionPage(QWidget *parent = 0);
~ImportPathOptionPage();
void apply();
+ void setImports(const QStringList &imports);
+
+signals:
+ void updateImportPaths(const QStringList &imports);
+
private slots:
void addItem();
void removeItem();
diff --git a/src/bench/main.cpp b/src/bench/main.cpp
index 292f289..8ca51c0 100644
--- a/src/bench/main.cpp
+++ b/src/bench/main.cpp
@@ -458,16 +458,10 @@ void MasterApplication::applyOptions(const Options &options)
LiveHubEngine::setMaximumWatches(options.maximumWatches());
if (!options.project().isEmpty()) {
- if (m_window->isInitialized())
+ if (!m_window->isInitialized())
m_window->setProject(options.project());
- else {
- ProjectManager pr;
- if (pr.read(options.project())) {
- m_window->setWorkspace(pr.workspace());
- m_window->setImportPaths(pr.imports());
- m_window->activateDocument(LiveDocument(pr.mainDocument()));
- }
- }
+ else
+ qDebug() << "Ignoring attempt to set project file after initialization.";
}
if (!options.workspace().isEmpty())
diff --git a/src/bench/mainwindow.cpp b/src/bench/mainwindow.cpp
index dbebae0..15fcdac 100644
--- a/src/bench/mainwindow.cpp
+++ b/src/bench/mainwindow.cpp
@@ -106,6 +106,7 @@ MainWindow::MainWindow(QWidget *parent)
, m_node(new BenchLiveNodeEngine(this))
, m_newProjectWizard(new NewProjectWizard(this))
, m_projectManager(new ProjectManager(this))
+ , m_imports (nullptr)
{
setupContent();
setupMenuBar();
@@ -388,7 +389,7 @@ void MainWindow::init()
m_workspace->activateRootPath();
}
- resetImportPaths();
+ restoreImportPathsFromSettings();
m_hostModel->restoreFromSettings(&s);
restoreState(s.value("windowState").toByteArray());
@@ -415,20 +416,32 @@ void MainWindow::writeSettings()
s.endArray();
m_hostModel->saveToSettings(&s);
+
+ if (m_imports != nullptr) {
+ s.beginWriteArray("imports");
+ int j = 0;
+ for (auto i = m_imports->begin(); i != m_imports->end(); i++, j++) {
+ s.setArrayIndex(j);
+ s.setValue("path", *i);
+ }
+ s.endArray();
+ }
}
-void MainWindow::resetImportPaths()
+void MainWindow::restoreImportPathsFromSettings()
{
- QStringList importPaths;
+ if (m_imports == nullptr)
+ m_imports = new QSet<QString>();
+
QSettings s;
int count = s.beginReadArray("imports");
for (int i=0; i<count; i++) {
s.setArrayIndex(i);
- importPaths.append(s.value("path").toString());
+ m_imports->insert(s.value("path").toString());
}
s.endArray();
- setImportPaths(importPaths);
+ m_node->qmlEngine()->setImportPathList(m_imports->toList() + m_qmlDefaultimportList);
}
void MainWindow::setupToolBar()
@@ -501,6 +514,10 @@ void MainWindow::setPluginPath(const QString &path)
void MainWindow::setImportPaths(const QStringList &pathList)
{
+ if (m_imports == nullptr)
+ m_imports = new QSet<QString>();
+ *m_imports = QSet<QString>::fromList(pathList);
+
m_node->qmlEngine()->setImportPathList(pathList + m_qmlDefaultimportList);
}
@@ -556,13 +573,14 @@ void MainWindow::openPreferences(Host *host)
{
OptionsDialog dialog;
connect(&dialog, &OptionsDialog::hideNonQMLFiles, m_workspace, &WorkspaceView::hideNonQMLFiles);
+ connect(&dialog, &OptionsDialog::updateImportPaths, this, &MainWindow::setImportPaths);
dialog.setHostModel(m_hostModel);
dialog.setDiscoveredHostsModel(m_discoveryManager->discoveredHostsModel());
+ dialog.setImports(m_imports->toList());
if (host)
dialog.openHostConfig(host);
if (dialog.exec()) {
- resetImportPaths();
m_discoveryManager->rescan();
}
}
diff --git a/src/bench/mainwindow.h b/src/bench/mainwindow.h
index d92868f..833b53d 100644
--- a/src/bench/mainwindow.h
+++ b/src/bench/mainwindow.h
@@ -65,7 +65,6 @@ public:
void activateDocument(const LiveDocument &path);
void setWorkspace(const QString& path, bool activateRootPath = true);
void setPluginPath(const QString& path);
- void setImportPaths(const QStringList& pathList);
void setStaysOnTop(bool enabled);
void setProject(const QString& projectFile);
void init();
@@ -74,9 +73,13 @@ public:
HostModel *hostModel() const { return m_hostModel; }
HostManager *hostManager() const { return m_hostManager; }
+public slots:
+ void setImportPaths(const QStringList& pathList);
+
protected:
void closeEvent(QCloseEvent *event);
void showEvent(QShowEvent *event);
+
private:
void setupContent();
void setupWorkspaceView();
@@ -85,8 +88,10 @@ private:
void setupToolBar();
void setupMenuBar();
void writeSettings();
- void resetImportPaths();
+ void restoreImportPathsFromSettings();
void openProjectFile(const QString& path);
+ void saveImportPathToSettings(const QString& path);
+
private slots:
void resizeToFit();
void takeSnapshot();
@@ -101,9 +106,7 @@ private slots:
void openProject();
void newProjectWizard();
void newProject();
-
void onActiveWindowChanged(QQuickWindow *activeWindow);
-
void onLogWidgetAdded(QDockWidget* logDock);
private:
@@ -139,4 +142,5 @@ private:
QAction *m_createProject;
NewProjectWizard *m_newProjectWizard;
ProjectManager *m_projectManager;
+ QSet<QString> *m_imports;
};
diff --git a/src/bench/optionsdialog.cpp b/src/bench/optionsdialog.cpp
index 4ae3dd3..82c6223 100644
--- a/src/bench/optionsdialog.cpp
+++ b/src/bench/optionsdialog.cpp
@@ -71,6 +71,7 @@ OptionsDialog::OptionsDialog(QWidget *parent)
connect(ui->optionsView, &QListWidget::currentItemChanged,
this, &OptionsDialog::optionSelected);
connect(m_appearanceForm, &AppearanceOptionPage::hideNonQMLFiles, this, &OptionsDialog::hideNonQMLFiles);
+ connect(m_importPathsForm, &ImportPathOptionPage::updateImportPaths, this, &OptionsDialog::updateImportPaths);
}
OptionsDialog::~OptionsDialog()
@@ -114,5 +115,9 @@ void OptionsDialog::reject()
QDialog::reject();
}
+void OptionsDialog::setImports(const QStringList &imports)
+{
+ m_importPathsForm->setImports(imports);
+}
diff --git a/src/bench/optionsdialog.h b/src/bench/optionsdialog.h
index 3b9b08d..2e728ce 100644
--- a/src/bench/optionsdialog.h
+++ b/src/bench/optionsdialog.h
@@ -58,11 +58,13 @@ public:
void setHostModel(HostModel* model);
void setDiscoveredHostsModel(HostModel* model);
+ void setImports(const QStringList &imports);
void openHostConfig(Host* host);
signals:
void hideNonQMLFiles(bool hide);
+ void updateImportPaths(const QStringList &imports);
private slots:
void optionSelected(QListWidgetItem* current);