diff --git a/YACReaderLibrary/import_widget.cpp b/YACReaderLibrary/import_widget.cpp index eb22ebcf..0e325e26 100644 --- a/YACReaderLibrary/import_widget.cpp +++ b/YACReaderLibrary/import_widget.cpp @@ -211,6 +211,7 @@ ImportWidget::ImportWidget(QWidget *parent) : previousWidth = 10; updatingCovers = false; elapsedTimer = new QElapsedTimer(); + elapsedTimer->start(); } void ImportWidget::newComic(const QString & path, const QString & coverPath) diff --git a/YACReaderLibrary/server_config_dialog.cpp b/YACReaderLibrary/server_config_dialog.cpp index 73761624..a44a5271 100644 --- a/YACReaderLibrary/server_config_dialog.cpp +++ b/YACReaderLibrary/server_config_dialog.cpp @@ -13,6 +13,22 @@ #include "startup.h" #include "yacreader_global.h" +#include + +bool ipComparator(const QString & ip1, const QString & ip2) +{ + if(ip1.startsWith("192.168") && ip2.startsWith("192.168")) + return ip1 < ip2; + + if(ip1.startsWith("192.168")) + return true; + + if(ip2.startsWith("192.168")) + return false; + + return ip1 < ip2; +} + #ifndef Q_OS_WIN32 #include @@ -166,7 +182,7 @@ ServerConfigDialog::ServerConfigDialog(QWidget * parent) settings->endGroup(); - connect(check,SIGNAL(stateChanged(int)),this,SLOT(enableServer(int))); + connect(check,SIGNAL(stateChanged(int)),this,SLOT(enableServer(int))); } void ServerConfigDialog::enableServer(int status) @@ -205,6 +221,7 @@ void ServerConfigDialog::generateQR() //} ip->clear(); QString dir; + #ifdef Q_OS_WIN32 QList list = QHostInfo::fromName( QHostInfo::localHostName() ).addresses(); @@ -214,11 +231,7 @@ void ServerConfigDialog::generateQR() QString tmp = add.toString(); if(tmp.contains(".") && !tmp.startsWith("127")) { - if(dir.isEmpty() && tmp.startsWith("192.168.2.")) - dir = tmp; - else - otherAddresses.push_back(tmp); - + otherAddresses.push_back(tmp); } } @@ -231,14 +244,19 @@ void ServerConfigDialog::generateQR() QString tmp = add; if(tmp.contains(".") && !tmp.startsWith("127")) { - if(dir.isEmpty() && tmp.startsWith("192.168.2.")) - dir = tmp; - else - otherAddresses.push_back(tmp); - + otherAddresses.push_back(tmp); } } #endif + + std::sort(otherAddresses.begin(),otherAddresses.end(),ipComparator); + + if(!otherAddresses.isEmpty()) + { + dir = otherAddresses.first(); + otherAddresses.pop_front(); + } + if(otherAddresses.length()>0 || !dir.isEmpty()) { if(!dir.isEmpty()) diff --git a/YACReaderLibrary/server_config_dialog.h b/YACReaderLibrary/server_config_dialog.h index b21c96ee..dfe441b5 100644 --- a/YACReaderLibrary/server_config_dialog.h +++ b/YACReaderLibrary/server_config_dialog.h @@ -28,6 +28,7 @@ Q_OBJECT QPixmap * qrCodeImage; QProcess * qrGenerator; + public slots: void generateQR(); void generateQR(const QString & serverAddress); @@ -41,4 +42,4 @@ signals: }; -#endif \ No newline at end of file +#endif diff --git a/compressed_archive/compressed_archive.cpp b/compressed_archive/compressed_archive.cpp index 25bcc2ee..797bb644 100644 --- a/compressed_archive/compressed_archive.cpp +++ b/compressed_archive/compressed_archive.cpp @@ -178,12 +178,16 @@ CompressedArchive::CompressedArchive(const QString & filePath, QObject *parent) CompressedArchive::~CompressedArchive() { + #ifdef Q_OS_UNIX if(isRar) //TODO: fix this!!! Possible memory leak. If AddRef is not used, a crash occurs in "delete szInterface" szInterface->archive->AddRef(); #endif if(valid) //TODO: fix this!!! Memory leak. + { + szInterface->archive->Close(); delete szInterface; + } #ifdef Q_OS_UNIX delete rarLib; #endif