diff --git a/qad/blockview/blockbusitem.cpp b/qad/blockview/blockbusitem.cpp index 0dcc423..8e56fbe 100644 --- a/qad/blockview/blockbusitem.cpp +++ b/qad/blockview/blockbusitem.cpp @@ -356,7 +356,7 @@ void BlockBusItem::checkDelete() { void BlockBusItem::emitAction(BlockItemBase::Action a) { - QMetaObject::invokeMethod(scene()->views().back(), "actionEvent", Q_ARG(BlockItemBase::Action, a), Q_ARG(QList, QList() << this)); + QMetaObject::invokeMethod(scene()->views().back(), "schemeAction", Q_ARG(BlockItemBase::Action, a), Q_ARG(QList, QList() << this)); QMetaObject::invokeMethod(scene()->views().back(), "connectionsChanged"); } diff --git a/qad/blockview/blockeditor/blockeditor.cpp b/qad/blockview/blockeditor/blockeditor.cpp index a2f6927..d5957f4 100644 --- a/qad/blockview/blockeditor/blockeditor.cpp +++ b/qad/blockview/blockeditor/blockeditor.cpp @@ -57,6 +57,7 @@ void BlockEditor::loadFile(QString path) { if (f.open(QIODevice::ReadOnly)) { cur_file = path; loadModel(f.readAll()); + QDir::setCurrent(QFileInfo(path).dir().path()); } setWindowTitle(src_title + QString(" - %1").arg(QFileInfo(path).baseName())); } @@ -159,6 +160,19 @@ void BlockEditor::on_actionRemove_items_triggered() { void BlockEditor::on_buttonSave_clicked() { + if (cur_file.isEmpty()) { + on_buttonSaveAs_clicked(); + return; + } + QFile f(cur_file); + if (f.open(QIODevice::WriteOnly)) { + f.write(saveModel()); + //setWindowTitle(src_title + QString(" - %1").arg(QFileInfo(c).baseName())); + } +} + + +void BlockEditor::on_buttonSaveAs_clicked() { QString c = QFileDialog::getSaveFileName(this, "Save block model to file", cur_file, "*.blockmodel"); if (!c.isEmpty()) { QFile f(c); diff --git a/qad/blockview/blockeditor/blockeditor.h b/qad/blockview/blockeditor/blockeditor.h index ee9581a..c9fde72 100644 --- a/qad/blockview/blockeditor/blockeditor.h +++ b/qad/blockview/blockeditor/blockeditor.h @@ -34,6 +34,7 @@ private slots: void arrangePins(); void on_actionRemove_items_triggered(); void on_buttonSave_clicked(); + void on_buttonSaveAs_clicked(); void on_buttonLoad_clicked(); void on_buttonClear_clicked(); void on_buttonPinAdd_clicked(); diff --git a/qad/blockview/blockeditor/blockeditor.ui b/qad/blockview/blockeditor/blockeditor.ui index f8c5efb..9422a54 100644 --- a/qad/blockview/blockeditor/blockeditor.ui +++ b/qad/blockview/blockeditor/blockeditor.ui @@ -41,7 +41,16 @@ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - + + 4 + + + 4 + + + 4 + + 4 @@ -124,7 +133,16 @@ Qt::AlignCenter - + + 2 + + + 2 + + + 2 + + 2 @@ -176,7 +194,7 @@ Add - + :/icons/list-add.png:/icons/list-add.png @@ -187,7 +205,7 @@ Clone - + :/icons/edit-copy.png:/icons/edit-copy.png @@ -214,7 +232,7 @@ Remove selected - + :/icons/edit-delete.png:/icons/edit-delete.png @@ -225,7 +243,7 @@ Remove all - + :/icons/edit-clear.png:/icons/edit-clear.png @@ -268,7 +286,16 @@ QFrame::Raised - + + 2 + + + 2 + + + 2 + + 2 @@ -300,10 +327,40 @@ - Save ... + Save - + + :/icons/document-save.png:/icons/document-save.png + + + Ctrl+S + + + + + + + Qt::Horizontal + + + QSizePolicy::Preferred + + + + 10 + 20 + + + + + + + + Save as ... + + + :/icons/document-save.png:/icons/document-save.png @@ -360,7 +417,7 @@ Clear - + :/icons/edit-clear.png:/icons/edit-clear.png @@ -370,7 +427,7 @@ - + :/icons/edit-delete.png:/icons/edit-delete.png @@ -394,6 +451,7 @@ +