You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdeedu/kstars/kstars/tools/lcgenerator.h

162 lines
4.5 KiB

/***************************************************************************
lcgenerator.cpp - description
-------------------
begin : Tue Oct 1 18:01:48 CDT 2002
copyright : (C) 2002 by Jasem Mutlaq
email : mutlaqja@ku.edu
***************************************************************************/
/***************************************************************************
* *
* This program 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 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
/**
*@class LCGenerator
*@short KStars Light Curve Generator
*This class provides a simple interface that enables a user to download
*variable stars light curves from an online AAVSO database given few basic parameters.
*@author Jasem Mutlaq
*@version 1.0
*/
#ifndef LCGENERATOR_H
#define LCGENERATOR_H
#include <tqvariant.h>
#include <kdialogbase.h>
#include <tdeio/job.h>
class TQVBoxLayout;
class TQHBoxLayout;
class TQGridLayout;
class TQFile;
class KLineEdit;
class TDEListBox;
class KPushButton;
class TQCheckBox;
class TQGroupBox;
class TQLabel;
class TQListBoxItem;
class KStars;
struct VariableStarInfo
{
TQString Name;
TQString Designation;
};
class LCGenerator : public KDialogBase
{
Q_OBJECT
public:
/**Constructor
*@p parent pointer to the parent widget
*/
LCGenerator( TQWidget* parent = 0);
/**Destructor */
~LCGenerator();
private:
/** Initilizes and positions the dialog child widgets. */
void createGUI();
/** Converts date Julian days, unless date is 'default'.
*@param date The date to be converted
*@param *JD pointer to a Julian Day string
*@param JDType start or end JD
*@returns true if conversion is successful
*/
bool setJD(TQString date, TQString * JD, int JDType);
/** Parses star information and connects to the AAVSO server with the information embedded in the URL
*@param FinalStartDate The start date in Julian days
*@param FinalEndDate The end date in Julian days
*@param FinalDesignation The AAVSO star designation
*@param AverageDay Number of average days for binning the light curve
*/
void DownloadCurve(TQString FinalStartDate, TQString FinalEndDate, TQString FinalDesignation, TQString AverageDay);
KStars *ksw;
const TQString Hostprefix;
const int JDCutOff;
TQGroupBox* StarInfoBox;
TQLabel* desigLabel;
TDEListBox* DesignationIn;
TQLabel* nameLabel;
TDEListBox* NameIn;
TQLabel* startLabel;
KLineEdit* StartDateIn;
TQLabel* endLabel;
KLineEdit* EndDateIn;
TQGroupBox* DataSelectBox;
TQCheckBox* VisualCheck;
TQCheckBox* FainterCheck;
TQCheckBox* DiscrepantCheck;
TQCheckBox* CCDBCheck;
TQCheckBox* CCDVCheck;
TQCheckBox* CCDRCheck;
TQCheckBox* CCDICheck;
TQLabel* plotLabel;
KLineEdit* AverageDayIn;
TQLabel* daysLabel;
KPushButton* GetCurveButton;
KPushButton* UpdateListButton;
KPushButton* CloseButton;
TQVBoxLayout* LCGeneratorDialogLayout;
TQHBoxLayout* SDLayout;
TQVBoxLayout* StarInfoBoxLayout;
TQHBoxLayout* DesignHLayout;
TQHBoxLayout* NameHLayout;
TQHBoxLayout* StartHLayout;
TQHBoxLayout* EndHLayout;
TQVBoxLayout* DataSelectBoxLayout;
TQHBoxLayout* PlotHLayout;
TQHBoxLayout* ButtonHLayout;
TDEIO::Job *downloadJob; // download job of image -> 0 == no job is running
TQFile *file;
/**Make sure all events have been processed before closing the dialog
*@p ev pointer to the TQCloseEvent object
*/
void closeEvent (TQCloseEvent *ev);
public slots:
/** Checks if a star name or designation exists in the database,
*verifies date format, and connects to server if no errors occur
*/
void VerifyData();
/**Select the star name that matches the current star designation
*@p index the index of the selected designation
*/
void updateNameList(int index);
/**Select the star designation that matches the current star name
*@p index the index of the selected star name
*/
void updateDesigList(int index);
/** Connects to AAVSO database server and downloads a fresh list of Variable stars.*/
void updateStarList();
/** Reload file and update lists after download */
void downloadReady(TDEIO::Job *);
};
#endif // LCGENERATOR_H