summaryrefslogtreecommitdiffstats
path: root/examples/network/infoprotocol/infourlclient/client.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/network/infoprotocol/infourlclient/client.cpp')
-rw-r--r--examples/network/infoprotocol/infourlclient/client.cpp60
1 files changed, 60 insertions, 0 deletions
diff --git a/examples/network/infoprotocol/infourlclient/client.cpp b/examples/network/infoprotocol/infourlclient/client.cpp
new file mode 100644
index 0000000..712090f
--- /dev/null
+++ b/examples/network/infoprotocol/infourlclient/client.cpp
@@ -0,0 +1,60 @@
+/****************************************************************************
+**
+** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
+**
+** This file is part of an example program for Qt. This example
+** program may be used, distributed and modified without limitation.
+**
+*****************************************************************************/
+
+#include <qapplication.h>
+#include <qtextedit.h>
+#include <qpushbutton.h>
+#include <qfiledialog.h>
+
+#include "qip.h"
+#include "client.h"
+
+
+
+
+ClientInfo::ClientInfo( QWidget *parent, const char *name ) :
+ ClientInfoBase( parent, name )
+{
+ connect( btnOpen, SIGNAL(clicked()), SLOT(downloadFile()) );
+ connect( btnQuit, SIGNAL(clicked()), qApp, SLOT(quit()) );
+ connect( &op, SIGNAL( data( const QByteArray &, QNetworkOperation * ) ),
+ this, SLOT( newData( const QByteArray & ) ) );
+}
+
+void ClientInfo::downloadFile()
+{
+ // under Windows you must not use the native file dialog
+ QString file = getOpenFileName();
+ if ( !file.isEmpty() ) {
+ infoText->clear();
+ // download the data
+ op = file;
+ op.get();
+ }
+}
+
+QString ClientInfo::getOpenFileName()
+{
+ static QString workingDirectory( "qip://localhost/" );
+
+ QFileDialog dlg( workingDirectory, QString::null, 0, 0, TRUE );
+ dlg.setCaption( QFileDialog::tr( "Open" ) );
+ dlg.setMode( QFileDialog::ExistingFile );
+ QString result;
+ if ( dlg.exec() == QDialog::Accepted ) {
+ result = dlg.selectedFile();
+ workingDirectory = dlg.url();
+ }
+ return result;
+}
+
+void ClientInfo::newData( const QByteArray &ba )
+{
+ infoText->append( QString::fromUtf8( ba ) );
+}