00001 //# Copyright (C) 2005 00002 //# Associated Universities, Inc. Washington DC, USA. 00003 //# 00004 //# This library is free software; you can redistribute it and/or modify it 00005 //# under the terms of the GNU Library General Public License as published by 00006 //# the Free Software Foundation; either version 2 of the License, or (at your 00007 //# option) any later version. 00008 //# 00009 //# This library is distributed in the hope that it will be useful, but WITHOUT 00010 //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00011 //# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public 00012 //# License for more details. 00013 //# 00014 //# You should have received a copy of the GNU Library General Public License 00015 //# along with this library; if not, write to the Free Software Foundation, 00016 //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA. 00017 //# 00018 //# Correspondence concerning AIPS++ should be addressed as follows: 00019 //# Internet email: aips2-request@nrao.edu. 00020 //# Postal address: AIPS++ Project Office 00021 //# National Radio Astronomy Observatory 00022 //# 520 Edgemont Road 00023 //# Charlottesville, VA 22903-2475 USA 00024 //# 00025 #ifndef FEATHERMAIN_QO_H 00026 #define FEATHERMAIN_QO_H 00027 00028 #include <QtGui/QMainWindow> 00029 #include <QProgressDialog> 00030 00031 #include <guitools/Feather/FeatherMain.ui.h> 00032 #include <guitools/Feather/FileLoader.qo.h> 00033 #include <guitools/Feather/Preferences.qo.h> 00034 #include <guitools/Feather/PreferencesColor.qo.h> 00035 #include <guitools/Feather/OverWriteFileDialog.qo.h> 00036 #include <guitools/Feather/AboutDialog.qo.h> 00037 00038 #include <casa/BasicSL/String.h> 00039 #include <casa/aipstype.h> 00040 #include <casa/Logging/LogIO.h> 00041 00042 using namespace std; 00043 00044 namespace casa { 00045 00046 class PlotHolder; 00047 class FeatherManager; 00048 00049 00050 class FeatherMain : public QMainWindow 00051 { 00052 Q_OBJECT 00053 00054 public: 00055 FeatherMain(QWidget *parent = 0); 00056 ~FeatherMain(); 00057 00058 signals: 00059 void featherFinished(); 00060 00061 private slots: 00062 void openAboutDialog(); 00063 void openFileLoader(); 00064 void featherImages( bool checkOutput = true ); 00065 void openPreferences(); 00066 void openPreferencesColor(); 00067 void ySupportChanged( bool ySupport ); 00068 //Called by the text edits when their values change. Sends 00069 //the event down to the plots. 00070 void dishDiameterXChanged( const QString& xDiameter ); 00071 void dishDiameterYChanged( const QString& yDiameter ); 00072 //Called when the diameter is set through a plot. Updates 00073 //the text edits with the new values. 00074 void dishDiameterXChanged( double value ); 00075 void dishDiameterYChanged( double value ); 00076 00077 void functionColorsChanged(); 00078 void imageFilesChanged(); 00079 void preferencesChanged(); 00080 void featheringDone(); 00081 void overWriteOK(); 00082 00083 private: 00084 FeatherMain( const FeatherMain& other ); 00085 FeatherMain operator=( const FeatherMain& other ); 00086 QString getFileName( QString path ) const; 00087 00088 void initializeDishDiameterLimit( QLabel* diamLimitLabel ); 00089 00090 void clearPlots(); 00091 bool isInputImagesChanged(); 00092 //bool generateInputImage(); 00093 pair<float,float> populateDishDiameters(Bool& validDiameters); 00094 float populateSDFactor() const; 00095 00096 void updatePlaneInformation(); 00097 void addOriginalDataToPlots(); 00098 void addFeatheredDataToPlots(); 00099 void resetDishDiameters(); 00100 void resetData(); 00101 void resetDishDiameter( QLineEdit* dishEdit, QLabel* diamLimit, 00102 float value, float defaultValue ); 00103 00104 const static int DISH_DIAMETER_DEFAULT; 00105 const static int SINGLE_DISH_FACTOR_DEFAULT; 00106 00107 Ui::FeatherMainClass ui; 00108 FileLoader fileLoader; 00109 Preferences preferences; 00110 PreferencesColor preferencesColor; 00111 00112 QString lowResImagePath; 00113 QString highResImagePath; 00114 QString outputImagePath; 00115 QString dirtyImagePath; 00116 00117 FeatherManager* dataManager; 00118 PlotHolder* plotHolder; 00119 QProgressDialog progressMeter; 00120 OverWriteFileDialog overWriteFileDialog; 00121 AboutDialog aboutDialog; 00122 LogIO logger; 00123 00124 }; 00125 } 00126 #endif // FEATHERMAIN_QO_H