Refactoring. Move methods to class MainWindowsNoGUI.
--HG-- branch : develop
This commit is contained in:
parent
ed5ac37256
commit
9e80bc186d
|
@ -100,6 +100,7 @@
|
|||
#endif //defined(Q_OS_MAC)
|
||||
|
||||
QT_WARNING_PUSH
|
||||
QT_WARNING_DISABLE_GCC("-Wmissing-prototypes")
|
||||
QT_WARNING_DISABLE_CLANG("-Wmissing-prototypes")
|
||||
QT_WARNING_DISABLE_INTEL(1418)
|
||||
|
||||
|
@ -404,76 +405,6 @@ void MainWindow::InitScenes()
|
|||
qApp->setSceneView(ui->view);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
QSharedPointer<VMeasurements> MainWindow::OpenMeasurementFile(const QString &path)
|
||||
{
|
||||
QSharedPointer<VMeasurements> m;
|
||||
if (path.isEmpty())
|
||||
{
|
||||
return m;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
m = QSharedPointer<VMeasurements>(new VMeasurements(pattern));
|
||||
m->SetSize(VContainer::rsize());
|
||||
m->SetHeight(VContainer::rheight());
|
||||
m->setXMLContent(path);
|
||||
|
||||
if (m->Type() == MeasurementsType::Unknown)
|
||||
{
|
||||
VException e(tr("Measurement file has unknown format."));
|
||||
throw e;
|
||||
}
|
||||
|
||||
if (m->Type() == MeasurementsType::Multisize)
|
||||
{
|
||||
VVSTConverter converter(path);
|
||||
m->setXMLContent(converter.Convert());// Read again after conversion
|
||||
}
|
||||
else
|
||||
{
|
||||
VVITConverter converter(path);
|
||||
m->setXMLContent(converter.Convert());// Read again after conversion
|
||||
}
|
||||
|
||||
if (not m->IsDefinedKnownNamesValid())
|
||||
{
|
||||
VException e(tr("Measurement file contains invalid known measurement(s)."));
|
||||
throw e;
|
||||
}
|
||||
|
||||
CheckRequiredMeasurements(m.data());
|
||||
|
||||
if (m->Type() == MeasurementsType::Multisize)
|
||||
{
|
||||
if (m->MUnit() == Unit::Inch)
|
||||
{
|
||||
qCCritical(vMainWindow, "%s\n\n%s", qUtf8Printable(tr("Wrong units.")),
|
||||
qUtf8Printable(tr("Application doesn't support multisize table with inches.")));
|
||||
m->clear();
|
||||
if (not VApplication::IsGUIMode())
|
||||
{
|
||||
qApp->exit(V_EX_DATAERR);
|
||||
}
|
||||
return m;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (VException &e)
|
||||
{
|
||||
qCCritical(vMainWindow, "%s\n\n%s\n\n%s", qUtf8Printable(tr("File error.")),
|
||||
qUtf8Printable(e.ErrorMessage()), qUtf8Printable(e.DetailedInformation()));
|
||||
m->clear();
|
||||
if (not VApplication::IsGUIMode())
|
||||
{
|
||||
qApp->exit(V_EX_NOINPUT);
|
||||
}
|
||||
return m;
|
||||
}
|
||||
return m;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
bool MainWindow::LoadMeasurements(const QString &path)
|
||||
{
|
||||
|
@ -584,24 +515,6 @@ bool MainWindow::UpdateMeasurements(const QString &path, int size, int height)
|
|||
return true;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void MainWindow::CheckRequiredMeasurements(const VMeasurements *m)
|
||||
{
|
||||
const QSet<QString> match = doc->ListMeasurements().toSet().subtract(m->ListAll().toSet());
|
||||
if (not match.isEmpty())
|
||||
{
|
||||
QList<QString> list = match.toList();
|
||||
for (int i = 0; i < list.size(); ++i)
|
||||
{
|
||||
list[i] = qApp->TrVars()->MToUser(list.at(i));
|
||||
}
|
||||
|
||||
VException e(tr("Measurement file doesn't include all required measurements."));
|
||||
e.AddMoreInformation(tr("Please, additionally provide: %1").arg(QStringList(list).join(", ")));
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
/**
|
||||
* @brief SetToolButton set tool and show dialog.
|
||||
|
|
|
@ -356,10 +356,8 @@ private:
|
|||
|
||||
void InitScenes();
|
||||
|
||||
QSharedPointer<VMeasurements> OpenMeasurementFile(const QString &path);
|
||||
bool LoadMeasurements(const QString &path);
|
||||
bool UpdateMeasurements(const QString &path, int size, int height);
|
||||
void CheckRequiredMeasurements(const VMeasurements *m);
|
||||
|
||||
void ReopenFilesAfterCrash(QStringList &args);
|
||||
bool DoExport(const VCommandLinePtr& expParams);
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
#include "../vwidgets/vmaingraphicsscene.h"
|
||||
#include "../vmisc/dialogs/dialogexporttocsv.h"
|
||||
#include "../vmisc/qxtcsvmodel.h"
|
||||
#include "../vformat/vmeasurements.h"
|
||||
#include "../vlayout/vlayoutgenerator.h"
|
||||
#include "dialogs/dialoglayoutprogress.h"
|
||||
#include "dialogs/dialogsavelayout.h"
|
||||
|
@ -46,6 +47,8 @@
|
|||
#include "../vpatterndb/calculator.h"
|
||||
#include "../vtools/tools/vabstracttool.h"
|
||||
#include "../vtools/tools/vtoolseamallowance.h"
|
||||
#include "../ifc/xml/vvstconverter.h"
|
||||
#include "../ifc/xml/vvitconverter.h"
|
||||
|
||||
#include <QFileDialog>
|
||||
#include <QFileInfo>
|
||||
|
@ -63,6 +66,15 @@
|
|||
#include <QWinTaskbarProgress>
|
||||
#endif
|
||||
|
||||
QT_WARNING_PUSH
|
||||
QT_WARNING_DISABLE_GCC("-Wmissing-prototypes")
|
||||
QT_WARNING_DISABLE_CLANG("-Wmissing-prototypes")
|
||||
QT_WARNING_DISABLE_INTEL(1418)
|
||||
|
||||
Q_LOGGING_CATEGORY(vMainNoGUIWindow, "v.mainnoguiwindow")
|
||||
|
||||
QT_WARNING_POP
|
||||
|
||||
#ifdef Q_OS_WIN
|
||||
# define PDFTOPS "pdftops.exe"
|
||||
#else
|
||||
|
@ -1753,6 +1765,94 @@ bool MainWindowsNoGUI::ExportFMeasurementsToCSVData(const QString &fileName, boo
|
|||
return success;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
QSharedPointer<VMeasurements> MainWindowsNoGUI::OpenMeasurementFile(const QString &path) const
|
||||
{
|
||||
QSharedPointer<VMeasurements> m;
|
||||
if (path.isEmpty())
|
||||
{
|
||||
return m;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
m = QSharedPointer<VMeasurements>(new VMeasurements(pattern));
|
||||
m->SetSize(VContainer::rsize());
|
||||
m->SetHeight(VContainer::rheight());
|
||||
m->setXMLContent(path);
|
||||
|
||||
if (m->Type() == MeasurementsType::Unknown)
|
||||
{
|
||||
VException e(tr("Measurement file has unknown format."));
|
||||
throw e;
|
||||
}
|
||||
|
||||
if (m->Type() == MeasurementsType::Multisize)
|
||||
{
|
||||
VVSTConverter converter(path);
|
||||
m->setXMLContent(converter.Convert());// Read again after conversion
|
||||
}
|
||||
else
|
||||
{
|
||||
VVITConverter converter(path);
|
||||
m->setXMLContent(converter.Convert());// Read again after conversion
|
||||
}
|
||||
|
||||
if (not m->IsDefinedKnownNamesValid())
|
||||
{
|
||||
VException e(tr("Measurement file contains invalid known measurement(s)."));
|
||||
throw e;
|
||||
}
|
||||
|
||||
CheckRequiredMeasurements(m.data());
|
||||
|
||||
if (m->Type() == MeasurementsType::Multisize)
|
||||
{
|
||||
if (m->MUnit() == Unit::Inch)
|
||||
{
|
||||
qCCritical(vMainNoGUIWindow, "%s\n\n%s", qUtf8Printable(tr("Wrong units.")),
|
||||
qUtf8Printable(tr("Application doesn't support multisize table with inches.")));
|
||||
m->clear();
|
||||
if (not VApplication::IsGUIMode())
|
||||
{
|
||||
qApp->exit(V_EX_DATAERR);
|
||||
}
|
||||
return m;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (VException &e)
|
||||
{
|
||||
qCCritical(vMainNoGUIWindow, "%s\n\n%s\n\n%s", qUtf8Printable(tr("File error.")),
|
||||
qUtf8Printable(e.ErrorMessage()), qUtf8Printable(e.DetailedInformation()));
|
||||
m->clear();
|
||||
if (not VApplication::IsGUIMode())
|
||||
{
|
||||
qApp->exit(V_EX_NOINPUT);
|
||||
}
|
||||
return m;
|
||||
}
|
||||
return m;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void MainWindowsNoGUI::CheckRequiredMeasurements(const VMeasurements *m) const
|
||||
{
|
||||
const QSet<QString> match = doc->ListMeasurements().toSet().subtract(m->ListAll().toSet());
|
||||
if (not match.isEmpty())
|
||||
{
|
||||
QList<QString> list = match.toList();
|
||||
for (int i = 0; i < list.size(); ++i)
|
||||
{
|
||||
list[i] = qApp->TrVars()->MToUser(list.at(i));
|
||||
}
|
||||
|
||||
VException e(tr("Measurement file doesn't include all required measurements."));
|
||||
e.AddMoreInformation(tr("Please, additionally provide: %1").arg(QStringList(list).join(", ")));
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
int MainWindowsNoGUI::ContinueIfLayoutStale()
|
||||
{
|
||||
|
|
|
@ -41,6 +41,7 @@
|
|||
class QGraphicsScene;
|
||||
struct PosterData;
|
||||
class QGraphicsRectItem;
|
||||
class VMeasurements;
|
||||
|
||||
#if defined(Q_OS_WIN32) && QT_VERSION >= QT_VERSION_CHECK(5, 7, 0)
|
||||
class QWinTaskbarButton;
|
||||
|
@ -116,6 +117,10 @@ protected:
|
|||
|
||||
bool ExportFMeasurementsToCSVData(const QString &fileName,
|
||||
bool withHeader, int mib, const QChar &separator) const;
|
||||
|
||||
QSharedPointer<VMeasurements> OpenMeasurementFile(const QString &path) const;
|
||||
|
||||
void CheckRequiredMeasurements(const VMeasurements *m) const;
|
||||
private slots:
|
||||
void PrintPages (QPrinter *printer);
|
||||
void ErrorConsoleMode(const LayoutErrors &state);
|
||||
|
|
Loading…
Reference in New Issue
Block a user