#ifndef DXCLUSTER_H
#define DXCLUSTER_H
/***************************************************************************
dxcluster.h - description
-------------------
begin : oct 2011
copyright : (C) 2011 by Jaime Robles
email : jaime@robles.es
***************************************************************************/
/*****************************************************************************
* This file is part of KLog. *
* *
* KLog 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 3 of the License, or *
* (at your option) any later version. *
* *
* KLog is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with KLog. If not, see . *
* *
*****************************************************************************/
#include
//#include
#include
#include
#include
#include "awards.h"
#include "world.h"
#include "utilities.h"
#include "dataproxy_sqlite.h"
class QWidget;
class QTcpSocket;
class DXClusterWidget : public QWidget
{
Q_OBJECT
public:
DXClusterWidget(DataProxy_SQLite *dp, QWidget *parent );
DXClusterWidget(DataProxy_SQLite *dp, const QString &clusterToConnect, const int portToConnect, QWidget *parent );
void setColors (const QString &_newOne, const QString &_needed, const QString &_worked, const QString &_confirmed, const QString &_default);
void setDXClusterSpotConfig(bool _showhf, bool _showvhf, bool _showwarc, bool _showworked, bool _showconfirmed, bool _showann, bool _showwwv, bool _showwcy );
void setDXClusterServer(const QString &clusterToConnect, const int portToConnect);
void setCurrentLog(const int _log);
bool isConnected();
void setMyQRZ(const QString &_qrz);
void setDXMarathon (const bool _enable);
void setSaveSpots (const bool _enable);
//void sendSpotToCluster(const QString &_dx, const QString &_freq);
~DXClusterWidget();
private slots:
void slotClusterDisplayError(QAbstractSocket::SocketError socketError);
void slotClusterDataArrived();
void slotClusterSocketConnected();
void slotClusterSocketConnectionClosed();
void slotClusterSendToServer();
void slotClusterClearLineInput();
void slotClusterInputTextChanged();
void slotClusterDXClusterWidgetItemDoubleClicked( QListWidgetItem * item );
void slotClusterDXClusterWidgetItemEntered( QListWidgetItem * item);
void slotClusterDXClusterWidgetItemSelected();
signals:
void dxspotclicked(const QStringList &_qs); // DXSpotCall, DX-Freq, doubleClicked
//void dxspot(const QString &_spot); // The text string to be saved
private:
//void TESTADDSPOT(); // Just a test spot
void initClass();
void connectToDXCluster();
QStringList readItem(QListWidgetItem * item);
bool checkIfNeedsToBePrinted(const QString &_DXEntity, const int _band, const int _mode);
void saveSpot (const QString &_spot);
bool openFile();
void addData(); //TO BE DELETED, JUST FOR TESTING PURPOSES
QTcpSocket *tcpSocket;
QListWidget *dxClusterListWidget;
QLineEdit *inputCommand;
QPushButton *sendButton;
QPushButton *clearButton;
bool dxClusterConnected;
bool dxClusterAlreadyConnected;
QString server;
quint16 port;
quint16 blockSize;
QColor dxSpotColor;
World *world;
Awards *awards;
DataProxy_SQLite *dataProxy;
Utilities *util;
bool showhf, showvhf, showwarc, showworked, showconfirmed, showann, showwwv, showwcy;
bool dxClusterShowHF, dxClusterShowVHF, dxClusterShowWARC, dxClusterShowWorked, dxClusterShowConfirmed, dxClusterShowAnn, dxClusterShowWWV, dxClusterShowWCY;
bool showDxMarathon;
QString myQrz;
int currentLog;
int constrid; // Just an id for the constructor to check who is being executed at one specific time
QFile *saveSpotsFile;
bool saveSpots; // write/save the spots to a file
};
class dxClusterSpotItem : public QListWidgetItem {
public:
dxClusterSpotItem( QListWidget* parent, const QString& spot, const QColor& color );
~dxClusterSpotItem();
protected:
QColor spotColor;
};
#endif // DXCLUSTER_H