From c96950584fbc8d83621b00d6b95a0735a115c916 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Sat, 24 Aug 2013 23:25:13 +0200 Subject: [PATCH] local server now runs in a separated thread --- YACReader/main_window_viewer.cpp | 7 ++++++- YACReader/viewer.cpp | 1 + YACReader/yacreader_local_client.cpp | 4 ++-- YACReaderLibrary/main.cpp | 2 ++ YACReaderLibrary/yacreader_local_server.cpp | 8 +++++++- YACReaderLibrary/yacreader_local_server.h | 3 ++- 6 files changed, 20 insertions(+), 5 deletions(-) diff --git a/YACReader/main_window_viewer.cpp b/YACReader/main_window_viewer.cpp index a1158184..e43dbc48 100644 --- a/YACReader/main_window_viewer.cpp +++ b/YACReader/main_window_viewer.cpp @@ -214,7 +214,12 @@ void MainWindowViewer::openFromArgv() currentComicDB.id = comicId; YACReaderLocalClient client; - + /*int tries = 0; + bool success = false; + while(!(success = client.requestComicInfo(libraryId,currentComicDB,siblingComics)) && tries < 3) + { + tries++; + }*/ if(client.requestComicInfo(libraryId,currentComicDB,siblingComics)) { isClient = true; diff --git a/YACReader/viewer.cpp b/YACReader/viewer.cpp index 02fe3121..7db35475 100644 --- a/YACReader/viewer.cpp +++ b/YACReader/viewer.cpp @@ -798,6 +798,7 @@ void Viewer::mouseReleaseEvent ( QMouseEvent * event ) void Viewer::updateFitToWidthRatio(float ratio) { + Configuration::getConfiguration().setAdjustToWidth(true); adjustToWidthRatio = ratio; updateContentSize(); } diff --git a/YACReader/yacreader_local_client.cpp b/YACReader/yacreader_local_client.cpp index 2c6164ab..5f966d7e 100644 --- a/YACReader/yacreader_local_client.cpp +++ b/YACReader/yacreader_local_client.cpp @@ -56,7 +56,7 @@ bool YACReaderLocalClient::requestComicInfo(quint64 libraryId, ComicDB & comic, localSocket->waitForReadyRead(100); tries++; } - if(tries == 20) + if(tries == 10) return false; QDataStream sizeStream(localSocket->read(sizeof(quint16))); sizeStream.setVersion(QDataStream::Qt_4_8); @@ -69,7 +69,7 @@ bool YACReaderLocalClient::requestComicInfo(quint64 libraryId, ComicDB & comic, localSocket->waitForReadyRead(100); tries++; } - if(tries == 20) + if(tries == 10) return false; QDataStream dataStream(localSocket->read(totalSize)); dataStream >> comic; diff --git a/YACReaderLibrary/main.cpp b/YACReaderLibrary/main.cpp index 962b3afd..70bdccf4 100644 --- a/YACReaderLibrary/main.cpp +++ b/YACReaderLibrary/main.cpp @@ -52,6 +52,8 @@ int main( int argc, char ** argv ) LibraryWindow * mw = new LibraryWindow(); mw->connect(localServer,SIGNAL(comicUpdated(quint64, const ComicDB &)),mw,SLOT(updateComicsView(quint64, const ComicDB &))); + + localServer->start(); //connections to localServer mw->show(); diff --git a/YACReaderLibrary/yacreader_local_server.cpp b/YACReaderLibrary/yacreader_local_server.cpp index db42e115..17ba3aa5 100644 --- a/YACReaderLibrary/yacreader_local_server.cpp +++ b/YACReaderLibrary/yacreader_local_server.cpp @@ -12,7 +12,7 @@ using namespace YACReader; YACReaderLocalServer::YACReaderLocalServer(QObject *parent) : - QObject(parent) + QThread(parent) { localServer = new QLocalServer(this); if (!localServer->listen(YACREADERLIBRARY_GUID)) { @@ -27,6 +27,12 @@ bool YACReaderLocalServer::isListening() return localServer->isListening(); } +void YACReaderLocalServer::run() +{ + while(1) + exec(); +} + void YACReaderLocalServer::sendResponse() { QLocalSocket *clientConnection = localServer->nextPendingConnection(); diff --git a/YACReaderLibrary/yacreader_local_server.h b/YACReaderLibrary/yacreader_local_server.h index ad53015e..45e4be09 100644 --- a/YACReaderLibrary/yacreader_local_server.h +++ b/YACReaderLibrary/yacreader_local_server.h @@ -8,7 +8,7 @@ class QLocalServer; class QLocalSocket; class ComicDB; -class YACReaderLocalServer : public QObject +class YACReaderLocalServer : public QThread { Q_OBJECT public: @@ -21,6 +21,7 @@ public slots: void sendResponse(); static bool isRunning(); private: + void run(); QLocalServer * localServer; };