00001
00015 #ifndef COMPLETEDWULIST_H
00016 #define COMPLETEDWULIST_H
00017
00018 #include <qlistview.h>
00019 #include <qpalette.h>
00020 #include <qpixmap.h>
00021
00022 #include "ksetiwatch.h"
00023 #include "poplistview.h"
00024
00025 class QSplitter;
00026 class SetiLoc;
00027 class SkyMap;
00028
00032 class WUListViewItem : public ColorListViewItem
00033 {
00034 public:
00039 WUListViewItem(QListView* parent) : ColorListViewItem(parent) {}
00041 ~WUListViewItem() {}
00049 virtual QString key(int column, bool ascending) const;
00050 };
00051
00055 class SigListViewItem : public ColorListViewItem
00056 {
00057 public:
00062 SigListViewItem(QListView* parent) : ColorListViewItem(parent) {}
00064 ~SigListViewItem() {}
00072 virtual QString key(int column, bool ascending) const;
00073 };
00074
00077 class CompletedWUList : public QWidget
00078 {
00079 Q_OBJECT
00080
00081 public:
00087 CompletedWUList(QWidget *parent=0, const char *name=0);
00089 ~CompletedWUList();
00090
00091 public slots:
00103 void slotUpdateList(SetiLoc* loc, int type);
00104
00105 protected:
00112 void resizeEvent(QResizeEvent *e);
00117 void paintEvent(QPaintEvent* e);
00126 void createList(popListView* list, Ksetiwatch::TableColumn tc[]);
00130 void fillTreeList();
00141 void fillWUList(SetiLoc* loc);
00148 void fillTotalList();
00159 void fillSigList(SetiLoc* loc);
00167 void fillSigSumList();
00172 void addLoggedWU(SetiLoc* loc);
00175 void addAllLoggedWU();
00180 void refreshList(SetiLoc* loc);
00189 SetiLoc* checkForRedirect(SetiLoc* loc);
00201 void updateList(SetiLoc* loc, int type);
00213 void fillSigSumColumns(QListViewItem* it, const int wus, const int spikes,
00214 const int gaussians, const int pulses,
00215 const int triplets, const WUScore& top);
00225 void fillTotalColumns(QListViewItem* it, const int wus, const int nzwus,
00226 const double totime, const WUScore& top);
00227
00228 protected slots:
00234 void slotSelect(QListViewItem *item);
00236 void prepareTreeListPopupMenu();
00241 void handleTreeListPopupCommand(int id);
00246 void handleWUListPopupCommand(int id);
00251 void handleSigListPopupCommand(int id);
00253 void toggleSorting(int column);
00259 void handleSigListDoubleClick(QListViewItem* sit);
00264 void slotRefreshList(SetiLoc* loc);
00265
00266 protected:
00270 QSplitter* splitview;
00272 popListView* treelist;
00275 popListView* cwuList[4];
00277 enum ListId {WUSummary, WUList, SignalSummary, SignalList};
00279 enum WulColumnIds {WulDateLogged, WulWuName, WulCpuTime, WulProgRate,
00280 WulSpike, WulGaussian, WulPulse, WulTriplet, WulFrom,
00281 WulRecordedOn, WulBaseFreq, WulAngleRange, WulTeraFlops};
00283 enum WusColumnIds {WusLocation, WusWus, WusTotalTime, WusAvgTime,
00284 WusAvgProgRate, WusRecSpike, WusRecGaussian, WusRecPulse,
00285 WusRecTriplet};
00287 enum SilColumnIds {SilDateLogged, SilWuName, SilSpikes, SilTopSpike,
00288 SilGaussians, SilTopGaussian, SilPulses, SilTopPulse,
00289 SilTriplets, SilTopTriplet};
00291 enum SisColumnIds {SisLocation, SisWus, SisTotalSpikes, SisTopSpike,
00292 SisTotalGaussians, SisTopGaussian, SisTotalPulses,
00293 SisTopPulse, SisTotalTriplets, SisTopTriplet};
00295 enum popupIds {ShowSkymap, ReloadLocations, ShowLoggedSignals};
00297 int currentView;
00298 bool sortorder;
00299 QPixmap folder_icon;
00300 QPixmap dish_icon;
00301
00302 signals:
00308 void listUpdated();
00309 };
00310
00311 #endif