コード例 #1
0
ファイル: jobwidget.cpp プロジェクト: bradparks/tarsnap-gui
JobWidget::JobWidget(QWidget *parent) :
    QWidget(parent),
    _ui(new Ui::JobWidget)
{
    _ui->setupUi(this);
    _ui->restoreListWidget->setAttribute(Qt::WA_MacShowFocusRect, false);

    connect(_ui->listArchivesButton, &QPushButton::clicked,
            [=](){
                _ui->stackedWidget->setCurrentWidget(_ui->jobRestorePage);
            });
    connect(_ui->restoreBackButton, &QPushButton::clicked,
            [=](){
                _ui->stackedWidget->setCurrentWidget(_ui->jobDetailPage);
            });
    connect(_ui->optionsBackButton, &QPushButton::clicked,
            [=](){
            if(_job->objectKey().isEmpty())
                _ui->stackedWidget->setCurrentWidget(_ui->jobNewPage);
            else
                _ui->stackedWidget->setCurrentWidget(_ui->jobDetailPage);
            });
    connect(_ui->optionsButton, &QPushButton::clicked,
            [=](){
                _ui->stackedWidget->setCurrentWidget(_ui->jobOptionsPage);
            });
    connect(_ui->jobNameLineEdit, &QLineEdit::textChanged,
            [=](){
                    emit enableSave(canSave());
            });
    connect(_ui->newJobTreeWidget, &FilePicker::selectionChanged,
            [=](){
                    emit enableSave(canSave());
            });
    connect(_ui->newJobOptionsButton, &QPushButton::clicked,
            [=](){
                _ui->stackedWidget->setCurrentWidget(_ui->jobOptionsPage);
            });

    connect(_ui->cancelButton, SIGNAL(clicked()), this, SIGNAL(cancel()));
    connect(_ui->restoreLatestArchiveButton, SIGNAL(clicked()), this, SLOT(restoreLatestArchive()));
    connect(_ui->restoreListWidget, SIGNAL(inspectArchive(ArchivePtr)), this, SIGNAL(inspectJobArchive(ArchivePtr)));
    connect(_ui->restoreListWidget, SIGNAL(restoreArchive(ArchivePtr,ArchiveRestoreOptions)), this, SIGNAL(restoreJobArchive(ArchivePtr,ArchiveRestoreOptions)));
    connect(_ui->restoreListWidget, SIGNAL(deleteArchives(QList<ArchivePtr>)), this, SIGNAL(deleteJobArchives(QList<ArchivePtr>)));
}
/**
 * 界面转换公有槽函数,接收ManageTunnelWidget发出的编辑桥梁限界的信号
 * @param tunnelid 隧道ID
 */
