Better cache handling. Added clear cache button to settings.
[jenirok] / src / common / eniro.h
index 50b0aba..0a810dc 100644 (file)
@@ -25,6 +25,7 @@
 #include <QtCore/QSet>
 #include <QtCore/QRegExp>
 #include <QtCore/QUrl>
+#include <QtCore/QTimerEvent>
 #include <QtNetwork/QHttp>
 
 class Eniro: public QObject
@@ -38,7 +39,7 @@ public:
 
     enum SearchType {YELLOW_PAGES, PERSONS};
 
-    enum Error {NO_ERROR, CONNECTION_FAILURE, INVALID_LOGIN};
+    enum Error {NO_ERROR, CONNECTION_FAILURE, INVALID_LOGIN, TIMEOUT};
 
     struct Result
     {
@@ -74,6 +75,7 @@ public:
     void setSite(Site);
     void setMaxResults(unsigned int value);
     void setFindNumber(bool value);
+    void setTimeout(unsigned int ms);
     bool search(SearchDetails const& details);
     void abort();
     Error error() const;
@@ -112,6 +114,8 @@ private:
     void loadNumber(int id, QString const& data);
     void getNumberForResult(int id, int index, SearchDetails const& details);
     void emitRequestFinished(int key, SearchData* data, bool error);
+    void resetTimeout();
+    void timerEvent(QTimerEvent *te);
     QString ucFirst(QString& string);
     QString& cleanUpNumber(QString& number);
     QString& stripTags(QString& string);
@@ -124,6 +128,8 @@ private:
     Error error_;
     QString errorString_;
     unsigned int maxResults_;
+    unsigned int timeout_;
+    int timerId_;
     bool findNumber_;
     typedef QMap <int, SearchData*> searchMap;
     typedef QMap <int, NumberData*> numberMap;