IndeemaSoftware / QSimpleScadaSample

This is constructor for simple Scada UI
https://indeema.com
37 stars 13 forks source link

Save Program has unexpectedly finished #2

Closed Ahrovan closed 5 years ago

Ahrovan commented 5 years ago

Hi, when I want to save program, QSimpleScadaSample.exe crashed.

setEditable
initConnectedDevices
setEditable
The program has unexpectedly finished.
C:\Users\Design\QSimpleScadaSample-master\debug\QSimpleScadaSample.exe crashed.
vshevchyk commented 5 years ago

I reproduced this issues. I should investigate the reason.

vshevchyk commented 5 years ago

Please try now.

Ahrovan commented 5 years ago

https://github.com/IndeemaSoftware/QSimpleScada/blob/476ca7e386c7af5f5f8b2541d9806c4a042d00bf/QScadaBoard/qscadaboard.cpp#L244 image

problem started from #L244

Ahrovan commented 5 years ago

@vshevchyk Have an idea about the problem?

vshevchyk commented 5 years ago

!ScadaBoard object was not initialized correctly. Please check if your central widget is promoted correctly.

screen shot 2018-12-24 at 11 27 34 am

Ahrovan commented 5 years ago

image Similar to yours

Ahrovan commented 5 years ago

commented "mBoard->setEditable(true);" in:

void QScadaBoardController::initConnectedDevices(const QList<QScadaBoardInfo *> list)
{
    qDebug() << __FUNCTION__;
    for (QScadaBoardInfo *boardInfo : list) {
        if (boardInfo != nullptr) {
//            mBoard->setEditable(true);
            for (QScadaObjectInfo *info : boardInfo->objectList()) {
                QScadaObjectInfo *lInfo = new QScadaObjectInfo(info);
                mBoard->createNewObject(lInfo);
            }
        }
    }
    mBoard->update();
}

and see:

setEditable
initConnectedDevices
QObject::connect: Cannot connect QScadaObject::objectDoubleClicked(QScadaObject*) to (null)::objectDoubleClicked(QScadaObject*)
QObject::connect: Cannot connect QScadaObject::objectSelected(int) to (null)::newObjectSelected(int)
QObject::connect: Cannot connect QScadaObject::objectMove(int,int) to (null)::objectMove(int,int)
QObject::connect: Cannot connect QScadaObject::objectResize(int,int) to (null)::objectResize(int,int)
setGeometry: Unable to set geometry 100x100+100+100 on QWidgetWindow/'QScadaObjectClassWindow'. Resulting geometry:  148x100+100+100 (frame: 9, 38, 9, 9, custom margin: 0, 0, 0, 0, minimum size: 0x0, maximum size: 16777215x16777215).
The program has unexpectedly finished.

ok, object was not initialized correctly

vshevchyk commented 5 years ago

I see. Saving and opening was wrongly implemented in this sample. I will need more time to fix that.

I'll let you know when it's fixed. Thanks.

vshevchyk commented 5 years ago

It was fixed.