void InputBridgeWidget::slotBridgeToEdit(int newtunnelid, QString newtunnelname)
{
    this->tunnelid = newtunnelid;
    qDebug() << "slot in Widget inputBridgeClearance" << tunnelid;

    bridgeCollectModel = TaskTunnelDAO::getTaskTunnelDAOInstance()->getTaskTunnels_OneTunnel(tunnelid);

    QString collectdate;
    bool ret = false;
    if (bridgeCollectModel->rowCount() > 0)
    {
        ret = true;
        // 得到采集隧道ID
        tasktunnelid = bridgeCollectModel->record(0).value(0).toLongLong();
        // 采集时间
        collectdate = bridgeCollectModel->record(0).value(2).toString();

        ret = ClearanceOutputDAO::getClearanceOutputDAOInstance()->DBDataToClearanceData(datas, tasktunnelid, ClearanceType::Straight_Smallest);
        ret = ClearanceOutputDAO::getClearanceOutputDAOInstance()->DBDataToClearanceData(datal, tasktunnelid, ClearanceType::LeftCurve_Smallest);
        ret = ClearanceOutputDAO::getClearanceOutputDAOInstance()->DBDataToClearanceData(datar, tasktunnelid, ClearanceType::RightCurve_Smallest);
    }
    else
    {
        ret = false;
        // 得到采集隧道ID
        tasktunnelid = -1;
        // 采集时间
        collectdate = QDate::currentDate().toString("yyyyMMdd");
    }
    if (ret)
    {
        // 更新限界值并显示到界面上
        updateBridgeClearanceData();
        ui->dateEdit->setDate(QDate::fromString(collectdate));
        ui->statusArea->append(tr("加载桥梁%1限界成功").arg(newtunnelname));
    }
    else
    {
        initBridgeClearanceData();
        ui->dateEdit->setDate(QDate::currentDate());
        ui->statusArea->append(tr("加载已有桥梁%1限界失败,请输入最新限界!").arg(newtunnelname));
    }
    ui->tunnelname->setText(newtunnelname);
    // 初始没有做任何编辑
    hasedit = false;
    canSave(false);
}
コード例 #3
0
ファイル: savefile.cpp プロジェクト: St0rmcrow/scummvm
bool SaveWriter::writePart(uint32 partN, const SavePart *part) {
	// Write the part
	if (!SaveContainer::writePart(partN, part))
		return false;

	// If all parts have been written, save and clear
	if (hasAllParts() && canSave()) {
		if (save()) {
			clear();
			return true;
		}

		return false;
	}

	return true;
}
void InputBridgeWidget::saveChanges()
{
    QString currentcollectdate = ui->dateEdit->dateTime().toString("yyyyMMdd");
    __int64 taskid = TaskDAO::getTaskDAOInstance()->getTaskID(tunnelid, currentcollectdate);
    QString tunnelname = ui->tunnelname->text();
    qDebug() << "collectdate:" << currentcollectdate << ", tunnelid:" << tunnelid << ", tunnelname:" << tunnelname << ", taskid:" << taskid << ", tasktunnelid:" << tasktunnelid;

    if (tasktunnelid < 0)
    {
        ui->statusArea->append(QObject::tr("首次输入桥梁采集任务组(任务工程),创建新桥梁采集任务组。。。"));
        // 没有这个任务组
        if (taskid < 0)
            taskid = TaskDAO::getTaskDAOInstance()->addTask(1, currentcollectdate, true, tunnelname+currentcollectdate);

        if (taskid < 0)
        {
            ui->statusArea->append(QObject::tr("创建新桥梁采集任务组失败!重新保存桥梁任务%1失败,数据库中无法添加采集日期为%2的任务隧道组").arg(tunnelname).arg(currentcollectdate));
            return;
        }
        else
        {
            ui->statusArea->append(QObject::tr("创建新桥梁采集任务组成功!"));
        }

        ui->statusArea->append(QObject::tr("创建新桥梁采集任务(工程中的隧道任务)。。。"));
        // 有当天采集的任务组,但没有这个隧道任务
        if (TaskTunnelDAO::getTaskTunnelDAOInstance()->addTaskTunnel(taskid, tunnelid, 0.5, true, true, 0) == 0)
        {
            tasktunnelid = TaskTunnelDAO::getTaskTunnelDAOInstance()->getTaskTunnelID(tunnelid, currentcollectdate);
            ui->statusArea->append(QObject::tr("创建新桥梁采集任务(工程中的隧道任务)成功,tasktunnelid=%1!").arg(tasktunnelid));
        }
        else
        {
            ui->statusArea->append(QObject::tr("创建新桥梁采集任务(工程中的隧道任务)失败!重新保存桥梁采集任务%1失败,数据库中采集日期为%2的任务组存在,但无法添加采集隧道").arg(tunnelname).arg(currentcollectdate));
            return;
        }
    }
        
    if (tasktunnelid >= 0)
    {
        int ret0 = TaskTunnelDAO::getTaskTunnelDAOInstance()->updateTaskTunnel(tasktunnelid, taskid, tunnelid, 0.5, true, true, 0);
        int height = ui->lineEdit_minHeight->text().toInt();
        datas.setMinCenterHeight(height);
        datal.setMinCenterHeight(height);
        datar.setMinCenterHeight(height);
        int ret1 = ClearanceOutputDAO::getClearanceOutputDAOInstance()->clearanceDataToDBData(datas, tasktunnelid, ClearanceType::Straight_Smallest);
        int ret2 = ClearanceOutputDAO::getClearanceOutputDAOInstance()->clearanceDataToDBData(datal, tasktunnelid, ClearanceType::LeftCurve_Smallest);
        int ret3 = ClearanceOutputDAO::getClearanceOutputDAOInstance()->clearanceDataToDBData(datar, tasktunnelid, ClearanceType::RightCurve_Smallest);

        qDebug() << "clearanceDataToDBData" << ret1 << ret2 << ret3;
        //straightdata.showMaps();

        ui->statusArea->append(QObject::tr("重新保存桥梁采集任务%1并添加到数据库完成").arg(tunnelname));
    }
    else 
    {
        ui->statusArea->append(QObject::tr("重新保存桥梁采集任务%1失败,桥梁采集任务(工程中的隧道任务)找不到ID为%2的tasktunnel").arg(tunnelname).arg(tasktunnelid));
    }

    ui->saveButton->setEnabled(false);
    ui->modifyButton->setEnabled(true);
    hasedit = false;
    canSave(false);
}
void InputBridgeWidget::canBeModified()
{
    hasedit = false;
    canSave(true);
}
コード例 #6
0
ファイル: access-control.cpp プロジェクト: Samsung/ckm
int AccessControl::canModify(
        const CKM::Credentials &accessorCred,
        const Label & ownerLabel) const
{
    return canSave(accessorCred, ownerLabel);
}
/**
 * 隧道管理界面类实现
 * 继承自QWidget
 * @author fanxiang
 * @version 1.0.0
 * @date 2013-08-18
 */
