Index: sources/gui/GuiView.cpp =================================================================== diff -u -r8b044d8ef7db6f72c65aa6109d5f29a79bca92a2 -r9ef6badf8e172436bba2bfad1642ae7e469e0361 --- sources/gui/GuiView.cpp (.../GuiView.cpp) (revision 8b044d8ef7db6f72c65aa6109d5f29a79bca92a2) +++ sources/gui/GuiView.cpp (.../GuiView.cpp) (revision 9ef6badf8e172436bba2bfad1642ae7e469e0361) @@ -1,13 +1,13 @@ /*! * - * Copyright (c) 2020-2022 Diality Inc. - All Rights Reserved. + * Copyright (c) 2020-2023 Diality Inc. - All Rights Reserved. * \copyright * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * \file GuiView.cpp * \author (last) Behrouz NematiPour - * \date (last) 28-Sep-2022 + * \date (last) 16-Oct-2022 * \author (original) Behrouz NematiPour * \date (original) 26-Aug-2020 * @@ -48,6 +48,8 @@ // It should be defined in the class which wants to connect to signal. connect(this , SIGNAL(didActionTransmit(GuiActionType,const QVariantList &)), &_GuiController, SLOT( doActionTransmit(GuiActionType,const QVariantList &))); + connect(this , SIGNAL(didQuitApplication()), + &_GuiController, SLOT( doQuitApplication())); // From UI : USB drive umount connect(this , SIGNAL(didUSBDriveUmount()), @@ -67,6 +69,8 @@ this , SLOT( onSDCardSpaceChange(bool, qint64, qint64, quint8))); connect(&_GuiController , SIGNAL(didExport()), this , SLOT( onExport())); + connect(&_GuiController , SIGNAL(didExportStat (quint32, const QString &, quint8)), + this , SLOT( onExportStat (quint32, const QString &, quint8))); // From UI : Export Log connect(this , SIGNAL(didExportLog (const GuiStringIndexMap &)), @@ -75,6 +79,9 @@ &_GuiController, SLOT( doExportService (const GuiStringIndexMap &))); connect(this , SIGNAL(didExportTreatment (const GuiStringIndexMap &)), &_GuiController, SLOT( doExportTreatment (const GuiStringIndexMap &))); + + connect(&_GuiController, SIGNAL(didPOSTPass (bool)), + this , SLOT( onPOSTPass (bool))); } /*! @@ -213,13 +220,102 @@ */ void GuiView::onExport() { + doExportListRemove(); exportRunning(false); emit didExport(); //DEBUG:0: qDebug() << " ~~~~~ " << "GuiView::onExport" << _exportRunning; } +/*! + * \brief GuiView::onExportStat + * \details handler slot of the signal didExportStat, which is emitted when a state of the selected item is changed. + * \param vIndex - selected item index + * \param vFileName - selected item file name + * \param vPercent - selected item export percentage. + */ +void GuiView::onExportStat(quint32 vIndex, const QString &vFileName, quint8 vPercent) +{ + //DEBUG: qDebug() << "3" << vIndex << vFileName << vPercent; + _exportListPercent [vIndex] = vPercent; + exportIndex (vIndex ); + exportFile (vFileName ); + exportPercent (vPercent ); + if ( vPercent == 100 ) + doExportListDelete(vIndex); + emit didExportStat (vIndex, vFileName, vPercent); +} + /*! + * \brief GuiView::doExportListInsert + * \details invocable slot from UI to insert an item in the selection list. + * \param vIndex - selected item index + * \param vFileName - selected item file name + */ +void GuiView::doExportListInsert(quint32 vIndex, const QString &vFilename) +{ + _exportList [vIndex] = vFilename ; + _exportListPercent [vIndex] = 100 ; + exportIndex ( vIndex ); + exportFile ( vFilename ); + exportCount ( _exportList.count() ); + emit exportListChanged (_exportList ); +} + +/*! + * \brief GuiView::doExportListDelete + * \details invocable slot from UI to delete a selected item from the list. + * \param vIndex - deselected item index + */ +void GuiView::doExportListDelete(quint32 vIndex) +{ + _exportList.remove (vIndex); + _exportListPercent [vIndex] = 0 ; + exportIndex ( vIndex ); + exportFile ( "" ); + exportCount ( _exportList.count() ); + emit exportListChanged (_exportList ); +} + +/*! + * \brief GuiView::doExportListSelect + * \details invocable slot from UI to identify if the item with the index vIndex is selected. + * \param vIndex - item index + * \return true if the item with index vIndex is selected. + */ +bool GuiView::doExportListSelect(quint32 vIndex) +{ + bool contains = _exportList.contains(vIndex); + return contains; +} + +/*! + * \brief GuiView::doExportListPercent + * \details invocable slot from UI to get the exported/copied percent of the item with the index vIndex. + * \param vIndex - item index + * \return the exported/copied percent + */ +quint8 GuiView::doExportListPercent(quint32 vIndex) +{ + exportIndex ( vIndex ); + return _exportListPercent[vIndex]; +} + +/*! + * \brief GuiView::doExportListRemove + * \details invocable slot from UI to clear the selection list, and reset related values/properties.. + */ +void GuiView::doExportListRemove() +{ + exportIndex ( 0 ); + exportFile ( "" ); + exportPercent ( 0 ); + exportCount ( 0 ); + _exportList.clear ( ); + emit exportListChanged (_exportList); +} + +/*! * \brief GuiView::doExportLog * \details emits didExportLog signal to notify other classes (GuiController) * , the User requested to export the log. @@ -283,3 +379,17 @@ // TODO : the space check should also be done for the USB as destination but needs calculation and will be done later. // usbIsLow ( vPercent <= Storage::Available_Space_Percent ); } + +void GuiView::onPOSTPass(bool vPass) +{ + manufactMode( gEnableManufacturing && vPass ); + postPass(vPass); +} + +/*! + * \brief GuiView::doQuitApplication + * \details emit the didQuitApplication signal to ask ApplicationController to Quit the application gracefully. + */ +void GuiView::doQuitApplication() { + emit didQuitApplication(); +}