Salome HOME
latests developments debug and porting Python3
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_GeoreferencementDlg.h
index a2a1c0bd5e16a7179edd27b99c252be30bb407a3..6c993ec3fce01743b59f495960f194262af1436c 100644 (file)
@@ -1,12 +1,8 @@
-// Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
+// Copyright (C) 2014-2015  EDF-R&D
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 
+
 #ifndef HYDROGUI_GEOREFERENCEMENT_H
 #define HYDROGUI_GEOREFERENCEMENT_H
 
 #include "HYDROGUI_InputPanel.h"
 
+class SUIT_ViewWindow;
+
 class QGroupBox;
 class QButtonGroup;
 class QTableWidget;
+class QPushButton;
 
 class HYDROGUI_GeoreferencementDlg : public HYDROGUI_InputPanel
 {
@@ -43,15 +43,24 @@ public:
     double Xd;
     double Yd;
 
-    bool isValid;
+    bool isIncomplete, isEmpty;
+
+    QString Name;
 
-    ProfileGeoData() :
-      isValid( false ) {}
+    ProfileGeoData( const QString& theName ) :
+      Name( theName ), isEmpty( true ), isIncomplete( false ) {}
 
-    ProfileGeoData( double theXg, double theYg, double theXd, double theYd ) :
-      Xg( theXg ), Yg( theYg ), Xd( theXd ), Yd( theYd ), isValid( true ) {}
+    ProfileGeoData( const QString& theName,
+                    const QString& theXg, const QString& theYg, 
+                    const QString& theXd, const QString& theYd );
+
+    ProfileGeoData( const QString& theName,
+                    double theXg, double theYg, 
+                    double theXd, double theYd )
+      : Name( theName ), Xg( theXg ), Yg( theYg ), Xd( theXd ), Yd( theYd ),
+      isIncomplete(false), isEmpty(false) {}
   };
-  typedef QMap< QString, ProfileGeoData > ProfilesGeoDataMap;
+  typedef QList<ProfileGeoData> ProfilesGeoDataList;
 
 public:
   HYDROGUI_GeoreferencementDlg( HYDROGUI_Module* theModule, const QString& theTitle );
@@ -61,19 +70,28 @@ public:
 
   void                       setMode( const int theMode );
 
-  void                       setData( const ProfilesGeoDataMap& theMap );
-  void                       getData( ProfilesGeoDataMap& theMap );
+  void                       setData( const ProfilesGeoDataList& theData );
+  void                       getData( ProfilesGeoDataList& theData ) const;
+
+  bool                       isModified() const;
+
+public slots:
+  void                       onMousePress( SUIT_ViewWindow*, QMouseEvent* );
 
 protected slots:
   void                       onModeActivated( int );
-  void                       onProfilesSelectionChanged();
+  void                       onDataChanged();
 
 signals:
   void                       modeActivated( int );
+  void                       updateSelection();
 
 private:
   QButtonGroup* myModeButtons;
+  QPushButton* myUpdateSelBtn;
   QTableWidget* myTable;
+
+  bool myIsModified;
 };
 
 #endif