void BrowserOperation::AddConstructorInitalizer()
{
    ConstructorInitializerDialog ciDialog;
    BrowserClass* container = static_cast<BrowserClass*>(get_container(UmlClass));
    QList<BrowserNode *> parents = container->parents();
    QString initializerDummy(" : ");
    for(BrowserNode* parent : parents)
    {
        BrowserClass* parentClass = static_cast<BrowserClass*>(parent);
        initializerDummy+=parentClass->get_name() + QString("(), ");
    }
    if(initializerDummy != " : ")
        initializerDummy.chop(2);

    QString constructorPrototype = static_cast<OperationData*>(this->get_data())->get_cppdef();

    QString constructorActual = TagManagers::Cpp::updated_def(static_cast<OperationData*>(this->get_data()));

    QString initializer(this->get_value("constructor-initializer"));
    if(initializer.trimmed().isEmpty())
        ciDialog.ui->edInitializer->setText(initializerDummy);
    else
        ciDialog.ui->edInitializer->setText(this->get_value("constructor-initializer"));
    ciDialog.ui->edConstructorPrototype->setText(constructorPrototype);
    ciDialog.ui->edActualConstructor->setText(constructorActual);
    ciDialog.Init(static_cast<OperationData*>(this->get_data()));
    ciDialog.resize(800, 400);
    if(ciDialog.exec() == QDialog::Accepted)
    {
        this->set_value("constructor-initializer", ciDialog.ui->edInitializer->toPlainText());
        this->modified();
        this->get_data()->get_browser_node()->modified();
        this->get_data()->get_browser_node()->package_modified();
    }
}