Salome HOME
Get rid of Qt classes in the data model.
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_GeoreferencementDlg.h
index a2a1c0bd5e16a7179edd27b99c252be30bb407a3..399ddfc25df558cd05193979c33a474957b87acd 100644 (file)
 
 #include "HYDROGUI_InputPanel.h"
 
+class SUIT_ViewWindow;
+
 class QGroupBox;
 class QButtonGroup;
 class QTableWidget;
+class QPushButton;
 
 class HYDROGUI_GeoreferencementDlg : public HYDROGUI_InputPanel
 {
   Q_OBJECT
 
+  class Delegate;
+
 public:
   enum ProfilesMode { AllProfiles, SelectedProfiles };
 
@@ -43,15 +48,24 @@ public:
     double Xd;
     double Yd;
 
-    bool isValid;
+    bool isIncomplete, isEmpty;
+
+    QString Name;
+
+    ProfileGeoData( const QString& theName ) :
+      Name( theName ), isEmpty( true ), isIncomplete( false ) {}
 
-    ProfileGeoData() :
-      isValid( false ) {}
+    ProfileGeoData( const QString& theName,
+                    const QString& theXg, const QString& theYg, 
+                    const QString& theXd, const QString& theYd );
 
-    ProfileGeoData( double theXg, double theYg, double theXd, double theYd ) :
-      Xg( theXg ), Yg( theYg ), Xd( theXd ), Yd( theYd ), isValid( true ) {}
+    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 +75,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