ManageTunnelWidget::ManageTunnelWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::ManageTunnelWidget)
{
    ui->setupUi(this);

    mapper = new QDataWidgetMapper(this);

    linesModel = NULL;
    tunnelsModel = NULL;
    curvesModel = NULL;

    loadLinesData();
    loadTunnelData();

    /* 开始选中查找模式为学号模式 */
    ui->radioButton->click();

    /* 开始不能修改 */
    currentRow = 0;
    changed = false;
    saveType = Save_Modify;
    cannotModify();

    /* 线路及隧道数据列表更新信号槽 */
    connect(ui->linesView, SIGNAL(clicked(QModelIndex)), this, SLOT(updateTunnelsView(const QModelIndex &)));
    // 【作废】updateCurvesView已在setCurrentMapper中调用
    //connect(ui->tunnelsView, SIGNAL(clicked(QModelIndex)), this, SLOT(updateCurvesView(const QModelIndex &)));

    /* 添加删除隧道槽 */
    connect(ui->newTunnelButton, SIGNAL(clicked()), this, SLOT(newTunnel()));
    connect(ui->deleteTunnelButton, SIGNAL(clicked()), this, SLOT(deleteTunnel()));
    /* 添加删除隧道对应曲线槽 */
    //connect(ui->curvesView, SIGNAL(itemChanged(QTableWidgetItem*)), this, SLOT(changeCurveData()));
    connect(ui->newCurveButton, SIGNAL(clicked()), this, SLOT(newCurve()));
    connect(ui->deleteCurveButton, SIGNAL(clicked()), this, SLOT(deleteCurve()));

    /* 刷新线路隧道 */
    connect(ui->refreshButton, SIGNAL(clicked()), this, SLOT(refreshLinesView()));

    /* 具体隧道信息信号槽 */
    connect(ui->tunnelsView, SIGNAL(clicked(QModelIndex)), this, SLOT(showTunnelDetail(const QModelIndex &)));
    //connect(ui->stumajorcombobox, SIGNAL(currentIndexChanged(const QString &)), this, SLOT(updateStuClasses(const QString &)));

    /* 修改隧道信息信号槽 */
    connect(ui->lineEdit_tunnelid, SIGNAL(textChanged(QString)), this, SLOT(canSave()));
    connect(ui->lineEdit_name, SIGNAL(textChanged(QString)), this, SLOT(canSave()));
    connect(ui->lineEdit_IDstd, SIGNAL(textChanged(QString)), this, SLOT(canSave()));
    connect(ui->lineEdit_startPoint, SIGNAL(textChanged(QString)), this, SLOT(canSave()));
    connect(ui->lineEdit_endPoint, SIGNAL(textChanged(QString)), this, SLOT(canSave()));
    connect(ui->combobox_isNewLine, SIGNAL(currentIndexChanged(int)), this, SLOT(canSave()));
    connect(ui->combobox_lineType, SIGNAL(currentIndexChanged(int)), this, SLOT(canSave()));
    connect(ui->radioButton_isDoubleLine, SIGNAL(clicked()), this, SLOT(canSave()));
    connect(ui->radioButton_isSingleLine, SIGNAL(clicked()), this, SLOT(canSave()));
    connect(ui->radioButton_isUpLink, SIGNAL(clicked()), this, SLOT(canSave()));
    connect(ui->radioButton_isDownLink, SIGNAL(clicked()), this, SLOT(canSave()));
    connect(ui->radioButton_isBridge, SIGNAL(clicked()), this, SLOT(canSave()));
    connect(ui->radioButton_notBridge, SIGNAL(clicked()), this, SLOT(canSave()));

    // 隧道中的曲线界面双击修改后,也可点击保存按钮
    connect(ui->curvesView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(canSave()));

    connect(ui->firstButton, SIGNAL(clicked()), this, SLOT(toFirst()));
    connect(ui->previousButton, SIGNAL(clicked()), this, SLOT(toPrevious()));
    connect(ui->nextButton, SIGNAL(clicked()), this, SLOT(toNext()));
    connect(ui->lastButton, SIGNAL(clicked()), this, SLOT(toLast()));

    connect(ui->modifyButton, SIGNAL(clicked()), this, SLOT(canModify()));

    /* 查找隧道槽 */
    connect(ui->findButton, SIGNAL(clicked()), this, SLOT(findTunnel()));
    connect(ui->findEdit,SIGNAL(textEdited(QString)),this,SLOT(showAllLines()));
    /* 编辑桥梁槽 */
    connect(ui->editBridgeClearanceButton, SIGNAL(clicked()), this, SLOT(editBridgeClearance()));
}