void DesignerMainWnd::closeEvent(QCloseEvent *event)
{
    QMessageBox msgbox(
                QMessageBox::NoIcon,
                tr("Lachesis Designer"),
                tr("Your file \'%1\' is modified, do you want to save it?").arg(""),
                QMessageBox::Yes|QMessageBox::No|QMessageBox::Cancel,
                this
                );
    while(getCurrentModel()&& getCurrentModel()->isModified())
    {
        int retValue = msgbox.exec();
        if(retValue == QMessageBox::Yes)
        {
            on_actionFileSave_triggered();
        }
        else if(retValue == QMessageBox::No)
        {
            globalUnregisterMainWnd(this);
            event->accept();
            return;
        }
        else
        {
            event->ignore();
            return;
        }
    }
    globalUnregisterMainWnd(this);
    event->accept();
}
void DesignerMainWnd::on_actionFileSaveAs_triggered()
{
    QFileDialog dlg(this, tr("Save File"));
    dlg.setAcceptMode(QFileDialog::AcceptSave);

    QStringList doclist = getCurrentModel()->getSupportedDocumentList();
    QStringList filters;
    for(int i=0;i<doclist.count();i++)
    {
        if(!DesignerDocMgr::isDocTypeSaveSupported(doclist[i]))
        {
            doclist.removeAt(i);
            i--;
        }
        else
        {
            filters << DesignerDocMgr::getDocTypeFilter(doclist[i]);
        }
    }

    dlg.setNameFilters(filters);

    if(dlg.exec()==QDialog::Accepted)
    {
        if(dlg.selectedFiles().size())
        {
            int filterIndex = filters.indexOf(dlg.selectedNameFilter());
            saveFile(dlg.selectedFiles()[0], doclist[filterIndex]);
        }
    }
}
void DesignerMainWnd::on_actionFileSave_triggered()
{
    if(!getCurrentModel()) return;
    if(!getCurrentModel()->getCurrentDoc()||
            getCurrentModel()->getCurrentDoc()->isReadOnly()||
            !DesignerDocMgr::isDocTypeSaveSupported(getCurrentModel()->getCurrentDoc()->metaObject()->className())
            )
    {
        on_actionFileSaveAs_triggered();
    }
    else
    {
        getCurrentModel()->getCurrentDoc()->updateFile();
    }
    updateTabInfo();
}
示例#4
0
文件: models.c 项目: DCurrent/openbor
s_model *getFirstModel(void)
{
    assert(modellist);
    List_GotoFirst(modellist);
    return getCurrentModel();

}
void PluginGame5GenerateSituationDialog::onClickOk()
{
    rdo::gui::model::Model* pModel = getCurrentModel();
    generateModel();
    pModel->runModel();
    done(Accepted);
}
void PluginGame5GenerateSituationDialog::clearAllTabs() const
{
    rdo::gui::model::Model* pModel = getCurrentModel();
    for (int i = 0; i < pModel->getTab()->tabBar()->count(); i++)
    {
        if (i != (int)rdo::FileType::FUN)
        {
            pModel->getTab()->getItemEdit(i)->clearAll();
        }
    }
}
示例#7
0
文件: models.c 项目: DCurrent/openbor
s_model *getNextModel(void)
{
    assert(modellist);
    if (List_GotoNext(modellist))
    {
        return getCurrentModel();
    }
    else
    {
        return NULL;
    }
}
void PluginGame5GenerateSituationDialog::generateModel() const
{
    rdo::gui::model::Model* pModel = getCurrentModel();
    if (pModel->getTab())
    {
        clearAllTabs();

        pModel->getTab()->getItemEdit(rdo::FileType::RTP)->appendText(modelRTP());
        pModel->getTab()->getItemEdit(rdo::FileType::RSS)->appendText(modelRSS());
        pModel->getTab()->getItemEdit(rdo::FileType::PAT)->appendText(modelPAT());
        pModel->getTab()->getItemEdit(rdo::FileType::DPT)->appendText(modelDPT());
    }
}
QStringList PluginGame5GenerateSituationDialog::parseModelFUN() const
{
    rdo::gui::model::Model* pModel = getCurrentModel();
    std::stringstream txtStream;
    pModel->getTab()->getItemEdit(rdo::FileType::FUN)->save(txtStream);
    QString tabStr = QString::fromStdString(txtStream.str());
    QRegExp regExp("(\\$Function)(\\s*)([A-Za-z0-9_А-Яа-я\\$]*)(\\s*):");

    QStringList list;
    int pos = 0;
    while ((pos = regExp.indexIn(tabStr, pos))!= -1)
    {
        list << regExp.cap(3);
        pos += regExp.matchedLength();
    }
    return list;
}
void DesignerMainWnd::saveFile(QString& fileName, QString docTypeName)
{
    DesignerDocComponent* newDoc =
            DesignerDocMgr::createEmptyDoc(docTypeName, getCurrentModel());
    if(newDoc)
    {
        DesignerDocComponent* oldDoc = currentModel->getCurrentDoc();
        currentModel->setCurrentDoc(newDoc);
        if(newDoc->saveToDiskFile(fileName))
        {
            if(oldDoc) oldDoc->deleteLater();
        }
        else
        {
            currentModel->setCurrentDoc(oldDoc);
        }
    }
    updateTabInfo();
}
示例#11
0
PluginGame5GenerateSituationDialog::PluginGame5GenerateSituationDialog(QWidget* pParent)
    : QDialog(pParent, Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint)
{
    setupUi(this);

    MultiSelectCompleter* completer = new MultiSelectCompleter(QStringList(), this);
    lineEditCustom->setCompleter(completer);
    connect(lineEditCustom, &QLineEdit::selectionChanged, completer, &MultiSelectCompleter::onLineEditTextChanged);

    adjustSize();
    hiddenWidget->setFixedWidth(hiddenWidget->width());
    hiddenWidget->hide();

    buttonHide->setCheckable(true);
    buttonHide->setDefault(false);

    adjustSize();
    setFixedSize(width(), height());
    setSizeGripEnabled(false);

    rdo::gui::model::Model* pModel = getCurrentModel();
    clearAllTabs();
    pModel->getTab()->getItemEdit(rdo::FileType::FUN)->clearAll();
    pModel->getTab()->getItemEdit(rdo::FileType::FUN)->appendText(modelFUN());

    connect(buttonHide        , &QPushButton::toggled, this, &PluginGame5GenerateSituationDialog::onClickHide         );
    connect(buttonSetLineup   , &QPushButton::clicked, this, &PluginGame5GenerateSituationDialog::callTilesOrderDialog);
    connect(buttonRandomLineup, &QPushButton::clicked, this, &PluginGame5GenerateSituationDialog::emitSolvabilityCheck);
    connect(buttonOk          , &QPushButton::clicked, this, &PluginGame5GenerateSituationDialog::onClickOk           );

    connect(this     , &PluginGame5GenerateSituationDialog::buttonRandomClicked,
            gameBoard, &Board::buildRandomOrder);
    connect(buttonRightLineup, &QPushButton::clicked,
            gameBoard        , &Board::buildCorrectOrder);

    if (pParent)
    {
        move(pParent->frameGeometry().center() - frameGeometry().center());
    }
}
QString QFFCSMaxEntEvaluationItem::getCurrentModelName() const
{
    return getModelName(getCurrentModel());
}