#include "versionselectwidget.h" #include "ui_versionselectwidget.h" #include "ui_versionselectwidget.h" #include VersionSelectWidget::VersionSelectWidget(QWidget *parent) : QWidget(parent), ui(new Ui::VersionSelectWidget), selectedVersion(nullptr) { ui->setupUi(this); setWindowFlags(Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint); setAttribute(Qt::WA_ShowModal,true); } void VersionSelectWidget::initialize(SendSystem *sendSystem,VersionContainer *versionContainer,NotifyController *notifyController) { connect(this,&VersionSelectWidget::sigSendSwitchVersion,sendSystem,&SendSystem::sendChangeVersion,Qt::AutoConnection); connect(this,&VersionSelectWidget::sigSendCopyVersion,sendSystem,&SendSystem::sendCopyVersion,Qt::AutoConnection); connect(this,&VersionSelectWidget::sigSendDeleteVersion,sendSystem,&SendSystem::sendDeleteVersion,Qt::AutoConnection); connect(this,&VersionSelectWidget::sigSendNotify,notifyController,&NotifyController::showWarning,Qt::AutoConnection); this->versionContainer = versionContainer; hide(); setWindowTitle(tr("Version control")); } void VersionSelectWidget::fillView(QList *serverData) { show(); ui->verListView->clear(); serverDataList = serverData; ui->verValue->setText(versionContainer->getServerVersionData()->getViewName()); foreach(StreamingVersionData *data,*serverData) { ui->verListView->addItem(data->getViewName()); } } void VersionSelectWidget::on_verListView_itemDoubleClicked(QListWidgetItem *item) { foreach(StreamingVersionData *data,*serverDataList) { if(data->getViewName() == item->text()) { QString info = tr("Version name: ") + data->getViewName() + "\n"; info.append(tr("Created: ") + data->getCreateData().toString() + "\n"); info.append(tr("Changeable: ") + changableText(data->getIsChangeable()) + "\n"); info.append(tr("Author: ") + data->getAuthor()); ui->infoValue->setText(info); selectedVersion = data; } } } QString VersionSelectWidget::changableText(bool flag) { if(flag) return tr("Yes"); else return tr("No"); } void VersionSelectWidget::on_createDuplicateButton_clicked() { if (selectedVersion == nullptr) { sigSendNotify(tr("Version not selected")); return; } NewVersionWidget *newVersionWidget = new NewVersionWidget; newVersionWidget->initialize(this,selectedVersion->getViewName()); newVersionWidget->show(); } void VersionSelectWidget::sendCopyEmit(QString newName) { QString result = selectedVersion->getViewName() + ";" + newName + ";" + authorName; if (selectedVersion == nullptr) { sigSendNotify(tr("Version not selected")); return; } //versionContainer->setLocalVersionData(selectedVersion); emit sigSendCopyVersion(result); } void VersionSelectWidget::on_DeleteVersionButton_clicked() { if (selectedVersion == nullptr) { sigSendNotify(tr("Version not selected")); return; } emit sigSendDeleteVersion(selectedVersion); } void VersionSelectWidget::on_switchServerVersionButton_clicked() { if (selectedVersion == nullptr) { sigSendNotify(tr("Version not selected")); return; } versionContainer->setServerVersionData(selectedVersion); ui->verValue->setText(selectedVersion->getViewName()); emit sigSendSwitchVersion(selectedVersion); } void VersionSelectWidget::setAuthor(QString name) { authorName = name; } VersionSelectWidget::~VersionSelectWidget() { delete ui; }