From 989011859ba2712a173ea393b0ff034f5c8d965e 2018-01-09 16:15:18 From: mperrinel Date: 2018-01-09 16:15:18 Subject: [PATCH] Merge branch 'feature/FixCatalogue' into develop --- diff --git a/core/include/Common/DateUtils.h b/core/include/Common/DateUtils.h index 7d80539..b185027 100644 --- a/core/include/Common/DateUtils.h +++ b/core/include/Common/DateUtils.h @@ -5,6 +5,10 @@ #include +/// Format for datetimes +const auto DATETIME_FORMAT = QStringLiteral("dd/MM/yyyy \nhh:mm:ss:zzz"); +const auto DATETIME_FORMAT_ONE_LINE = QStringLiteral("dd/MM/yyyy hh:mm:ss:zzz"); + /** * Utility class with methods for dates */ diff --git a/core/src/Catalogue/CatalogueController.cpp b/core/src/Catalogue/CatalogueController.cpp index ee018a0..b9e5743 100644 --- a/core/src/Catalogue/CatalogueController.cpp +++ b/core/src/Catalogue/CatalogueController.cpp @@ -290,6 +290,14 @@ void CatalogueController::saveCatalogue(std::shared_ptr catalogue) { impl->saveCatalogue(catalogue, true); impl->m_KeysWithChanges.remove(impl->catalogueUniqueKey(catalogue)); + + // remove key of events of the catalogue + if (catalogue->getType() == CatalogueType::STATIC) { + auto events = this->retrieveEventsFromCatalogue(catalogue); + for (auto event : events) { + impl->m_KeysWithChanges.remove(impl->eventUniqueKey(event)); + } + } } void CatalogueController::discardCatalogue(std::shared_ptr catalogue, bool &removed) diff --git a/core/src/Variable/VariableModel.cpp b/core/src/Variable/VariableModel.cpp index 490ebc8..be665ef 100644 --- a/core/src/Variable/VariableModel.cpp +++ b/core/src/Variable/VariableModel.cpp @@ -52,9 +52,6 @@ const auto COLUMN_PROPERTIES = QHash{ {UNIT_COLUMN, {QObject::tr("Unit")}}, {MISSION_COLUMN, {QObject::tr("Mission")}}, {PLUGIN_COLUMN, {QObject::tr("Plugin")}}}; -/// Format for datetimes -const auto DATETIME_FORMAT = QStringLiteral("dd/MM/yyyy \nhh:mm:ss:zzz"); - QString uniqueName(const QString &defaultName, const std::vector > &variables) { diff --git a/gui/include/Catalogue/CatalogueEventsWidget.h b/gui/include/Catalogue/CatalogueEventsWidget.h index b40dfca..d9b6307 100644 --- a/gui/include/Catalogue/CatalogueEventsWidget.h +++ b/gui/include/Catalogue/CatalogueEventsWidget.h @@ -30,6 +30,8 @@ signals: void selectionZoneAdded(const std::shared_ptr &event, const QString &productId, VisualizationSelectionZoneItem *selectionZone); + void eventCataloguesModified(const QVector > &catalogues); + public: explicit CatalogueEventsWidget(QWidget *parent = 0); virtual ~CatalogueEventsWidget(); @@ -38,6 +40,7 @@ public: void addEvent(const std::shared_ptr &event); void setEventChanges(const std::shared_ptr &event, bool hasChanges); + void setEventsChanges(const std::shared_ptr &event, bool hasChanges); QVector > displayedCatalogues() const; bool isAllEventsDisplayed() const; @@ -51,6 +54,11 @@ public slots: void clear(); void refresh(); + // QWidget interface +protected: + void keyPressEvent(QKeyEvent *event); + + private: Ui::CatalogueEventsWidget *ui; diff --git a/gui/include/Catalogue/CatalogueSideBarWidget.h b/gui/include/Catalogue/CatalogueSideBarWidget.h index f4b8c07..6259021 100644 --- a/gui/include/Catalogue/CatalogueSideBarWidget.h +++ b/gui/include/Catalogue/CatalogueSideBarWidget.h @@ -24,6 +24,7 @@ signals: void allEventsSelected(); void trashSelected(); void selectionCleared(); + void catalogueSaved(const std::shared_ptr &catalogue); public: explicit CatalogueSideBarWidget(QWidget *parent = 0); @@ -35,6 +36,10 @@ public: QVector > getCatalogues(const QString &repository) const; + // QWidget interface +protected: + void keyPressEvent(QKeyEvent *event); + private slots: void emitSelection(); diff --git a/gui/resources/icones/discard.png b/gui/resources/icones/discard.png old mode 100644 new mode 100755 index bfc6b097e9fa0c1093924faeca285fd4cf9c262d..b6fc4f32cb0f7b07c0b391e8d912072f1a2b9099 GIT binary patch delta 1210 zc$@*c1V#JE4)O_*NPh&BNklS_S_Bsdy2JMLY`<5kbL&KQ09YtB4grTQz7^YLr;PlvI*N56^^b)68af zXP$YUoq50DOSZJ#KKndhI-h-JW)~z$k|arzBuSDaNs=TJKnL`OJsY57wuU_$ zphLC`dp1Bvl!ZMTpyhT7dp1Ce4HEWjfR-9G?AZVIi!_z?iBl?AZWgrtYw31B{UvVb2B_6S2ac4KM~`hCLe~f{7ZR zYd`P`a8ZrVIjFUsI@j~~4De4;%RP@z1HTuw*z zIE3}qcffD7@PC}D4KM?|1>9f5SaSCV@Hy~B&(FoABY#S)>9Ch${RkWe9s#DSP3L$? z5%zMgRp1El0&v^tQ=7loJ9}-Z&w!_aYe$>r{4}+**S1;(-Xk0)CWoH&Ofz+=>Vo@OA1y}W83xVrC()yS}yXPpG@?XzyRFzn@B>%ajb9TLWNXR1Rc zfR}(nM7-8wj&PAg>Tb9C*So;wC2LsOEN~)&7ismcqri0~YgpL~@KFXY(&}F)fa^=v zurfD-#-olA`E8=_4)U*0fh)=uunva9{Ody^pMPF99OhqdGvZtNLEcv`0dD|zllVl1 zO5H)YAL2;Nf5dQ@cdY{tmabln42SvF60oOy>FQ%R%(sp*L@2Csf?<|$wd<`Fo+Agp z0zVV(@>wL@0kjDGNjNuu7Fa2Mo-O{)R8f}{Kc@-1bG@~PFh^H5^g4PS2A&+`57u#O z*nd13UCvZu1^BwCF^Efl{O%LK3+xSbHx?gZ{BejVE!VOKZ0+`{29;f22l>?2He ziaVD3xdwQMFvc&5GY<>EWlg;xNEZ%&0p29sg>x5~USYd~n+SJTzYqLNeRK12lP?0& zgu}L(Cfq#o3DxK39AW>aQBCh0w%IJm6H zg;?QGAtO9X*aPV|SFfcS;D#9CP@8ThTsd4eS8HVO@il&7L|hZVUcxz!?dEGf-G9)| z=U2wWH4VJZh4ZyeMkny<2#4x#FX1|Y-Z?vzbVOTJ4Tsvey!7N4V(aB$=K$^~vN|Gc=k|arzBuSDaNs=T@~ delta 1813 zc$@(h2kQ9p3CIqRNPhS*TT29L9h9oI5p{re>BH6@_6`HmS{{`C1P> z1VIEr5J3=GmN^v#LJ>AkYDI-%^Q;g=5Slq;+9Zusq*;2cw3o7neHY$)Ji|WwthN4Y z`rv!;D%|he-_Lu`Is5E=Kvq`*&jDS+IV6+;^MJX+ImC1o@P99`2Utp65UBC@40x_+ z8UbAm{Kwt{5EBHo<15dR3}sW-uK+tIXXdt+j#^pnYpw;-nLvS6f%ZCa<(eagM z%fvLN>nUD7Gzi)qKR5_(p#AcpK#&3RDc|3F2yUc&dEX)EbbRGIYzNn+o9Mi}uMp@O z-&+V~ps&1d5P#?%UwM|z5}jx!`pf$QfvNGmfnXNq%DWDM>G7S1U=HTXy9$A=@s)44 zQ>&QDKFkf(*FVKnY(UaBY0$nI=msWx)LcK^1t$fzVPAgf_nNi~`;1BEM8iI;<1~p^je&f-c|%2SQ3g5c>E{A?OBP zbRe7*1b?xNuYB{M?sNmo90(-^L2Tm>fuK4t{^i7{iNFM45<;g`g>?zAs|)x}I*FjJ zkPaZM%c{T%U>Gn}I82gVtpui52mY{}1VKz%1xyEaRtJ4?IdCvAMI=&^Ev*7B1^OX> z5I9%~g0S^5gT{w_0e~EW;Uow`(`stQhxz~jynjc6ASA5@rU5%@|Dq89kRS*}pU_}@ zXbu465R3pOYYvrUM{8&@KC}h^5(K_#4f(5m+nfEPA^<=R!676Fe9>A8j1R>D0C<-K zfe%_o!STx|10F#BOjdGzuOSRCri&R+g1`;0M__!V z41d2a84Jyy0;5{4WLOD;h{spTfQOMkD6x104vnvrAh0+7=z^PASAxK-Kf~eil`13% zOn4)3Xd63-sscQM{6P!FUX8DmAkgDYcsRb2uXh)5#hZXJZ69^VlprYQ&k10Br3&yE z@(0xye*qj;>PS1R1VO~(D^-BUkw3_;`hQDcZ0V!xi4p`6kFVtW?dNp+D4V>-AzRLXgIH(^eozn!J>))w8L+^CP`1Zc ziVcFgx1!5{`y2>o+P?!Q)s`oR;AIE$nRe3~Qf0tG2SS=0|KvvH2_J&5DR4uoP(K6c z5AsL8t<*!95NrmHD9|4W?*`9B$5-kBUU49|E`I}zYokAqL-3>n;dP9EN`JfM2?v62 zf$=5!133hX9Vk)O+bK7`QV;N|13k+6d*H|p`UCl!37&PJOquad?X*1pLhu7{l!pF5 z4#D#dlxk=E({z=`KL~yVj@H;8fG%LE1LazI2YSa>>H%JJpkFKh1RP_aKaf99Ugki_ zM(zhrH&q_@A@~_M)>!)ib${dLqvL)CPHq@h5AeD`zgGSQIL=`2A#&{?^aGQPHXbV1 z`u_?{Fxt3|dV#k(46egFfhmT&)>AKTK(GZk-f-83>LWj&9^3dzy}%oFa@q1$V50Gs zEwmr70-5orTIknGQV{$GoM53}A?**mkG=AL0%uxjR!qIXo7n4L`+t50Cv*Vt0r8Em zWD9~;r?f?NAn+mP%KrtNWvxy7G7Ul56I)hw5bzOZ#y{I)kFqlL>`2$S4J#T3tVHkl z=U8pfnRG+21GBGi8qsiIHG0NB*K&3p>O&6%wqNAZsu93i%9sBeKgU<<1Ky^5f9cmb zv}h!-o^s=#Cy-aS%6~%O>a(3v8U<{iz46bN2x>@uz&o_}YtM%VylrVTu#wi~cM;b3 zN<|^?{nuVojUm4(rP=rwh@~^HRuF^={}7EOzdEJ1{BGbv!Cbb~=mc6U{ek=fh0P2t zf01Y+yQ+m?H*m3NA_0vfzhEKC^6Z7+A7GkPi2ng4RV#XAR1Va+00000NkvXXu0mjf D|E)hp diff --git a/gui/src/Catalogue/CatalogueEventsModel.cpp b/gui/src/Catalogue/CatalogueEventsModel.cpp index e34edfc..baae51d 100644 --- a/gui/src/Catalogue/CatalogueEventsModel.cpp +++ b/gui/src/Catalogue/CatalogueEventsModel.cpp @@ -48,13 +48,23 @@ struct CatalogueEventsModel::CatalogueEventsModelPrivate { case CatalogueEventsModel::Column::Name: return event->getName(); case CatalogueEventsModel::Column::TStart: - return nbEventProducts(event) > 0 ? DateUtils::dateTime(event->getTStart()) - : QVariant{}; + return nbEventProducts(event) > 0 + ? DateUtils::dateTime(event->getTStart()) + .toString(DATETIME_FORMAT_ONE_LINE) + : QVariant{}; case CatalogueEventsModel::Column::TEnd: - return nbEventProducts(event) > 0 ? DateUtils::dateTime(event->getTEnd()) - : QVariant{}; - case CatalogueEventsModel::Column::Product: - return QString::number(nbEventProducts(event)) + " product(s)"; + return nbEventProducts(event) > 0 + ? DateUtils::dateTime(event->getTEnd()) + .toString(DATETIME_FORMAT_ONE_LINE) + : QVariant{}; + case CatalogueEventsModel::Column::Product: { + auto eventProducts = event->getEventProducts(); + QStringList eventProductList; + for (auto evtProduct : eventProducts) { + eventProductList << evtProduct.getProductId(); + } + return eventProductList.join(";"); + } case CatalogueEventsModel::Column::Tags: { QString tagList; auto tags = event->getTags(); @@ -99,9 +109,11 @@ struct CatalogueEventsModel::CatalogueEventsModelPrivate { case CatalogueEventsModel::Column::Name: return eventProduct->getProductId(); case CatalogueEventsModel::Column::TStart: - return DateUtils::dateTime(eventProduct->getTStart()); + return DateUtils::dateTime(eventProduct->getTStart()) + .toString(DATETIME_FORMAT_ONE_LINE); case CatalogueEventsModel::Column::TEnd: - return DateUtils::dateTime(eventProduct->getTEnd()); + return DateUtils::dateTime(eventProduct->getTEnd()) + .toString(DATETIME_FORMAT_ONE_LINE); case CatalogueEventsModel::Column::Product: return eventProduct->getProductId(); case CatalogueEventsModel::Column::Tags: diff --git a/gui/src/Catalogue/CatalogueEventsWidget.cpp b/gui/src/Catalogue/CatalogueEventsWidget.cpp index 6a70ae8..b0c94ea 100644 --- a/gui/src/Catalogue/CatalogueEventsWidget.cpp +++ b/gui/src/Catalogue/CatalogueEventsWidget.cpp @@ -19,14 +19,12 @@ #include #include +#include #include #include Q_LOGGING_CATEGORY(LOG_CatalogueEventsWidget, "CatalogueEventsWidget") -/// Fixed size of the validation column -const auto VALIDATION_COLUMN_SIZE = 35; - /// Percentage added to the range of a event when it is displayed const auto EVENT_RANGE_MARGE = 30; // in % @@ -354,6 +352,7 @@ CatalogueEventsWidget::CatalogueEventsWidget(QWidget *parent) ui->treeView->setDragDropMode(QAbstractItemView::DragDrop); ui->treeView->setDragEnabled(true); + connect(ui->btnTime, &QToolButton::clicked, [this](auto checked) { if (checked) { ui->btnChart->setChecked(false); @@ -384,17 +383,37 @@ CatalogueEventsWidget::CatalogueEventsWidget(QWidget *parent) if (!events.isEmpty() && eventProducts.isEmpty()) { - if (QMessageBox::warning(this, tr("Remove Event(s)"), - tr("The selected event(s) will be permanently removed " - "from the repository!\nAre you sure you want to continue?"), - QMessageBox::Yes | QMessageBox::No, QMessageBox::No) - == QMessageBox::Yes) { + auto canRemoveEvent + = !this->isAllEventsDisplayed() + || (QMessageBox::warning( + this, tr("Remove Event(s)"), + tr("The selected event(s) will be permanently removed " + "from the repository!\nAre you sure you want to continue?"), + QMessageBox::Yes | QMessageBox::No, QMessageBox::No) + == QMessageBox::Yes); + if (canRemoveEvent) { for (auto event : events) { - sqpApp->catalogueController().removeEvent(event); - impl->removeEvent(event, ui->treeView); + if (this->isAllEventsDisplayed()) { + sqpApp->catalogueController().removeEvent(event); + impl->removeEvent(event, ui->treeView); + } + else { + QVector > modifiedCatalogues; + for (auto catalogue : this->displayedCatalogues()) { + if (catalogue->removeEvent(event->getUniqId())) { + sqpApp->catalogueController().updateCatalogue(catalogue); + modifiedCatalogues << catalogue; + } + } + if (!modifiedCatalogues.empty()) { + emit eventCataloguesModified(modifiedCatalogues); + } + } + impl->m_Model->removeEvent(event); } + emit this->eventsRemoved(events); } } @@ -427,11 +446,13 @@ CatalogueEventsWidget::CatalogueEventsWidget(QWidget *parent) ui->treeView->header()->setSectionResizeMode((int)CatalogueEventsModel::Column::Tags, QHeaderView::Stretch); ui->treeView->header()->setSectionResizeMode((int)CatalogueEventsModel::Column::Validation, - QHeaderView::Fixed); + QHeaderView::ResizeToContents); ui->treeView->header()->setSectionResizeMode((int)CatalogueEventsModel::Column::Name, QHeaderView::Interactive); - ui->treeView->header()->resizeSection((int)CatalogueEventsModel::Column::Validation, - VALIDATION_COLUMN_SIZE); + ui->treeView->header()->setSectionResizeMode((int)CatalogueEventsModel::Column::TStart, + QHeaderView::ResizeToContents); + ui->treeView->header()->setSectionResizeMode((int)CatalogueEventsModel::Column::TEnd, + QHeaderView::ResizeToContents); ui->treeView->header()->setSortIndicatorShown(true); connect(impl->m_Model, &CatalogueEventsModel::modelSorted, [this]() { @@ -489,6 +510,8 @@ void CatalogueEventsWidget::setEventChanges(const std::shared_ptr &even emitSelection(); }); ui->treeView->setIndexWidget(validationIndex, widget); + ui->treeView->header()->resizeSection((int)CatalogueEventsModel::Column::Validation, + QHeaderView::ResizeToContents); } } else { @@ -592,3 +615,15 @@ void CatalogueEventsWidget::emitSelection() emit selectionCleared(); } } + + +void CatalogueEventsWidget::keyPressEvent(QKeyEvent *event) +{ + switch (event->key()) { + case Qt::Key_Delete: { + ui->btnRemove->click(); + } + default: + break; + } +} diff --git a/gui/src/Catalogue/CatalogueExplorer.cpp b/gui/src/Catalogue/CatalogueExplorer.cpp index 3ce453a..0065e6c 100644 --- a/gui/src/Catalogue/CatalogueExplorer.cpp +++ b/gui/src/Catalogue/CatalogueExplorer.cpp @@ -76,6 +76,9 @@ CatalogueExplorer::CatalogueExplorer(QWidget *parent) ui->events->clear(); }); + connect(ui->catalogues, &CatalogueSideBarWidget::catalogueSaved, ui->events, + &CatalogueEventsWidget::refresh); + // Updates the inspectot when something is selected in the events connect(ui->events, &CatalogueEventsWidget::eventsSelected, [this](auto events) { if (events.count() == 1) { @@ -135,6 +138,13 @@ CatalogueExplorer::CatalogueExplorer(QWidget *parent) sqpApp->catalogueController().updateEventProduct(eventProduct); ui->events->setEventChanges(event, true); }); + + connect(ui->events, &CatalogueEventsWidget::eventCataloguesModified, + [this](const QVector > &catalogues) { + for (auto catalogue : catalogues) { + ui->catalogues->setCatalogueChanges(catalogue, true); + } + }); } CatalogueExplorer::~CatalogueExplorer() diff --git a/gui/src/Catalogue/CatalogueExplorerHelper.cpp b/gui/src/Catalogue/CatalogueExplorerHelper.cpp index 1fb7767..c08c38d 100644 --- a/gui/src/Catalogue/CatalogueExplorerHelper.cpp +++ b/gui/src/Catalogue/CatalogueExplorerHelper.cpp @@ -3,7 +3,6 @@ #include #include -const auto VALIDATION_BUTTON_ICON_SIZE = 12; QWidget *CatalogueExplorerHelper::buildValidationWidget(QWidget *parent, std::function save, std::function discard) @@ -11,22 +10,21 @@ QWidget *CatalogueExplorerHelper::buildValidationWidget(QWidget *parent, std::fu auto widget = new QWidget{parent}; auto layout = new QHBoxLayout{widget}; - layout->setContentsMargins(0, 0, 0, 0); - layout->setSpacing(0); auto btnValid = new QToolButton{widget}; btnValid->setIcon(QIcon{":/icones/save"}); - btnValid->setIconSize(QSize{VALIDATION_BUTTON_ICON_SIZE, VALIDATION_BUTTON_ICON_SIZE}); btnValid->setAutoRaise(true); QObject::connect(btnValid, &QToolButton::clicked, save); layout->addWidget(btnValid); auto btnDiscard = new QToolButton{widget}; btnDiscard->setIcon(QIcon{":/icones/discard"}); - btnDiscard->setIconSize(QSize{VALIDATION_BUTTON_ICON_SIZE, VALIDATION_BUTTON_ICON_SIZE}); btnDiscard->setAutoRaise(true); QObject::connect(btnDiscard, &QToolButton::clicked, discard); layout->addWidget(btnDiscard); + layout->setContentsMargins(0, 0, 0, 0); + layout->setSpacing(0); + return widget; } diff --git a/gui/src/Catalogue/CatalogueInspectorWidget.cpp b/gui/src/Catalogue/CatalogueInspectorWidget.cpp index 02c8616..c24cbcc 100644 --- a/gui/src/Catalogue/CatalogueInspectorWidget.cpp +++ b/gui/src/Catalogue/CatalogueInspectorWidget.cpp @@ -28,6 +28,9 @@ CatalogueInspectorWidget::CatalogueInspectorWidget(QWidget *parent) impl->connectCatalogueUpdateSignals(this, ui); impl->connectEventUpdateSignals(this, ui); + + ui->dateTimeEventTStart->setDisplayFormat(DATETIME_FORMAT); + ui->dateTimeEventTEnd->setDisplayFormat(DATETIME_FORMAT); } CatalogueInspectorWidget::~CatalogueInspectorWidget() @@ -148,8 +151,14 @@ void CatalogueInspectorWidget::setEvent(const std::shared_ptr &event) ui->leEventName->setEnabled(true); ui->leEventName->setText(event->getName()); ui->leEventProduct->setEnabled(false); - ui->leEventProduct->setText( - QString::number(event->getEventProducts().size()).append(" product(s)")); + + auto eventProducts = event->getEventProducts(); + QStringList eventProductList; + for (auto evtProduct : eventProducts) { + eventProductList << evtProduct.getProductId(); + } + + ui->leEventProduct->setText(eventProductList.join(";")); QString tagList; auto tags = event->getTagsNames(); diff --git a/gui/src/Catalogue/CatalogueSideBarWidget.cpp b/gui/src/Catalogue/CatalogueSideBarWidget.cpp index f752924..ee7a3d2 100644 --- a/gui/src/Catalogue/CatalogueSideBarWidget.cpp +++ b/gui/src/Catalogue/CatalogueSideBarWidget.cpp @@ -12,6 +12,7 @@ #include #include +#include #include #include #include @@ -110,7 +111,8 @@ CatalogueSideBarWidget::CatalogueSideBarWidget(QWidget *parent) ui->treeView->header()->setStretchLastSection(false); ui->treeView->header()->setSectionResizeMode(QHeaderView::ResizeToContents); - ui->treeView->header()->setSectionResizeMode(0, QHeaderView::Stretch); + ui->treeView->header()->setSectionResizeMode((int)CatalogueTreeModel::Column::Name, + QHeaderView::Stretch); connect(ui->treeView, &QTreeView::clicked, this, &CatalogueSideBarWidget::emitSelection); connect(ui->treeView->selectionModel(), &QItemSelectionModel::currentChanged, this, @@ -175,6 +177,7 @@ CatalogueSideBarWidget::CatalogueSideBarWidget(QWidget *parent) catalogueToItem.second, impl->m_TreeModel->indexOf(catalogueToItem.second->parent())); } + emitSelection(); } } }); @@ -393,6 +396,7 @@ void CatalogueSideBarWidget::CatalogueSideBarWidgetPrivate::setHasChanges( [this, validationIndex, sideBarWidget, catalogue]() { if (catalogue) { sqpApp->catalogueController().saveCatalogue(catalogue); + emit sideBarWidget->catalogueSaved(catalogue); } setHasChanges(false, validationIndex, sideBarWidget); }, @@ -413,6 +417,8 @@ void CatalogueSideBarWidget::CatalogueSideBarWidgetPrivate::setHasChanges( } }); sideBarWidget->ui->treeView->setIndexWidget(validationIndex, widget); + sideBarWidget->ui->treeView->header()->resizeSection( + (int)CatalogueTreeModel::Column::Validation, QHeaderView::ResizeToContents); } } else { @@ -427,3 +433,15 @@ bool CatalogueSideBarWidget::CatalogueSideBarWidgetPrivate::hasChanges(const QMo auto validationIndex = index.sibling(index.row(), (int)CatalogueTreeModel::Column::Validation); return treeView->indexWidget(validationIndex) != nullptr; } + + +void CatalogueSideBarWidget::keyPressEvent(QKeyEvent *event) +{ + switch (event->key()) { + case Qt::Key_Delete: { + ui->btnRemove->click(); + } + default: + break; + } +} diff --git a/gui/src/Catalogue/CatalogueTreeItems/CatalogueTreeItem.cpp b/gui/src/Catalogue/CatalogueTreeItems/CatalogueTreeItem.cpp index 9ec3f9b..a5bec27 100644 --- a/gui/src/Catalogue/CatalogueTreeItems/CatalogueTreeItem.cpp +++ b/gui/src/Catalogue/CatalogueTreeItems/CatalogueTreeItem.cpp @@ -111,16 +111,13 @@ bool CatalogueTreeItem::dropMimeData(const QMimeData *data, Qt::DropAction actio if (action == Qt::MoveAction) { for (auto catalogue : sourceCatalogues) { catalogue->removeEvent(event->getUniqId()); + sqpApp->catalogueController().updateCatalogue(catalogue); } } impl->m_Catalogue->addEvent(event->getUniqId()); + sqpApp->catalogueController().updateCatalogue(impl->m_Catalogue); } - - for (auto catalogue : sourceCatalogues) { - sqpApp->catalogueController().updateCatalogue(catalogue); - } - sqpApp->catalogueController().updateCatalogue(impl->m_Catalogue); } std::shared_ptr CatalogueTreeItem::catalogue() const diff --git a/gui/src/Visualization/AxisRenderingUtils.cpp b/gui/src/Visualization/AxisRenderingUtils.cpp index 7fa33f0..f5ce4cb 100644 --- a/gui/src/Visualization/AxisRenderingUtils.cpp +++ b/gui/src/Visualization/AxisRenderingUtils.cpp @@ -13,8 +13,6 @@ Q_LOGGING_CATEGORY(LOG_AxisRenderingUtils, "AxisRenderingUtils") namespace { -const auto DATETIME_FORMAT = QStringLiteral("yyyy/MM/dd hh:mm:ss:zzz"); - /// Format for datetimes on a axis const auto DATETIME_TICKER_FORMAT = QStringLiteral("yyyy/MM/dd \nhh:mm:ss"); diff --git a/gui/src/Visualization/VisualizationMultiZoneSelectionDialog.cpp b/gui/src/Visualization/VisualizationMultiZoneSelectionDialog.cpp index e625b52..aaf9161 100644 --- a/gui/src/Visualization/VisualizationMultiZoneSelectionDialog.cpp +++ b/gui/src/Visualization/VisualizationMultiZoneSelectionDialog.cpp @@ -4,7 +4,7 @@ #include "Common/DateUtils.h" #include "Visualization/VisualizationSelectionZoneItem.h" -const auto DATETIME_FORMAT = QStringLiteral("yyyy/MM/dd hh:mm:ss"); +const auto DATETIME_FORMAT_S = QStringLiteral("yyyy/MM/dd hh:mm:ss"); struct VisualizationMultiZoneSelectionDialog::VisualizationMultiZoneSelectionDialogPrivate { QVector m_Zones; @@ -46,9 +46,9 @@ void VisualizationMultiZoneSelectionDialog::setZones( } auto range = zone->range(); - name += DateUtils::dateTime(range.m_TStart).toString(DATETIME_FORMAT); + name += DateUtils::dateTime(range.m_TStart).toString(DATETIME_FORMAT_S); name += " - "; - name += DateUtils::dateTime(range.m_TEnd).toString(DATETIME_FORMAT); + name += DateUtils::dateTime(range.m_TEnd).toString(DATETIME_FORMAT_S); auto item = new QListWidgetItem(name, ui->listWidget); item->setSelected(zone->selected()); diff --git a/gui/src/Visualization/VisualizationZoneWidget.cpp b/gui/src/Visualization/VisualizationZoneWidget.cpp index cadda87..fab2acc 100644 --- a/gui/src/Visualization/VisualizationZoneWidget.cpp +++ b/gui/src/Visualization/VisualizationZoneWidget.cpp @@ -270,10 +270,10 @@ VisualizationGraphWidget *VisualizationZoneWidget::createGraph(std::shared_ptrsetFlags(GraphFlag::DisableAll); - qCDebug(LOG_VisualizationZoneWidget()) - << tr("TORM: Range before: ") << graphChild->graphRange(); - qCDebug(LOG_VisualizationZoneWidget()) - << tr("TORM: Range after : ") << graphChildRange; + qCDebug(LOG_VisualizationZoneWidget()) << tr("TORM: Range before: ") + << graphChild->graphRange(); + qCDebug(LOG_VisualizationZoneWidget()) << tr("TORM: Range after : ") + << graphChildRange; qCDebug(LOG_VisualizationZoneWidget()) << tr("TORM: child dt") << graphChildRange.m_TEnd - graphChildRange.m_TStart; graphChild->setGraphRange(graphChildRange); diff --git a/gui/ui/Catalogue/CatalogueEventsWidget.ui b/gui/ui/Catalogue/CatalogueEventsWidget.ui index 355c5f1..8d23d9e 100644 --- a/gui/ui/Catalogue/CatalogueEventsWidget.ui +++ b/gui/ui/Catalogue/CatalogueEventsWidget.ui @@ -139,7 +139,6 @@ -