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); }
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); }
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())); }