[Pymoul-svn] SF.net SVN: pymoul: [190] pymoul/trunk/src/moul
Status: Alpha
Brought to you by:
tiran
From: <ti...@us...> - 2007-02-24 19:45:38
|
Revision: 190 http://pymoul.svn.sourceforge.net/pymoul/?rev=190&view=rev Author: tiran Date: 2007-02-24 11:45:36 -0800 (Sat, 24 Feb 2007) Log Message: ----------- Ping tab changed to use QTableWidget 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/serverlist.py Modified: pymoul/trunk/src/moul/qt/mainwindow.py =================================================================== --- pymoul/trunk/src/moul/qt/mainwindow.py 2007-02-23 18:34:10 UTC (rev 189) +++ pymoul/trunk/src/moul/qt/mainwindow.py 2007-02-24 19:45:36 UTC (rev 190) @@ -386,48 +386,80 @@ """ init ping tab """ + header = self.tw_ping.horizontalHeader() + header.setResizeMode(QtGui.QHeaderView.Fixed) + header.setResizeMode(0, QtGui.QHeaderView.Stretch) + self.tw_ping.setColumnCount(3) + self._ping_thread = thread = PingServerThread() - + self.connect(thread, SIGNAL("started()"), self.on_pingthread_started) self.connect(thread, SIGNAL("finished()"), self.on_pingthread_done) - self.connect(thread, SIGNAL("server(const QString&)"), + self.connect(thread, SIGNAL("server(int, const QString&)"), self.on_pingthread_server) - self.connect(thread, SIGNAL("dnserror(const QString&, int, const QString&)"), + self.connect(thread, SIGNAL("dnserror(int, int, const QString &)"), self.on_pingthread_dnserror) - self.connect(thread, SIGNAL("dns(const QString&, float)"), + self.connect(thread, SIGNAL("dns(int, float)"), self.on_pingthread_dns) - self.connect(thread, SIGNAL("pingerror(const QString&, int, const QString&)"), + self.connect(thread, SIGNAL("pingerror(int, int, const QString &)"), self.on_pingthread_pingerror) - self.connect(thread, SIGNAL("ping(const QString&, float)"), + self.connect(thread, SIGNAL("ping(int, float)"), self.on_pingthread_ping) def on_pingthread_started(self): self.button_ping.setEnabled(False) - self.tb_ping_view.clear() + self.tw_ping.clearContents() def on_pingthread_done(self): self.button_ping.setEnabled(True) - def on_pingthread_server(self, name): - pass - #self.tb_ping_view.insertPlainText("%s ... " % name) + def on_pingthread_server(self, i, name): + row = self.tw_ping.rowCount() + if row < (i+1): + self.tw_ping.setRowCount(i + 1) - def on_pingthread_dns(self, name, time): - self.tb_ping_view.insertPlainText("%s ... DNS: %0.3f " % (name, time)) + proto = QtGui.QTableWidgetItem() + font = QtGui.QFont() + font.setPointSize(7) + proto.setFont(font) + proto.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter) - def on_pingthread_ping(self, name, time): - self.tb_ping_view.insertPlainText("PING: %0.3f\n" % time) + header = QtGui.QTableWidgetItem(proto) + header.setText(QtCore.QString.number(row + 1)) - def on_pingthread_dnserror(self, name, errcode, errmsg): - LOG.error('dns error: %s, %i, %s' % (name, errcode, errmsg)) - self.tb_ping_view.insertPlainText("%s ... DNS error: %s\n" % (name, errmsg)) + item0 = QtGui.QTableWidgetItem(proto) + item0.setText(name) - def on_pingthread_pingerror(self, name, errcode, errmsg): - LOG.error('ping error: %s, %i, %s' % (name, errcode, errmsg)) - self.tb_ping_view.insertPlainText("PING error: %s\n" % errmsg) + self.tw_ping.setVerticalHeaderItem(i, header) + self.tw_ping.setItem(i, 0, item0) + self.tw_ping.setItem(i, 1, QtGui.QTableWidgetItem(proto)) + self.tw_ping.setItem(i, 2, QtGui.QTableWidgetItem(proto)) + self.tw_ping.resizeRowsToContents() + def on_pingthread_dns(self, i, time): + item = self.tw_ping.item(i, 1) + item.setText("%0.3f" % time) + + def on_pingthread_ping(self, i, time): + item = self.tw_ping.item(i, 2) + item.setText("%0.3f" % time) + + def on_pingthread_dnserror(self, i, errcode, errmsg): + item = self.tw_ping.item(i, 1) + item.setForeground(QtGui.QBrush(Qt.red)) + item.setText(errmsg) + item.setToolTip("%s (code: %i)" % (errmsg, errcode)) + #self.tw_ping.resizeColumnsToContents() + + def on_pingthread_pingerror(self, i, errcode, errmsg): + item = self.tw_ping.item(i, 2) + item.setForeground(QtGui.QBrush(Qt.red)) + item.setText(errmsg) + item.setToolTip("%s (code: %i)" % (errmsg, errcode)) + #self.tw_ping.resizeColumnsToContents() + @pyqtSignature("bool") def on_button_ping_clicked(self, ignore=False): thread = self._ping_thread @@ -451,26 +483,26 @@ def run(self): # TODO: thread safety! # emit a list of names first - for server in self.servers: - self.emit(SIGNAL("server(const QString&)"), server.name) + for i, server in enumerate(self.servers): + self.emit(SIGNAL("server(int, const QString&)"), i, server.name) - for server in self.servers: + for i, server in enumerate(self.servers): name = server.name dns = server.dns() if isSocketError(dns): errno, msg = fmtSocketError(dns) - self.emit(SIGNAL("dnserror(const QString&, int, const QString&)"), - name, errno, msg) + self.emit(SIGNAL("dnserror(int, int, const QString &)"), + i, errno, msg) continue - self.emit(SIGNAL("dns(const QString&, float)"), name, dns) + self.emit(SIGNAL("dns(int, float)"), i, dns) ping = server.portping() if isSocketError(ping): - errno, msg = fmtSocketError(dns) - self.emit(SIGNAL("pingerror(const QString&, int, const QString&)"), - name, errno, msg) + errno, msg = fmtSocketError(ping) + self.emit(SIGNAL("pingerror(int, int, const QString &)"), + i, errno, msg) continue - self.emit(SIGNAL("ping(const QString&, float)"), name, ping) + self.emit(SIGNAL("ping(int, float)"), i, ping) class MoulRunningThread(QtCore.QThread): def __init__(self, parent=None): @@ -485,7 +517,7 @@ if not self.isRunning(): self._running = True self.start() - + def stopChecker(self): # TODO check this self._running = False Modified: pymoul/trunk/src/moul/qt/ui/mainwindow.py =================================================================== --- pymoul/trunk/src/moul/qt/ui/mainwindow.py 2007-02-23 18:34:10 UTC (rev 189) +++ pymoul/trunk/src/moul/qt/ui/mainwindow.py 2007-02-24 19:45:36 UTC (rev 190) @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file './src/moul/qt/ui/mainwindow.ui' # -# Created: Fri Feb 23 19:22:27 2007 +# Created: Sat Feb 24 20:39:41 2007 # by: PyQt4 UI code generator 4.1.1 # # WARNING! All changes made in this file will be lost! @@ -681,11 +681,9 @@ self.button_ping.setGeometry(QtCore.QRect(370,370,75,24)) self.button_ping.setObjectName("button_ping") - self.tb_ping_view = QtGui.QTextBrowser(self.gb_servers) - self.tb_ping_view.setGeometry(QtCore.QRect(10,20,431,341)) - self.tb_ping_view.setTextInteractionFlags(QtCore.Qt.TextSelectableByMouse) - self.tb_ping_view.setOpenExternalLinks(True) - self.tb_ping_view.setObjectName("tb_ping_view") + self.tw_ping = QtGui.QTableWidget(self.gb_servers) + self.tw_ping.setGeometry(QtCore.QRect(10,20,431,341)) + self.tw_ping.setObjectName("tw_ping") self.tabwidget.addTab(self.tab_ping,"") self.tab_time = QtGui.QWidget() @@ -1114,7 +1112,7 @@ self.lb_doc_status.setBuddy(self.pb_doc_loadjournals) self.retranslateUi(MainWindow) - self.tabwidget.setCurrentIndex(3) + self.tabwidget.setCurrentIndex(2) self.tab_sub_settings.setCurrentIndex(0) self.tabWidget.setCurrentIndex(0) self.tabwidget_about.setCurrentIndex(0) @@ -1175,6 +1173,21 @@ self.tabwidget.setTabText(self.tabwidget.indexOf(self.tab_settings), QtGui.QApplication.translate("MainWindow", "Settings", None, QtGui.QApplication.UnicodeUTF8)) self.gb_servers.setTitle(QtGui.QApplication.translate("MainWindow", "Ping servers", None, QtGui.QApplication.UnicodeUTF8)) self.button_ping.setText(QtGui.QApplication.translate("MainWindow", "Ping", None, QtGui.QApplication.UnicodeUTF8)) + self.tw_ping.clear() + self.tw_ping.setColumnCount(3) + self.tw_ping.setRowCount(0) + + headerItem = QtGui.QTableWidgetItem() + headerItem.setText(QtGui.QApplication.translate("MainWindow", "Server", None, QtGui.QApplication.UnicodeUTF8)) + self.tw_ping.setHorizontalHeaderItem(0,headerItem) + + headerItem1 = QtGui.QTableWidgetItem() + headerItem1.setText(QtGui.QApplication.translate("MainWindow", "DNS", None, QtGui.QApplication.UnicodeUTF8)) + self.tw_ping.setHorizontalHeaderItem(1,headerItem1) + + headerItem2 = QtGui.QTableWidgetItem() + headerItem2.setText(QtGui.QApplication.translate("MainWindow", "Ping", None, QtGui.QApplication.UnicodeUTF8)) + self.tw_ping.setHorizontalHeaderItem(2,headerItem2) self.tabwidget.setTabText(self.tabwidget.indexOf(self.tab_ping), QtGui.QApplication.translate("MainWindow", "Servers", None, QtGui.QApplication.UnicodeUTF8)) self.gb_dnitime.setTitle(QtGui.QApplication.translate("MainWindow", "D\'ni time", None, QtGui.QApplication.UnicodeUTF8)) self.gb_caverntime.setTitle(QtGui.QApplication.translate("MainWindow", "Time zones", None, QtGui.QApplication.UnicodeUTF8)) Modified: pymoul/trunk/src/moul/qt/ui/mainwindow.ui =================================================================== --- pymoul/trunk/src/moul/qt/ui/mainwindow.ui 2007-02-23 18:34:10 UTC (rev 189) +++ pymoul/trunk/src/moul/qt/ui/mainwindow.ui 2007-02-24 19:45:36 UTC (rev 190) @@ -110,7 +110,7 @@ <enum>QTabWidget::North</enum> </property> <property name="currentIndex" > - <number>3</number> + <number>2</number> </property> <widget class="QWidget" name="tab_tasks" > <attribute name="title" > @@ -1464,7 +1464,7 @@ <string>Ping</string> </property> </widget> - <widget class="QTextBrowser" name="tb_ping_view" > + <widget class="QTableWidget" name="tw_ping" > <property name="geometry" > <rect> <x>10</x> @@ -1473,12 +1473,21 @@ <height>341</height> </rect> </property> - <property name="textInteractionFlags" > - <enum>Qt::TextSelectableByMouse</enum> - </property> - <property name="openExternalLinks" > - <bool>true</bool> - </property> + <column> + <property name="text" > + <string>Server</string> + </property> + </column> + <column> + <property name="text" > + <string>DNS</string> + </property> + </column> + <column> + <property name="text" > + <string>Ping</string> + </property> + </column> </widget> </widget> </widget> Modified: pymoul/trunk/src/moul/server/serverlist.py =================================================================== --- pymoul/trunk/src/moul/server/serverlist.py 2007-02-23 18:34:10 UTC (rev 189) +++ pymoul/trunk/src/moul/server/serverlist.py 2007-02-24 19:45:36 UTC (rev 190) @@ -26,6 +26,8 @@ SERVER_LIST = [ 'beta-auth.urulive.com', 'beta-file.urulive.com', + #'bogus.foo.bar', + #'www.mystonline.com', 'uruapp-cw01.ibs.aol.com', 'uruapp-cw02.ibs.aol.com', 'uruapp-cw03.ibs.aol.com', This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |