From d796c9dd933ab96ec83b9a634feedd5d32e1ba3f Mon Sep 17 00:00:00 2001
From: Timothy Pearson <kb9vqf@pearsoncomputing.net>
Date: Tue, 8 Nov 2011 12:31:36 -0600
Subject: Test conversion to TQt3 from Qt3
 8c6fc1f8e35fd264dd01c582ca5e7549b32ab731

---
 examples/network/archivesearch/archivedialog.ui   | 137 ++++++++++++++++++++++
 examples/network/archivesearch/archivedialog.ui.h | 102 ++++++++++++++++
 examples/network/archivesearch/archivesearch.doc  |  25 ++++
 examples/network/archivesearch/archivesearch.pro  |   9 ++
 examples/network/archivesearch/main.cpp           |  23 ++++
 5 files changed, 296 insertions(+)
 create mode 100644 examples/network/archivesearch/archivedialog.ui
 create mode 100644 examples/network/archivesearch/archivedialog.ui.h
 create mode 100644 examples/network/archivesearch/archivesearch.doc
 create mode 100644 examples/network/archivesearch/archivesearch.pro
 create mode 100644 examples/network/archivesearch/main.cpp

(limited to 'examples/network/archivesearch')

diff --git a/examples/network/archivesearch/archivedialog.ui b/examples/network/archivesearch/archivedialog.ui
new file mode 100644
index 000000000..3d3e67a90
--- /dev/null
+++ b/examples/network/archivesearch/archivedialog.ui
@@ -0,0 +1,137 @@
+<!DOCTYPE UI><UI version="3.1" stdsetdef="1">
+<class>ArchiveDialog</class>
+<widget class="TQDialog">
+    <property name="name">
+        <cstring>ArchiveDialog</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>673</width>
+            <height>561</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>TQt-interest Archive Search Tool</string>
+    </property>
+    <vbox>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="TQLayoutWidget">
+            <property name="name">
+                <cstring>layout1</cstring>
+            </property>
+            <hbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="TQLabel">
+                    <property name="name">
+                        <cstring>myTextLabel</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Search phrase</string>
+                    </property>
+                </widget>
+                <widget class="TQLineEdit">
+                    <property name="name">
+                        <cstring>myLineEdit</cstring>
+                    </property>
+                </widget>
+            </hbox>
+        </widget>
+        <widget class="TQSplitter">
+            <property name="name">
+                <cstring>splitter1</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Horizontal</enum>
+            </property>
+            <widget class="TQListView">
+                <column>
+                    <property name="text">
+                        <string>Matching documents</string>
+                    </property>
+                    <property name="clickable">
+                        <bool>true</bool>
+                    </property>
+                    <property name="resizable">
+                        <bool>true</bool>
+                    </property>
+                </column>
+                <property name="name">
+                    <cstring>myListView</cstring>
+                </property>
+            </widget>
+            <widget class="TQTextBrowser">
+                <property name="name">
+                    <cstring>myTextBrowser</cstring>
+                </property>
+            </widget>
+        </widget>
+        <widget class="TQLayoutWidget">
+            <property name="name">
+                <cstring>layout3</cstring>
+            </property>
+            <hbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <spacer>
+                    <property name="name">
+                        <cstring>mySpacer</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Horizontal</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>281</width>
+                            <height>21</height>
+                        </size>
+                    </property>
+                </spacer>
+                <widget class="TQPushButton">
+                    <property name="name">
+                        <cstring>myPushButton</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Quit</string>
+                    </property>
+                    <property name="autoDefault">
+                        <bool>false</bool>
+                    </property>
+                </widget>
+            </hbox>
+        </widget>
+    </vbox>
+</widget>
+<includes>
+    <include location="global" impldecl="in declaration">qhttp.h</include>
+    <include location="global" impldecl="in declaration">qurl.h</include>
+    <include location="global" impldecl="in declaration">qmessagebox.h</include>
+    <include location="global" impldecl="in declaration">qapplication.h</include>
+    <include location="global" impldecl="in declaration">qcursor.h</include>
+    <include location="global" impldecl="in declaration">qregexp.h</include>
+    <include location="local" impldecl="in implementation">archivedialog.ui.h</include>
+</includes>
+<variables>
+    <variable access="private">TQHttp articleSearcher;</variable>
+    <variable access="private">TQHttp articleFetcher;</variable>
+</variables>
+<slots>
+    <slot specifier="non virtual">fetch( TQListViewItem * it )</slot>
+    <slot specifier="non virtual">fetchDone( bool error )</slot>
+    <slot specifier="non virtual">search()</slot>
+    <slot specifier="non virtual">searchDone( bool error )</slot>
+</slots>
+<functions>
+    <function access="private" specifier="non virtual">init()</function>
+</functions>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/examples/network/archivesearch/archivedialog.ui.h b/examples/network/archivesearch/archivedialog.ui.h
new file mode 100644
index 000000000..e5b70cb10
--- /dev/null
+++ b/examples/network/archivesearch/archivedialog.ui.h
@@ -0,0 +1,102 @@
+/****************************************************************************
+**
+** Copyright (C) 1992-2008 Trolltech ASA.  All rights reserved.
+**
+** This file is part of an example program for TQt.  This example
+** program may be used, distributed and modified without limitation.
+**
+*****************************************************************************/
+
+/****************************************************************************
+** ui.h extension file, included from the uic-generated form implementation.
+**
+** If you wish to add, delete or rename functions or slots use
+** TQt Designer which will update this file, preserving your code. Create an
+** init() function in place of a constructor, and a destroy() function in
+** place of a destructor.
+*****************************************************************************/
+
+void ArchiveDialog::init()
+{
+    connect(&articleSearcher, SIGNAL(done(bool)), this, SLOT(searchDone(bool)));
+    connect(&articleFetcher, SIGNAL(done(bool)), this, SLOT(fetchDone(bool)));
+    connect(myListView, SIGNAL(selectionChanged(TQListViewItem*)), this, SLOT(fetch(TQListViewItem*)));
+    connect(myLineEdit, SIGNAL(returnPressed()), this, SLOT(search()));
+    connect(myListView, SIGNAL(returnPressed(TQListViewItem*)), this, SLOT(fetch(TQListViewItem*)));
+    connect(myPushButton, SIGNAL(clicked()), this, SLOT(close()));
+}
+
+void ArchiveDialog::fetch( TQListViewItem *it )
+{
+    TQUrl u(it->text(1));
+    articleFetcher.setHost(u.host());
+    articleFetcher.get(it->text(1));
+}
+
+void ArchiveDialog::fetchDone( bool error )
+{
+    if (error) {
+	TQMessageBox::critical(this, "Error fetching",
+			      "An error occurred when fetching this document: "
+			      + articleFetcher.errorString(),	
+			      TQMessageBox::Ok, TQMessageBox::NoButton);
+    } else {
+	myTextBrowser->setText(articleFetcher.readAll());
+    }
+}
+
+void ArchiveDialog::search()
+{
+    if (articleSearcher.state() == TQHttp::HostLookup
+	|| articleSearcher.state() == TQHttp::Connecting
+	|| articleSearcher.state() == TQHttp::Sending
+	|| articleSearcher.state() == TQHttp::Reading) {
+	articleSearcher.abort();
+    }
+    
+    if (myLineEdit->text() == "") {
+	TQMessageBox::critical(this, "Empty query",
+			      "Please type a search string.",
+			      TQMessageBox::Ok, TQMessageBox::NoButton);
+    } else {
+	TQApplication::setOverrideCursor(TQCursor(TQt::WaitCursor));
+    
+	articleSearcher.setHost("lists.trolltech.com");
+    
+	TQHttpRequestHeader header("POST", "/qt-interest/search.php");
+	header.setValue("Host", "lists.trolltech.com");
+	header.setContentType("application/x-www-form-urlencoded");
+    
+	TQString encodedTopic = myLineEdit->text();
+	TQUrl::encode(encodedTopic);
+	TQString searchString = "qt-interest=on&search=" + encodedTopic;
+
+	articleSearcher.request(header, searchString.utf8());
+    }
+
+}
+
+void ArchiveDialog::searchDone( bool error )
+{
+    if (error) {
+	TQMessageBox::critical(this, "Error searching",
+			      "An error occurred when searching: "
+			      + articleSearcher.errorString(),
+			      TQMessageBox::Ok, TQMessageBox::NoButton);
+    } else {
+	TQString result(articleSearcher.readAll());
+	
+	TQRegExp rx("<a href=\"(http://lists\\.trolltech\\.com/qt-interest/.*)\">(.*)</a>");
+	rx.setMinimal(TRUE);
+	int pos = 0;
+	while (pos >= 0) {
+	    pos = rx.search(result, pos);
+	    if (pos > -1) {
+		pos += rx.matchedLength();
+		new TQListViewItem(myListView, rx.cap(2), rx.cap(1));
+	    }
+	}
+    }
+    
+    TQApplication::restoreOverrideCursor();
+}
diff --git a/examples/network/archivesearch/archivesearch.doc b/examples/network/archivesearch/archivesearch.doc
new file mode 100644
index 000000000..e4589cceb
--- /dev/null
+++ b/examples/network/archivesearch/archivesearch.doc
@@ -0,0 +1,25 @@
+/*
+*/
+     
+/*! \page archivesearch-example.html
+
+  \ingroup network-examples
+
+  \title A qt-interest mail archive search
+ 
+  This example does a search on the qt-interest mailinglist archives. It uses
+  QHttp to issue the search command and to fetch the results. The GUI parts
+  were done using \link designer-manual.book Qt Designer\endlink.
+ 
+  <hr>
+ 
+  The implementation of the HTTP requests (archivedialog.ui.h):
+ 
+  \include network/archivesearch/archivedialog.ui.h
+ 
+  <hr>
+ 
+  Main (main.cpp):
+ 
+  \include network/archivesearch/main.cpp
+*/
diff --git a/examples/network/archivesearch/archivesearch.pro b/examples/network/archivesearch/archivesearch.pro
new file mode 100644
index 000000000..1423814c3
--- /dev/null
+++ b/examples/network/archivesearch/archivesearch.pro
@@ -0,0 +1,9 @@
+TEMPLATE	= app
+
+CONFIG		+= qt warn_on release
+
+REQUIRES        = network full-config
+
+HEADERS		+= archivedialog.ui.h
+INTERFACES	+= archivedialog.ui
+SOURCES		+= main.cpp
diff --git a/examples/network/archivesearch/main.cpp b/examples/network/archivesearch/main.cpp
new file mode 100644
index 000000000..c08a00031
--- /dev/null
+++ b/examples/network/archivesearch/main.cpp
@@ -0,0 +1,23 @@
+/****************************************************************************
+**
+** Copyright (C) 1992-2008 Trolltech ASA.  All rights reserved.
+**
+** This file is part of an example program for TQt.  This example
+** program may be used, distributed and modified without limitation.
+**
+*****************************************************************************/
+
+#include "archivedialog.h"
+#include <qapplication.h>
+
+int main(int argc, char **argv)
+{
+    TQApplication a( argc, argv );
+    ArchiveDialog ad;
+    ad.show();
+
+    TQObject::connect( &a, SIGNAL(lastWindowClosed()),
+		      &a, SLOT(tquit()) );
+    
+    return a.exec();
+}
-- 
cgit v1.2.1