Some error banner delays fixed.
[jenirok] / src / daemon / calllistener.h
index 7e47306..0cd70ed 100644 (file)
 #include <QtDBus/QDBusObjectPath>
 #include "informationbox.h"
 #include "eniro.h"
-#include "contactmanager.h"
 
 class CallListener: public QObject
 {
-
     Q_OBJECT
 
 public:
     CallListener();
     ~CallListener();
-    void begin();
+    bool begin();
     void end();
+    static const int REQUEST_TIMEOUT = 10000;
+    static const int BANNER_DELAY = 350;
+    static const int SEARCH_RETRIES = 2;
+    static const int CONNECT_RETRIES = 3;
+    static const int CONNECTION_LOOKUP_RETRIES = 15;
+    static const int WAIT_BETWEEN_RETRIES = 1000;
+    static const int ERROR_BANNER_TIMEOUT = 4500;
+
+protected:
+    virtual void timerEvent(QTimerEvent* event);
 
 private slots:
     void requestFinished(QVector <Eniro::Result> const& results, Eniro::SearchDetails const& details, bool error);
     void incomingCall(QDBusObjectPath path, QString numbe);
     void callTerminate();
+    void showTimedMessage();
 
 private:
-       Q_DISABLE_COPY(CallListener);
+    Q_DISABLE_COPY(CallListener);
 
-       void search(Eniro::SearchDetails const& details);
-       void showResult(QString const& text);
-       QString createResult(QString const& name, QString const& street, QString const& city);
+    void search(Eniro::SearchDetails const& details);
+    void showResult(QString const& text);
+    void showDelayedResult(QString const& text, int delay);
+    void searchInit();
+    void searchClose();
+    bool handleConnection();
+    void showError(QString const& msg, int delay = 0);
+    void sleep(int ms);
+    QString createResult(QString const& name, QString const& street, QString const& city);
+    QString timedMessage_;
     Eniro* eniro_;
-    ContactManager* contactManager_;
+    bool closeConnection_;
+    bool initialized_;
     InformationBox* box_;
     QLabel* label_;
     static QDBusConnection systemBus_;
+    int retries_;
+    QString currentSearch_;
+    Eniro::Site site_;
+    int timer_;
 };
 
 #endif // CALLLISTENER_H