From b0cfaaf13cb69ce681d5c28b507fbded614f7aef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Sun, 9 Sep 2012 10:51:44 +0200 Subject: [PATCH] Descubrimiento autom?tico de la direcci?n ip local (BETA) --- YACReaderLibrary/main.cpp | 3 ++- YACReaderLibrary/server/startup.cpp | 4 ++++ YACReaderLibrary/server/startup.h | 2 ++ YACReaderLibrary/server_config_dialog.cpp | 29 ++++++++++++++++++++++- 4 files changed, 36 insertions(+), 2 deletions(-) diff --git a/YACReaderLibrary/main.cpp b/YACReaderLibrary/main.cpp index 0504f598..2ccd3a87 100644 --- a/YACReaderLibrary/main.cpp +++ b/YACReaderLibrary/main.cpp @@ -6,6 +6,7 @@ //interfaz al servidor LibraryWindow * mw; +Startup * s; int main( int argc, char ** argv ) { @@ -21,7 +22,7 @@ int main( int argc, char ** argv ) mw->resize(800,480); mw->showMaximized(); - Startup * s = new Startup(); + s = new Startup(); s->start(); return app.exec(); diff --git a/YACReaderLibrary/server/startup.cpp b/YACReaderLibrary/server/startup.cpp index 221d9dce..2cb3a60e 100644 --- a/YACReaderLibrary/server/startup.cpp +++ b/YACReaderLibrary/server/startup.cpp @@ -73,5 +73,9 @@ Startup::Startup() } +QString Startup::getPort() +{ + return QString("%1").arg(listener->serverPort()); +} diff --git a/YACReaderLibrary/server/startup.h b/YACReaderLibrary/server/startup.h index 7405f0d1..3352e6b5 100644 --- a/YACReaderLibrary/server/startup.h +++ b/YACReaderLibrary/server/startup.h @@ -24,6 +24,8 @@ public: void start(); /** Stop the server */ void stop(); + + QString getPort(); protected: }; diff --git a/YACReaderLibrary/server_config_dialog.cpp b/YACReaderLibrary/server_config_dialog.cpp index 67190caa..8da03373 100644 --- a/YACReaderLibrary/server_config_dialog.cpp +++ b/YACReaderLibrary/server_config_dialog.cpp @@ -1,7 +1,13 @@ #include "server_config_dialog.h" #include #include +#include +#include +#include +#include "startup.h" + +extern Startup * s; ServerConfigDialog::ServerConfigDialog(QWidget * parent) :QDialog(parent) @@ -21,7 +27,28 @@ ServerConfigDialog::ServerConfigDialog(QWidget * parent) void ServerConfigDialog::generateQR() { - generateQR("192.168.2.110:8080"); + //QString items; + //foreach(QNetworkInterface interface, QNetworkInterface::allInterfaces()) + //{ + // if (~interface.flags() & QNetworkInterface::IsLoopBack)//interface.flags().testFlag(QNetworkInterface::IsRunning)) + // foreach (QNetworkAddressEntry entry, interface.addressEntries()) + // { + // if ( interface.hardwareAddress() != "00:00:00:00:00:00" && entry.ip().toString().contains(".")) + // items.append(interface.name() + entry.ip().toString()); + // } + //} + + QString dir; + QList list = QHostInfo::fromName( QHostInfo::localHostName() ).addresses(); + foreach(QHostAddress add, list) + { + dir = add.toString(); + if(dir.contains(".")) + break; + } + generateQR(dir+":"+s->getPort()); + //qrCode->setText(dir+":8080"); + } void ServerConfigDialog::generateQR(const QString & serverAddress)