diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-01-20 02:37:40 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-01-20 02:37:40 +0000 |
commit | 9ad5c7b5e23b4940e7a3ea3ca3a6fb77e6a8fab0 (patch) | |
tree | d088b5210e77d9fa91d954d8550e00e372b47378 /apps/ktupnptest | |
download | ktorrent-9ad5c7b5e23b4940e7a3ea3ca3a6fb77e6a8fab0.tar.gz ktorrent-9ad5c7b5e23b4940e7a3ea3ca3a6fb77e6a8fab0.zip |
Updated to final KDE3 ktorrent release (2.2.6)
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/ktorrent@1077377 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'apps/ktupnptest')
-rw-r--r-- | apps/ktupnptest/Makefile.am | 9 | ||||
-rw-r--r-- | apps/ktupnptest/main.cpp | 98 | ||||
-rw-r--r-- | apps/ktupnptest/mainwidget.ui | 76 | ||||
-rw-r--r-- | apps/ktupnptest/upnptestapp.cpp | 87 | ||||
-rw-r--r-- | apps/ktupnptest/upnptestapp.h | 58 |
5 files changed, 328 insertions, 0 deletions
diff --git a/apps/ktupnptest/Makefile.am b/apps/ktupnptest/Makefile.am new file mode 100644 index 0000000..95cfa6e --- /dev/null +++ b/apps/ktupnptest/Makefile.am @@ -0,0 +1,9 @@ +INCLUDES = -I$(srcdir)/../../libktorrent -I$(srcdir)/../.. $(all_includes) +METASOURCES = AUTO +bin_PROGRAMS = ktupnptest + +ktupnptest_SOURCES = main.cpp upnptestapp.cpp mainwidget.ui +ktupnptest_LDADD = ../../plugins/upnp/libktupnp.la \ + ../../libktorrent/libktorrent.la +noinst_HEADERS = upnptestapp.h +KDE_CXXFLAGS = $(USE_EXCEPTIONS) $(USE_RTTI) diff --git a/apps/ktupnptest/main.cpp b/apps/ktupnptest/main.cpp new file mode 100644 index 0000000..c2629ef --- /dev/null +++ b/apps/ktupnptest/main.cpp @@ -0,0 +1,98 @@ +/*************************************************************************** + * Copyright (C) 2005 by Joris Guisson * + * [email protected] * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ***************************************************************************/ +#include <stdio.h> +#include <stdlib.h> +#include <klocale.h> +#include <kaboutdata.h> +#include <kapplication.h> +#include <kcmdlineargs.h> +#include <libktorrent/functions.h> + + +#include "upnptestapp.h" + +using namespace kt; +using namespace bt; + +static const char description[] = + I18N_NOOP("A KDE KPart Application"); + +static const char version[] = "1.3dev"; + +static KCmdLineOptions options[] = +{ +// { "+[URL]", I18N_NOOP( "Document to open" ), 0 }, + KCmdLineLastOption +}; + + + + +int main(int argc,char** argv) +{ + Globals::instance().setDebugMode(true); + KAboutData about("ktupnptest", I18N_NOOP("KTUPnPTest"), version, description, + KAboutData::License_GPL, "(C) 2005 Joris Guisson", 0, + "http://ktorrent.org/"); + KCmdLineArgs::init(argc, argv,&about); + KCmdLineArgs::addCmdLineOptions( options ); + KApplication app; + Globals::instance().initLog(kt::DataDir() + "ktupnptest.log"); + UPnPTestApp* mwnd = new UPnPTestApp(); + + app.setMainWidget(mwnd); + mwnd->show(); + app.exec(); + Globals::cleanup(); + return 0; + + /* + if (argc >= 2) + { + kt::UPnPRouter router(QString::null,"http://foobar.com"); + kt::UPnPDescriptionParser dp; + + if (!dp.parse(argv[1],&router)) + { + Out() << "Cannot parse " << QString(argv[1]) << endl; + } + else + { + Out() << "Succesfully parsed the UPnP contents" << endl; + router.debugPrintData(); + } + } + + + Out() << "Doing second test" << endl; + UPnPMCastSocket mcast; + UPnPRouter* r = mcast.parseResponse(QCString(test_ps)); + if (r) + { + Out() << "Succesfully parsed test_ps" << endl; + delete r; + } + else + { + Out() << "Failed to parse test_ps" << endl; + } + */ + +} diff --git a/apps/ktupnptest/mainwidget.ui b/apps/ktupnptest/mainwidget.ui new file mode 100644 index 0000000..cb375f8 --- /dev/null +++ b/apps/ktupnptest/mainwidget.ui @@ -0,0 +1,76 @@ +<!DOCTYPE UI><UI version="3.3" stdsetdef="1"> +<class>MainWidget</class> +<widget class="QWidget"> + <property name="name"> + <cstring>MainWidget</cstring> + </property> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>600</width> + <height>480</height> + </rect> + </property> + <vbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QTextBrowser"> + <property name="name"> + <cstring>output</cstring> + </property> + </widget> + <widget class="QLayoutWidget"> + <property name="name"> + <cstring>layout1</cstring> + </property> + <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <spacer> + <property name="name"> + <cstring>spacer1</cstring> + </property> + <property name="orientation"> + <enum>Horizontal</enum> + </property> + <property name="sizeType"> + <enum>Expanding</enum> + </property> + <property name="sizeHint"> + <size> + <width>61</width> + <height>20</height> + </size> + </property> + </spacer> + <widget class="KPushButton"> + <property name="name"> + <cstring>test_btn</cstring> + </property> + <property name="text"> + <string>Test</string> + </property> + </widget> + <widget class="KPushButton"> + <property name="name"> + <cstring>close_btn</cstring> + </property> + <property name="text"> + <string>Close</string> + </property> + </widget> + </hbox> + </widget> + </vbox> +</widget> +<customwidgets> +</customwidgets> +<layoutdefaults spacing="6" margin="11"/> +<includehints> + <includehint>kpushbutton.h</includehint> + <includehint>kpushbutton.h</includehint> +</includehints> +</UI> diff --git a/apps/ktupnptest/upnptestapp.cpp b/apps/ktupnptest/upnptestapp.cpp new file mode 100644 index 0000000..d50b314 --- /dev/null +++ b/apps/ktupnptest/upnptestapp.cpp @@ -0,0 +1,87 @@ +/*************************************************************************** + * Copyright (C) 2005 by Joris Guisson * + * [email protected] * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ***************************************************************************/ +#include <kpushbutton.h> +#include <klocale.h> +#include <kapplication.h> +#include <kmessagebox.h> +#include <qtextbrowser.h> +#include <util/error.h> +#include "upnptestapp.h" +#include "mainwidget.h" + +using namespace bt; +using namespace kt; + +UPnPTestApp::UPnPTestApp(QWidget *parent, const char *name) + : KMainWindow(parent, name) +{ + sock = new UPnPMCastSocket(true); + connect(sock,SIGNAL(discovered( UPnPRouter* )),this,SLOT(discovered( UPnPRouter* ))); + mwnd = new MainWidget(this); + setCentralWidget(mwnd); + connect(mwnd->test_btn,SIGNAL(clicked()),this,SLOT(onTestBtn())); + connect(mwnd->close_btn,SIGNAL(clicked()),this,SLOT(onCloseBtn())); + bt::Log & lg = bt::Globals::instance().getLog(0); + lg.addMonitor(this); + Out() << "UPnPTestApp started up !" << endl; +} + + +UPnPTestApp::~UPnPTestApp() +{ + sock->deleteLater(); +} + +void UPnPTestApp::discovered(kt::UPnPRouter* router) +{ + try + { + router->forward(net::Port(9999,net::TCP,false)); + } + catch (Error & e) + { + KMessageBox::error(this,e.toString()); + } +} + +void UPnPTestApp::onTestBtn() +{ + sock->discover(); +} + +void UPnPTestApp::onCloseBtn() +{ + kapp->quit(); +} + +bool UPnPTestApp::queryExit() +{ + bt::Log & lg = bt::Globals::instance().getLog(0); + lg.removeMonitor(this); + return true; +} + +void UPnPTestApp::message(const QString& line, unsigned int arg) +{ + mwnd->output->append(line); +} + + +#include "upnptestapp.moc" diff --git a/apps/ktupnptest/upnptestapp.h b/apps/ktupnptest/upnptestapp.h new file mode 100644 index 0000000..6554687 --- /dev/null +++ b/apps/ktupnptest/upnptestapp.h @@ -0,0 +1,58 @@ +/*************************************************************************** + * Copyright (C) 2005 by Joris Guisson * + * [email protected] * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ***************************************************************************/ +#ifndef UPNPTESTAPP_H +#define UPNPTESTAPP_H + +#include <kmainwindow.h> +#include <libktorrent/util/log.h> +#include <libktorrent/torrent/globals.h> +#include <plugins/upnp/upnprouter.h> +#include <plugins/upnp/upnpdescriptionparser.h> +#include <plugins/upnp/upnpmcastsocket.h> +#include <interfaces/logmonitorinterface.h> + +class MainWidget; + +using kt::UPnPRouter; + +/** + @author Joris Guisson <[email protected]> +*/ +class UPnPTestApp : public KMainWindow, public kt::LogMonitorInterface +{ + Q_OBJECT +public: + UPnPTestApp(QWidget *parent = 0, const char *name = 0); + virtual ~UPnPTestApp(); + + virtual void message(const QString& line, unsigned int arg); + bool queryExit(); + +private slots: + void discovered(UPnPRouter* router); + void onTestBtn(); + void onCloseBtn(); + +private: + kt::UPnPMCastSocket* sock; + MainWidget* mwnd; +}; + +#endif |