diff --git a/sources/ElementsCollection/elementscollectionwidget.cpp b/sources/ElementsCollection/elementscollectionwidget.cpp index 641ff6461..7971c54e5 100644 --- a/sources/ElementsCollection/elementscollectionwidget.cpp +++ b/sources/ElementsCollection/elementscollectionwidget.cpp @@ -367,9 +367,8 @@ void ElementsCollectionWidget::newDirectory() ElementsLocation location(feci->collectionPath()); ElementsCategoryEditor new_dir_editor(location, false, this); - if (new_dir_editor.exec() == QDialog::Accepted) { - reload(); - } + if (new_dir_editor.exec() == QDialog::Accepted) + m_model->addLocation(new_dir_editor.createdLocation()); } /** @@ -393,6 +392,9 @@ void ElementsCollectionWidget::newElement() ElementsLocation loc(feci->collectionPath()); elmt_wizard.preselectedLocation(loc); elmt_wizard.exec(); + + foreach (QETElementEditor *element_editor, QETApp::instance()->elementEditors()) + connect(element_editor, &QETElementEditor::saveToLocation, this, &ElementsCollectionWidget::locationWasSaved); } /** diff --git a/sources/elementscategoryeditor.cpp b/sources/elementscategoryeditor.cpp index d1575fb14..24564a103 100644 --- a/sources/elementscategoryeditor.cpp +++ b/sources/elementscategoryeditor.cpp @@ -85,6 +85,15 @@ ElementsCategoryEditor::ElementsCategoryEditor(const ElementsLocation &location, ElementsCategoryEditor::~ElementsCategoryEditor() { } +/** + * @brief ElementsCategoryEditor::createdLocation + * @return the location of the created directory + */ +ElementsLocation ElementsCategoryEditor::createdLocation() const +{ + return m_created_location; +} + /** * @brief ElementsCategoryEditor::setUpWidget */ @@ -150,8 +159,8 @@ void ElementsCategoryEditor::acceptCreation() ElementCollectionHandler ech_; NamesList nl = m_names_list->names(); - ElementsLocation loc = ech_.createDir(m_location, dirname, nl); - if (loc.isNull()) { + m_created_location = ech_.createDir(m_location, dirname, nl); + if (m_created_location.isNull()) { QET::QetMessageBox::critical(this, tr("Erreur", "message box title"), tr("Impossible de créer la catégorie", "message box content")); diff --git a/sources/elementscategoryeditor.h b/sources/elementscategoryeditor.h index 9bc6f3fec..e1ec201bb 100644 --- a/sources/elementscategoryeditor.h +++ b/sources/elementscategoryeditor.h @@ -37,6 +37,8 @@ class ElementsCategoryEditor : public QDialog public: ElementsCategoryEditor(const ElementsLocation &location, bool edit = true, QWidget *parent = nullptr); virtual ~ElementsCategoryEditor(); + + ElementsLocation createdLocation() const; private: ElementsCategoryEditor(const ElementsCategoryEditor &); @@ -48,6 +50,7 @@ class ElementsCategoryEditor : public QDialog QFileNameEdit *m_file_line_edit; bool m_edit_mode; ElementsLocation m_location; + ElementsLocation m_created_location; private: void setUpWidget();