[Pymoul-svn] SF.net SVN: pymoul: [42] pymoul/trunk/src/moul
Status: Alpha
Brought to you by:
tiran
|
From: <ti...@us...> - 2007-01-17 13:37:56
|
Revision: 42
http://pymoul.svn.sourceforge.net/pymoul/?rev=42&view=rev
Author: tiran
Date: 2007-01-17 05:37:52 -0800 (Wed, 17 Jan 2007)
Log Message:
-----------
PING box works but I need to use a seperate thread or event loop. The main loops freezes when the ping method is invoked.
Modified Paths:
--------------
pymoul/trunk/src/moul/qt/mainwindow.py
pymoul/trunk/src/moul/qt/ui/mainwindow.py
pymoul/trunk/src/moul/qt/ui/mainwindow.ui
pymoul/trunk/src/moul/server/ping.py
pymoul/trunk/src/moul/server/tests/test_ping.py
Modified: pymoul/trunk/src/moul/qt/mainwindow.py
===================================================================
--- pymoul/trunk/src/moul/qt/mainwindow.py 2007-01-17 12:52:49 UTC (rev 41)
+++ pymoul/trunk/src/moul/qt/mainwindow.py 2007-01-17 13:37:52 UTC (rev 42)
@@ -33,6 +33,8 @@
from moul.qt.ui.mainwindow import Ui_MainWindow
from moul.time.cavern import CavernTime
from moul.file.wdysini import GraphicsIni
+from moul.server.ping import ServerList
+from moul.server.ping import isSocketError
class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
def __init__(self):
@@ -42,6 +44,7 @@
self._timezone_init()
self._graphics_init()
+ self._ping_init()
# ************************************************************************
# graphics
@@ -99,3 +102,41 @@
ct = self._caverntime()
self.dt_cavern.setDateTime(ct['cavern'])
self.dt_pacific.setDateTime(ct['pacific'])
+
+ # ************************************************************************
+ # ping
+ def _ping_init(self):
+ """init ping tab
+ """
+ self.connect(self.button_ping, SIGNAL("clicked()"), self.on_button_ping_clicked)
+
+ def _ping_servers(self):
+ # TODO: Use a seperate thread!
+ self.text_ping.clear()
+ insertText = self.text_ping.insertPlainText
+
+ serverlist = ServerList()
+ # dns
+ for server in serverlist:
+ insertText("%s ... " % server.name)
+ result = server.dns()
+ if isSocketError(result):
+ insertText("DNS: FAILED\n")
+ continue
+
+ insertText("dns: %0.3f " % result)
+ result = server.portping()
+ if isSocketError(result):
+ insertText("ping: FAILED\n")
+ continue
+ insertText("pin: %0.3f\n" % result)
+
+ @pyqtSignature("")
+ def on_button_ping_clicked(self):
+ """SIGNAL: clicked()
+ """
+ self.button_ping.setEnabled(False)
+ try:
+ self._ping_servers()
+ finally:
+ self.button_ping.setEnabled(True)
Modified: pymoul/trunk/src/moul/qt/ui/mainwindow.py
===================================================================
--- pymoul/trunk/src/moul/qt/ui/mainwindow.py 2007-01-17 12:52:49 UTC (rev 41)
+++ pymoul/trunk/src/moul/qt/ui/mainwindow.py 2007-01-17 13:37:52 UTC (rev 42)
@@ -2,7 +2,7 @@
# Form implementation generated from reading ui file 'src\moul\qt\ui\mainwindow.ui'
#
-# Created: Wed Jan 17 13:36:40 2007
+# Created: Wed Jan 17 14:23:33 2007
# by: PyQt4 UI code generator 4.1.1
#
# WARNING! All changes made in this file will be lost!
@@ -341,14 +341,18 @@
self.gb_servers.setGeometry(QtCore.QRect(10,0,421,341))
self.gb_servers.setObjectName("gb_servers")
- self.but_ping = QtGui.QPushButton(self.gb_servers)
- self.but_ping.setGeometry(QtCore.QRect(330,310,75,24))
- self.but_ping.setObjectName("but_ping")
-
self.text_ping = QtGui.QTextEdit(self.gb_servers)
self.text_ping.setGeometry(QtCore.QRect(10,20,401,271))
self.text_ping.setReadOnly(True)
self.text_ping.setObjectName("text_ping")
+
+ self.button_ping = QtGui.QPushButton(self.gb_servers)
+ self.button_ping.setGeometry(QtCore.QRect(330,300,75,24))
+ self.button_ping.setObjectName("button_ping")
+
+ self.label_3 = QtGui.QLabel(self.gb_servers)
+ self.label_3.setGeometry(QtCore.QRect(170,300,151,16))
+ self.label_3.setObjectName("label_3")
self.tabWidget.addTab(self.tab,"")
self.tab_4 = QtGui.QWidget()
@@ -372,7 +376,7 @@
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
- self.tabWidget.setCurrentIndex(2)
+ self.tabWidget.setCurrentIndex(3)
QtCore.QObject.connect(self.buttonbox_rresavcl,QtCore.SIGNAL("rejected()"),MainWindow.close)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
@@ -406,11 +410,12 @@
self.gb_dnitime.setTitle(QtGui.QApplication.translate("MainWindow", "D\'ni time", None, QtGui.QApplication.UnicodeUTF8))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_time), QtGui.QApplication.translate("MainWindow", "Time", None, QtGui.QApplication.UnicodeUTF8))
self.gb_servers.setTitle(QtGui.QApplication.translate("MainWindow", "Ping servers", None, QtGui.QApplication.UnicodeUTF8))
- self.but_ping.setText(QtGui.QApplication.translate("MainWindow", "Ping", None, QtGui.QApplication.UnicodeUTF8))
self.text_ping.setHtml(QtGui.QApplication.translate("MainWindow", "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:8.25pt; font-weight:400; font-style:normal; text-decoration:none;\">\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"></p></body></html>", None, QtGui.QApplication.UnicodeUTF8))
+ self.button_ping.setText(QtGui.QApplication.translate("MainWindow", "Ping", None, QtGui.QApplication.UnicodeUTF8))
+ self.label_3.setText(QtGui.QApplication.translate("MainWindow", "TODO: Use a seperate thread", None, QtGui.QApplication.UnicodeUTF8))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), QtGui.QApplication.translate("MainWindow", "Servers", None, QtGui.QApplication.UnicodeUTF8))
self.label_6.setText(QtGui.QApplication.translate("MainWindow", "pyMoul tools", None, QtGui.QApplication.UnicodeUTF8))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_4), QtGui.QApplication.translate("MainWindow", "About", None, QtGui.QApplication.UnicodeUTF8))
Modified: pymoul/trunk/src/moul/qt/ui/mainwindow.ui
===================================================================
--- pymoul/trunk/src/moul/qt/ui/mainwindow.ui 2007-01-17 12:52:49 UTC (rev 41)
+++ pymoul/trunk/src/moul/qt/ui/mainwindow.ui 2007-01-17 13:37:52 UTC (rev 42)
@@ -113,7 +113,7 @@
<enum>QTabWidget::North</enum>
</property>
<property name="currentIndex" >
- <number>2</number>
+ <number>3</number>
</property>
<widget class="QWidget" name="tab_graphics" >
<attribute name="title" >
@@ -669,19 +669,6 @@
<property name="title" >
<string>Ping servers</string>
</property>
- <widget class="QPushButton" name="but_ping" >
- <property name="geometry" >
- <rect>
- <x>330</x>
- <y>310</y>
- <width>75</width>
- <height>24</height>
- </rect>
- </property>
- <property name="text" >
- <string>Ping</string>
- </property>
- </widget>
<widget class="QTextEdit" name="text_ping" >
<property name="geometry" >
<rect>
@@ -701,6 +688,32 @@
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p></body></html></string>
</property>
</widget>
+ <widget class="QPushButton" name="button_ping" >
+ <property name="geometry" >
+ <rect>
+ <x>330</x>
+ <y>300</y>
+ <width>75</width>
+ <height>24</height>
+ </rect>
+ </property>
+ <property name="text" >
+ <string>Ping</string>
+ </property>
+ </widget>
+ <widget class="QLabel" name="label_3" >
+ <property name="geometry" >
+ <rect>
+ <x>170</x>
+ <y>300</y>
+ <width>151</width>
+ <height>16</height>
+ </rect>
+ </property>
+ <property name="text" >
+ <string>TODO: Use a seperate thread</string>
+ </property>
+ </widget>
</widget>
</widget>
<widget class="QWidget" name="tab_4" >
Modified: pymoul/trunk/src/moul/server/ping.py
===================================================================
--- pymoul/trunk/src/moul/server/ping.py 2007-01-17 12:52:49 UTC (rev 41)
+++ pymoul/trunk/src/moul/server/ping.py 2007-01-17 13:37:52 UTC (rev 42)
@@ -24,7 +24,7 @@
from moul.server.serverlist import PORT
from moul.server.serverlist import SERVER_LIST
-def isError(stat):
+def isSocketError(stat):
return isinstance(stat, socket.error)
class Server(object):
@@ -94,7 +94,7 @@
class ServerList(object):
"""A list of servers to test
"""
- def __init__(self, names, port, timeout=3.0):
+ def __init__(self, names=SERVER_LIST, port=PORT, timeout=3.0):
self._names = names
self._port = int(port)
self._timeout = float(timeout)
Modified: pymoul/trunk/src/moul/server/tests/test_ping.py
===================================================================
--- pymoul/trunk/src/moul/server/tests/test_ping.py 2007-01-17 12:52:49 UTC (rev 41)
+++ pymoul/trunk/src/moul/server/tests/test_ping.py 2007-01-17 13:37:52 UTC (rev 42)
@@ -26,7 +26,7 @@
from moul.server.ping import Server
from moul.server.ping import ServerList
-from moul.server.ping import isError
+from moul.server.ping import isSocketError
from moul.server.serverlist import SERVER_LIST
from moul.server.serverlist import PORT
@@ -42,7 +42,7 @@
def test_ping_bogus(self):
server = Server('bogus.nonworking.example.foo', PORT)
result = server.dns()
- self.failUnless(isError(result))
+ self.failUnless(isSocketError(result))
result = server.portping()
self.failUnless(result is False)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|