/**************************************************************************** ** ** Copyright (C) 2013 Valentina project All Rights Reserved. ** ** This file is part of Valentina. ** ** Tox is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation, either version 3 of the License, or ** (at your option) any later version. ** ** Tox is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU General Public License for more details. ** ** You should have received a copy of the GNU General Public License ** along with Valentina. If not, see <http://www.gnu.org/licenses/>. ** ****************************************************************************/ #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QLabel> #include <QtXml> #include <QComboBox> #include <QSharedPointer> #include <QToolButton> #include "widgets/vmaingraphicsscene.h" #include "widgets/vmaingraphicsview.h" #include "widgets/vitem.h" #include "dialogs/dialogs.h" #include "tools/drawTools/drawtools.h" #include "tools/modelingTools/modelingtools.h" #include "xml/vdomdocument.h" #include "tools/vtooldetail.h" namespace Ui { class MainWindow; } class MainWindow : public QMainWindow{ Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); void OpenPattern(const QString &fileName); public slots: void mouseMove(QPointF scenePos); void ActionAroowTool(); void ActionDraw(bool checked); void ActionDetails(bool checked); void ActionNewDraw(); void ActionSaveAs(); void ActionSave(); void ActionOpen(); void ActionNew(); void ActionTable(bool checked); void ActionHistory(bool checked); void ActionLayout(bool checked); void currentDrawChanged( int index ); void OptionDraw(); void haveChange(); void ChangedSize(const QString &text); void ChangedGrowth(const QString & text); void ClosedActionTable(); void ClosedActionHistory(); void ToolEndLine(bool checked); void ToolLine(bool checked); void ToolAlongLine(bool checked); void ToolShoulderPoint(bool checked); void ToolNormal(bool checked); void ToolBisector(bool checked); void ToolLineIntersect(bool checked); void ToolSpline(bool checked); void ToolArc(bool checked); void ToolSplinePath(bool checked); void ToolPointOfContact(bool checked); void ToolDetail(bool checked); void ToolHeight(bool checked); void ToolTriangle(bool checked); void ClosedDialogEndLine(int result); void ClosedDialogLine(int result); void ClosedDialogAlongLine(int result); void ClosedDialogShoulderPoint(int result); void ClosedDialogNormal(int result); void ClosedDialogBisector(int result); void ClosedDialogLineIntersect(int result); void ClosedDialogSpline(int result); void ClosedDialogArc(int result); void ClosedDialogSplinePath(int result); void ClosedDialogPointOfContact(int result); void ClosedDialogDetail(int result); void ClosedDialogHeight(int result); void ClosedDialogTriangle(int result); void About(); void AboutQt(); void ShowToolTip(const QString &toolTip); /** * @brief tableClosed Слот, що виконується при отриманні сигналу закриття вікна укладання *деталей моделі. */ void tableClosed(); signals: /** * @brief ModelChosen Сигнал, що висилається після розрахунку всіх деталей моделі. * @param listDetails Список детайле моделі. */ void ModelChosen(QVector<VItem*> listDetails); protected: virtual void keyPressEvent ( QKeyEvent * event ); virtual void showEvent( QShowEvent *event ); virtual void closeEvent( QCloseEvent * event ); void Clear(); private: Q_DISABLE_COPY(MainWindow) Ui::MainWindow *ui; Tool::Tools tool; VMainGraphicsScene *currentScene; VMainGraphicsScene *sceneDraw; VMainGraphicsScene *sceneDetails; QLabel *mouseCoordinate; QLabel *helpLabel; VMainGraphicsView *view; bool isInitialized; DialogIncrements *dialogTable; QSharedPointer<DialogEndLine> dialogEndLine; QSharedPointer<DialogLine> dialogLine; QSharedPointer<DialogAlongLine> dialogAlongLine; QSharedPointer<DialogShoulderPoint> dialogShoulderPoint; QSharedPointer<DialogNormal> dialogNormal; QSharedPointer<DialogBisector> dialogBisector; QSharedPointer<DialogLineIntersect> dialogLineIntersect; QSharedPointer<DialogSpline> dialogSpline; QSharedPointer<DialogArc> dialogArc; QSharedPointer<DialogSplinePath> dialogSplinePath; QSharedPointer<DialogPointOfContact> dialogPointOfContact; QSharedPointer<DialogDetail> dialogDetail; QSharedPointer<DialogHeight> dialogHeight; QSharedPointer<DialogTriangle> dialogTriangle; DialogHistory *dialogHistory; VDomDocument *doc; VContainer *data; QComboBox *comboBoxDraws; QString fileName; bool changeInFile; Draw::Draws mode; void ToolBarOption(); void ToolBarDraws(); void CanselTool(); void ArrowTool(); void SetEnableWidgets(bool enable); void SetEnableTool(bool enable); template <typename Dialog, typename Func> void SetToolButton(bool checked, Tool::Tools t, const QString &cursor, const QString &toolTip,QSharedPointer<Dialog> &dialog, Func closeDialogSlot); void MinimumScrollBar(); template <typename T> void AddToolToDetail(T *tool, const qint64 &id, Tool::Tools typeTool, const qint64 &idDetail); bool SafeSaveing(const QString &fileName)const; void AutoSavePattern(); }; #endif // MAINWINDOW_H