kstars
detaildialog.h
Go to the documentation of this file.00001 /*************************************************************************** 00002 detaildialog.h - description 00003 ------------------- 00004 begin : Sun May 5 2002 00005 copyright : (C) 2002 by Jason Harris 00006 email : kstars@30doradus.org 00007 ***************************************************************************/ 00008 00009 /*************************************************************************** 00010 * * 00011 * This program is free software; you can redistribute it and/or modify * 00012 * it under the terms of the GNU General Public License as published by * 00013 * the Free Software Foundation; either version 2 of the License, or * 00014 * (at your option) any later version. * 00015 * * 00016 ***************************************************************************/ 00017 00018 #ifndef DETAILDIALOG_H 00019 #define DETAILDIALOG_H 00020 00021 #include <qfile.h> 00022 #include <qlabel.h> 00023 #include <qptrlist.h> 00024 #include <kdialogbase.h> 00025 #include <ktextedit.h> 00026 00027 #include "skyobject.h" 00028 00029 class GeoLocation; 00030 class QHBoxLayout; 00031 class QLineEdit; 00032 class QFile; 00033 class QPixmap; 00034 class QString; 00035 class QStringList; 00036 class KStars; 00037 class KStarsDateTime; 00038 00039 class DetailsDataUI; 00040 class DetailsPositionUI; 00041 class DetailsLinksUI; 00042 class DetailsDatabaseUI; 00043 class DetailsLogUI; 00044 00045 struct ADVTreeData 00046 { 00047 QString Name; 00048 QString Link; 00049 int Type; 00050 }; 00051 00057 class LogEdit : public KTextEdit { 00058 Q_OBJECT 00059 public: 00060 LogEdit( QWidget *parent=0, const char *name=0 ); 00061 ~LogEdit() {} 00062 00063 signals: 00064 void focusOut(); 00065 00066 protected: 00067 void focusOutEvent( QFocusEvent *e ); 00068 }; 00069 00074 class ClickLabel : public QLabel { 00075 Q_OBJECT 00076 public: 00077 ClickLabel( QWidget *parent=0, const char *name=0 ); 00078 ~ClickLabel() {} 00079 00080 signals: 00081 void clicked(); 00082 00083 protected: 00084 void mousePressEvent( QMouseEvent *e ) { if ( e->button() == LeftButton ) emit clicked(); } 00085 }; 00086 00105 class DetailDialog : public KDialogBase { 00106 Q_OBJECT 00107 public: 00110 DetailDialog(SkyObject *o, const KStarsDateTime &ut, GeoLocation *geo, QWidget *parent=0, const char *name=0); 00111 00114 ~DetailDialog() {} 00115 00116 QPixmap* thumbnail() { return Thumbnail; } 00117 00118 public slots: 00121 void addToObservingList(); 00122 00125 void centerMap(); 00126 00129 void centerTelescope(); 00130 00133 void showThumbnail(); 00134 00137 void updateThumbnail(); 00138 00141 void viewLink(); 00142 00146 void unselectImagesList(); 00147 00151 void unselectInfoList(); 00152 00156 void updateLists(); 00157 00161 void editLinkDialog(); 00162 00166 void removeLinkDialog(); 00167 00171 void viewADVData(); 00172 00175 void saveLogData(); 00176 00177 private: 00178 00183 bool readUserFile(int type); 00184 00188 bool verifyUserData(int type); 00189 00192 void createGeneralTab(); 00193 00196 void createPositionTab( const KStarsDateTime &ut, GeoLocation *geo ); 00197 00201 void createLinksTab(); 00202 00205 void createAdvancedTab(); 00206 00209 void createLogTab(); 00210 00211 00214 void populateADVTree(QListViewItem *parent); 00215 00218 void forkTree(QListViewItem *parent); 00219 00223 QString parseADVData(QString link); 00224 00225 00226 SkyObject *selectedObject; 00227 KStars* ksw; 00228 00229 // Edit Link Dialog 00230 QHBoxLayout *editLinkLayout; 00231 QLabel *editLinkURL; 00232 QLineEdit *editLinkField; 00233 QFile file; 00234 QPixmap *Thumbnail; 00235 int currentItemIndex; 00236 QString currentItemURL, currentItemTitle; 00237 QStringList dataList; 00238 00239 QPtrListIterator<ADVTreeData> * treeIt; 00240 00241 DetailsDataUI *Data; 00242 DetailsPositionUI *Pos; 00243 DetailsLinksUI *Links; 00244 DetailsDatabaseUI *Adv; 00245 DetailsLogUI *Log; 00246 00247 }; 00248 00249 #endif