Skip to content

Commit

Permalink
refactor: reduce cyclic dependencies between ifc and vwidget libraries
Browse files Browse the repository at this point in the history
Move 'Pen' type to ifc to reduce bidirectional coupling between both libraries.
marco-langer committed Dec 30, 2024
1 parent f7bade5 commit 0ef11d8
Showing 5 changed files with 21 additions and 15 deletions.
1 change: 1 addition & 0 deletions src/app/seamly2d/mainwindow.cpp
Original file line number Diff line number Diff line change
@@ -85,6 +85,7 @@
#include "../vwidgets/dialogs/dialogexporttocsv.h"
#include "../vwidgets/dialogs/file_dialog.h"
#include "../vwidgets/mouse_coordinates.h"
#include "../vwidgets/pen_toolbar.h"
#include "../vwidgets/vmaingraphicsscene.h"
#include "../vwidgets/vwidgetpopup.h"
#include "core/application_2d.h"
13 changes: 13 additions & 0 deletions src/libs/ifc/xml/pen.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#ifndef PEN_H
#define PEN_H

#include <QString>

struct Pen final
{
QString color{ QStringLiteral(u"black") };
qreal lineWeight{ 1.20 };
QString lineType{ QStringLiteral(u"solidline") };
};

#endif // PEN_H
3 changes: 2 additions & 1 deletion src/libs/ifc/xml/vabstractpattern.h
Original file line number Diff line number Diff line change
@@ -66,7 +66,8 @@

#include "../../tools/image_item.h"
#include "../vmisc/def.h"
#include "../vwidgets/pen_toolbar.h"

#include "pen.h"
#include "vdomdocument.h"
#include "vtoolrecord.h"

1 change: 1 addition & 0 deletions src/libs/ifc/xml/xml.pri
Original file line number Diff line number Diff line change
@@ -6,6 +6,7 @@ HEADERS += \
$$PWD/document_validation.h \
$$PWD/individual_size_converter.h \
$$PWD/multi_size_converter.h \
$$PWD/pen.h \
$$PWD/vdomdocument.h \
$$PWD/vpatternconverter.h \
$$PWD/vtoolrecord.h \
18 changes: 4 additions & 14 deletions src/libs/vwidgets/pen_toolbar.h
Original file line number Diff line number Diff line change
@@ -28,25 +28,15 @@
#ifndef PEN_TOOLBAR_H
#define PEN_TOOLBAR_H

#include <QObject>
#include <QToolBar>
#include <QWidget>

#include "color_combobox.h"
#include "linetype_combobox.h"
#include "lineweight_combobox.h"

#include "../ifc/xml/pen.h"

class ColorComboBox;
class LineWeightComboBox;
class LineTypeComboBox;

struct Pen
{
QString color{ QString("black") };
qreal lineWeight{ 1.20 };
QString lineType{ QString("solidline") };
};
#include <QObject>
#include <QToolBar>
#include <QWidget>

class PenToolBar : public QToolBar
{

0 comments on commit 0ef11d8

Please sign in to comment.