mirror of
https://github.com/Hopiu/linkchecker.git
synced 2026-04-21 14:44:44 +00:00
Improved GUI with an options dialog
git-svn-id: https://linkchecker.svn.sourceforge.net/svnroot/linkchecker/trunk/linkchecker@3877 e7d03fd6-7b0d-0410-9947-9c21f3af8025
This commit is contained in:
parent
4b71c92f99
commit
06e03e97d2
15 changed files with 960 additions and 48 deletions
3
TODO.txt
3
TODO.txt
|
|
@ -1,4 +1,5 @@
|
|||
- [GUI] more configuration options
|
||||
- [GUI] Stopping does not update statusbar immediately, and prints the
|
||||
stop message double at the end.
|
||||
- [GUI] Store checked links in urldata list; display in a QTreeWidget;
|
||||
columns result (as icon), URL, name; doubleclick opens property popup
|
||||
- [DIST] bdist_rpm target does not work with anymore with new setup.py
|
||||
|
|
|
|||
16
gui/Makefile
16
gui/Makefile
|
|
@ -1,14 +1,20 @@
|
|||
# generate Python files from UI description
|
||||
|
||||
UI_FILES = linkchecker_ui.py
|
||||
# edit ui/*.ui files with designer
|
||||
UI_FILES = linkchecker_ui_main.py linkchecker_ui_options.py
|
||||
RC_FILES = linkchecker_rc.py
|
||||
|
||||
all: $(UI_FILES)
|
||||
|
||||
linkchecker_ui.py: ui/mainwindow.ui
|
||||
all: $(UI_FILES) $(RC_FILES)
|
||||
|
||||
linkchecker_ui_%.py: ui/%.ui
|
||||
pyuic4 -o $@ $<
|
||||
|
||||
#linkchecker_rc.py: linkchecker.qrc
|
||||
# pyrcc4 -o $@ $<
|
||||
linkchecker_rc.py: rc/linkchecker.qrc
|
||||
pyrcc4 -o $@ $<
|
||||
|
||||
run:
|
||||
env PYTHONPATH=.:.. python linkchecker-gui
|
||||
|
||||
clean:
|
||||
rm -f *.pyc *.pyo
|
||||
|
|
|
|||
|
|
@ -17,12 +17,16 @@
|
|||
|
||||
import os
|
||||
from PyQt4 import QtCore, QtGui
|
||||
from linkchecker_ui import Ui_MainWindow
|
||||
from linkchecker_ui_main import Ui_MainWindow
|
||||
from linkchecker_ui_options import Ui_Options
|
||||
import linkcheck
|
||||
from linkcheck import configuration, checker, director, add_intern_pattern, \
|
||||
strformat
|
||||
from linkcheck.containers import enum
|
||||
|
||||
|
||||
Status = enum('idle', 'checking', 'stopping')
|
||||
|
||||
class LinkCheckerMain (QtGui.QMainWindow, Ui_MainWindow):
|
||||
|
||||
def __init__(self, parent=None):
|
||||
|
|
@ -31,10 +35,11 @@ class LinkCheckerMain (QtGui.QMainWindow, Ui_MainWindow):
|
|||
self.setupUi(self)
|
||||
self.setWindowFlags(self.windowFlags() | QtCore.Qt.WindowContextHelpButtonHint)
|
||||
self.setWindowTitle(configuration.App)
|
||||
self.options = LinkCheckerOptions(parent=self)
|
||||
if os.name == 'nt':
|
||||
self.textEdit.setFontFamily("Courier")
|
||||
self.output.setFontFamily("Courier")
|
||||
else:
|
||||
self.textEdit.setFontFamily("mono")
|
||||
self.output.setFontFamily("mono")
|
||||
self.checker = Checker()
|
||||
|
||||
settings = QtCore.QSettings('bfk', configuration.AppName)
|
||||
|
|
@ -45,14 +50,50 @@ class LinkCheckerMain (QtGui.QMainWindow, Ui_MainWindow):
|
|||
self.move(settings.value('pos').toPoint())
|
||||
settings.endGroup()
|
||||
|
||||
self.connect(self.checker, QtCore.SIGNAL("finished()"), self.updateUi)
|
||||
self.connect(self.checker, QtCore.SIGNAL("terminated()"), self.updateUi)
|
||||
self.connect(self.checker, QtCore.SIGNAL("addMessage(QString)"), self.addMessage)
|
||||
self.connect(self.checker, QtCore.SIGNAL("setStatus(QString)"), self.setStatus)
|
||||
self.connect(self.pushButton, QtCore.SIGNAL("clicked()"), self.check_or_cancel)
|
||||
self.connect(self.checker, QtCore.SIGNAL("finished()"), self.set_status_idle)
|
||||
self.connect(self.checker, QtCore.SIGNAL("terminated()"), self.set_status_idle)
|
||||
self.connect(self.checker, QtCore.SIGNAL("add_message(QString)"), self.add_message)
|
||||
self.connect(self.checker, QtCore.SIGNAL("set_statusbar(QString)"), self.set_statusbar)
|
||||
self.connect(self.controlButton, QtCore.SIGNAL("clicked()"), self.start_stop)
|
||||
self.connect(self.optionsButton, QtCore.SIGNAL("clicked()"), self.options.exec_)
|
||||
self.connect(self.actionQuit, QtCore.SIGNAL("triggered()"), self.close)
|
||||
self.connect(self.actionAbout, QtCore.SIGNAL("triggered()"), self.about)
|
||||
self.updateUi()
|
||||
self.status = Status.idle
|
||||
|
||||
def get_status (self):
|
||||
return self._status
|
||||
|
||||
def set_status (self, status):
|
||||
self._status = status
|
||||
if status == Status.idle:
|
||||
self.controlButton.setText(_("Start"))
|
||||
icon = QtGui.QIcon()
|
||||
icon.addPixmap(QtGui.QPixmap(":/icons/start.png"),QtGui.QIcon.Normal,QtGui.QIcon.Off)
|
||||
self.controlButton.setIcon(icon)
|
||||
self.aggregate = None
|
||||
self.controlButton.setEnabled(True)
|
||||
self.optionsButton.setEnabled(True)
|
||||
self.set_statusbar(_("Ready."))
|
||||
elif status == Status.checking:
|
||||
self.controlButton.setText(_("Stop"))
|
||||
icon = QtGui.QIcon()
|
||||
icon.addPixmap(QtGui.QPixmap(":/icons/stop.png"),QtGui.QIcon.Normal,QtGui.QIcon.Off)
|
||||
self.controlButton.setIcon(icon)
|
||||
self.controlButton.setEnabled(True)
|
||||
self.optionsButton.setEnabled(False)
|
||||
elif status == Status.stopping:
|
||||
self.controlButton.setText(_("Start"))
|
||||
icon = QtGui.QIcon()
|
||||
icon.addPixmap(QtGui.QPixmap(":/icons/start.png"),QtGui.QIcon.Normal,QtGui.QIcon.Off)
|
||||
self.controlButton.setIcon(icon)
|
||||
self.controlButton.setEnabled(False)
|
||||
self.set_statusbar(_("Stopping."))
|
||||
|
||||
status = property(get_status, set_status)
|
||||
|
||||
def set_status_idle (self):
|
||||
"""Set idle status. Helper function for signal connections."""
|
||||
self.status = Status.idle
|
||||
|
||||
def closeEvent (self, e=None):
|
||||
"""Save settings on close."""
|
||||
|
|
@ -81,76 +122,86 @@ for broken links.</p>
|
|||
Version 2 or later.</p>
|
||||
</qt>""") % d)
|
||||
|
||||
def check_or_cancel (self):
|
||||
"""Run a new check or cancel active check."""
|
||||
if self.aggregate is None:
|
||||
def start_stop (self):
|
||||
"""Start a new check or stop an active check."""
|
||||
if self.status == Status.idle:
|
||||
self.check()
|
||||
else:
|
||||
self.cancel()
|
||||
elif self.status == Status.checking:
|
||||
self.stop()
|
||||
|
||||
def check (self):
|
||||
"""Check given URL."""
|
||||
self.pushButton.setEnabled(False)
|
||||
self.textEdit.setText("")
|
||||
self.controlButton.setEnabled(False)
|
||||
self.optionsButton.setEnabled(False)
|
||||
self.output.setText("")
|
||||
config = self.get_config()
|
||||
aggregate = director.get_aggregate(config)
|
||||
url = unicode(self.lineEdit.text()).strip()
|
||||
url = unicode(self.urlinput.text()).strip()
|
||||
if not url:
|
||||
self.textEdit.setText(_("Error, empty URL"))
|
||||
self.updateUi()
|
||||
self.output.setText(_("Error, empty URL"))
|
||||
self.status = Status.idle
|
||||
return
|
||||
if url.startswith(u"www."):
|
||||
url = u"http://%s" % url
|
||||
elif url.startswith(u"ftp."):
|
||||
url = u"ftp://%s" % url
|
||||
self.setStatus(_("Checking '%s'.") % strformat.limit(url, 40))
|
||||
self.set_statusbar(_("Checking '%s'.") % strformat.limit(url, 40))
|
||||
url_data = checker.get_url_from(url, 0, aggregate)
|
||||
try:
|
||||
add_intern_pattern(url_data, config)
|
||||
except UnicodeError:
|
||||
self.textEdit.setText(_("Error, invalid URL '%s'.") %
|
||||
self.output.setText(_("Error, invalid URL '%s'.") %
|
||||
strformat.limit(url, 40))
|
||||
self.updateUi()
|
||||
self.status = Status.idle
|
||||
return
|
||||
aggregate.urlqueue.put(url_data)
|
||||
self.pushButton.setText(_("Cancel"))
|
||||
self.aggregate = aggregate
|
||||
self.pushButton.setEnabled(True)
|
||||
# check in background
|
||||
self.checker.check(self.aggregate)
|
||||
self.status = Status.checking
|
||||
|
||||
def cancel (self):
|
||||
"""Cancel running check."""
|
||||
self.setStatus(_("Aborting."))
|
||||
def stop (self):
|
||||
director.abort(self.aggregate)
|
||||
self.status = Status.stopping
|
||||
|
||||
def get_config (self):
|
||||
"""Return check configuration."""
|
||||
config = configuration.Configuration()
|
||||
config["recursionlevel"] = self.spinBox.value()
|
||||
config["recursionlevel"] = self.options.recursionlevel.value()
|
||||
config.logger_add("gui", GuiLogger)
|
||||
config["logger"] = config.logger_new('gui', widget=self.checker)
|
||||
config["verbose"] = self.checkBox.isChecked()
|
||||
config["verbose"] = self.options.verbose.isChecked()
|
||||
config["timeout"] = self.options.timeout.value()
|
||||
config["threads"] = self.options.threads.value()
|
||||
config.init_logging(StatusLogger(self.checker))
|
||||
config["status"] = True
|
||||
return config
|
||||
|
||||
def addMessage (self, msg):
|
||||
def add_message (self, msg):
|
||||
"""Add new log message to text edit widget."""
|
||||
text = self.textEdit.toPlainText()
|
||||
self.textEdit.setText(text+msg)
|
||||
self.textEdit.moveCursor(QtGui.QTextCursor.End)
|
||||
text = self.output.toPlainText()
|
||||
self.output.setText(text+msg)
|
||||
self.output.moveCursor(QtGui.QTextCursor.End)
|
||||
|
||||
def setStatus (self, msg):
|
||||
def set_statusbar (self, msg):
|
||||
"""Show status message in status bar."""
|
||||
self.statusBar.showMessage(msg)
|
||||
|
||||
def updateUi (self):
|
||||
"""Reset UI."""
|
||||
self.pushButton.setText(_("Check"))
|
||||
self.aggregate = None
|
||||
self.pushButton.setEnabled(True)
|
||||
self.setStatus(_("Ready."))
|
||||
|
||||
class LinkCheckerOptions (QtGui.QDialog, Ui_Options):
|
||||
"""Hold options for current URL to check."""
|
||||
|
||||
def __init__ (self, parent=None):
|
||||
super(LinkCheckerOptions, self).__init__(parent)
|
||||
self.setupUi(self)
|
||||
self.connect(self.resetButton, QtCore.SIGNAL("clicked()"), self.reset)
|
||||
|
||||
def reset (self):
|
||||
"""Reset options to default values."""
|
||||
self.recursionlevel.setValue(-1)
|
||||
self.verbose.setChecked(False)
|
||||
self.threads.setValue(10)
|
||||
self.timeout.setValue(60)
|
||||
|
||||
|
||||
class Checker (QtCore.QThread):
|
||||
|
|
@ -185,7 +236,7 @@ class GuiLogger (TextLogger):
|
|||
self.widget = args["widget"]
|
||||
|
||||
def write (self, s, **args):
|
||||
self.widget.emit(QtCore.SIGNAL("addMessage(QString)"), s)
|
||||
self.widget.emit(QtCore.SIGNAL("add_message(QString)"), s)
|
||||
|
||||
def start_fileoutput (self):
|
||||
pass
|
||||
|
|
@ -208,5 +259,5 @@ class StatusLogger (object):
|
|||
self.buf.extend([msg, unicode(os.linesep)])
|
||||
|
||||
def flush (self):
|
||||
self.widget.emit(QtCore.SIGNAL("setStatus(QString)"), u"".join(self.buf))
|
||||
self.widget.emit(QtCore.SIGNAL("set_statusbar(QString)"), u"".join(self.buf))
|
||||
self.buf = []
|
||||
|
|
|
|||
299
gui/linkchecker_rc.py
Normal file
299
gui/linkchecker_rc.py
Normal file
|
|
@ -0,0 +1,299 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Resource object code
|
||||
#
|
||||
# Created: Mi Jan 7 17:22:22 2009
|
||||
# by: The Resource Compiler for PyQt (Qt v4.4.0)
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
from PyQt4 import QtCore
|
||||
|
||||
qt_resource_data = "\
|
||||
\x00\x00\x01\xf3\
|
||||
\x89\
|
||||
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
|
||||
\x00\x00\x10\x00\x00\x00\x10\x08\x04\x00\x00\x00\xb5\xfa\x37\xea\
|
||||
\x00\x00\x00\x02\x73\x42\x49\x54\x08\x08\x55\xec\x46\x04\x00\x00\
|
||||
\x00\x09\x70\x48\x59\x73\x00\x00\x01\xbb\x00\x00\x01\xbb\x01\x3a\
|
||||
\xec\xe3\xe2\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\
|
||||
\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\
|
||||
\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x01\x72\x49\x44\x41\x54\
|
||||
\x28\xcf\x45\x91\x4f\x2b\x04\x71\x1c\xc6\xbf\xf3\x32\xe4\x6c\xde\
|
||||
\x80\xa2\x44\x39\xbb\xec\x1f\xb3\x23\x6d\x9b\x25\x8b\x10\xfd\x76\
|
||||
\x36\xec\xa2\x31\x89\x13\x0e\x2e\xca\xfb\x98\x4d\x7b\xf0\x12\xb4\
|
||||
\x85\x83\x36\x17\x97\xb1\xa2\xe9\x47\xfd\x0e\x63\xb6\x8f\x83\xb5\
|
||||
\x9e\xe7\xf6\xf4\xf4\x1c\x9e\x8f\x20\xbf\x3e\xb1\x8f\x83\x20\xf4\
|
||||
\x23\x3f\x0a\xc2\xe3\xe0\xc4\xfe\xcb\x05\x41\x7c\xeb\x50\xd5\x4d\
|
||||
\x95\x1a\x3e\x3e\x35\xaa\xd4\xcd\xa1\xf2\xad\x7e\xa1\x61\xd5\x9b\
|
||||
\xdb\xec\xd2\xa2\xcd\x13\x1d\x1e\x68\xb1\xc3\x36\xf5\x66\xc3\x42\
|
||||
\x04\xf1\xd4\x06\x17\xdc\xf3\x4a\xcc\x27\x5f\x68\xde\x78\xe6\x9c\
|
||||
\x0d\x3c\x85\x88\xb2\x37\x8d\xc7\x23\x1f\x18\xbe\xe9\xd1\x23\x25\
|
||||
\x41\xf3\x42\x8d\x4d\xa3\x6c\x59\x0f\x16\xb9\xe5\x1d\xc3\x15\x67\
|
||||
\x1c\xa0\xd8\x42\x91\xa2\x69\xb3\xc8\xfa\x91\x54\xc2\x15\xee\xd0\
|
||||
\xa4\x5c\xd2\xa0\x82\x4b\x8e\x59\x20\xa1\xcb\x1a\x95\x50\xca\x91\
|
||||
\x47\x9b\x98\x94\x3d\x96\xc9\x31\xc5\x38\xd3\x40\x4a\xcc\x3e\xe5\
|
||||
\x48\x4a\x51\x95\x47\x34\x3d\xb2\x8c\x32\x84\x30\xc4\x28\xd0\x43\
|
||||
\x73\x40\x29\x92\x62\x58\xee\x2f\xb8\x4c\x30\xc2\x30\x23\x4c\xf4\
|
||||
\x17\x96\x29\x86\x52\x0c\x1c\x6e\xe8\x92\xb0\xc4\x0c\x93\x8c\x31\
|
||||
\xc9\x0c\x90\xd0\xc1\xa1\x78\x24\xf3\x76\xc1\xac\xf2\x8c\x26\xe5\
|
||||
\x5f\x29\x1a\x8f\x82\x99\xb7\x05\x71\x55\x96\x53\x5e\xd0\x24\xa4\
|
||||
\x83\x1f\xae\xc9\xe2\x2a\x44\x90\x39\xcb\x6d\x66\x58\xa3\x4d\x97\
|
||||
\x18\x4d\x4c\x87\x2a\x19\xdc\xe6\x9c\xd5\x87\xe5\x5a\x8e\xca\x9b\
|
||||
\x0c\x25\x76\xd8\x63\x81\x0c\x79\xe3\x28\xd7\x1a\xd0\x44\x90\x82\
|
||||
\xed\x04\xf9\x30\x17\xe5\xa2\x7c\xe8\x04\x85\x01\xee\x1f\x8d\x42\
|
||||
\x66\xb3\xf5\x8b\xfe\x99\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\
|
||||
\x60\x82\
|
||||
\x00\x00\x01\xf5\
|
||||
\x89\
|
||||
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
|
||||
\x00\x00\x10\x00\x00\x00\x10\x08\x04\x00\x00\x00\xb5\xfa\x37\xea\
|
||||
\x00\x00\x00\x02\x73\x42\x49\x54\x08\x08\x55\xec\x46\x04\x00\x00\
|
||||
\x00\x09\x70\x48\x59\x73\x00\x00\x01\xbb\x00\x00\x01\xbb\x01\x3a\
|
||||
\xec\xe3\xe2\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\
|
||||
\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\
|
||||
\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x01\x74\x49\x44\x41\x54\
|
||||
\x18\x19\x05\xc1\x41\x4b\x53\x01\x1c\x00\xf0\xff\x3b\xf5\x11\xea\
|
||||
\xda\xa1\x7d\x84\x2e\x5d\x3c\x46\x17\x75\x6d\xb3\x18\x96\x42\x9a\
|
||||
\xa8\x20\x6f\x13\x6b\x96\xcc\x87\xe8\xcd\xba\x74\xea\x63\x04\x6f\
|
||||
\x84\x41\x5f\xa0\xa8\x41\x79\x08\xf1\xe2\x65\x19\xc5\x7a\x06\xef\
|
||||
\x30\xde\xf8\xf5\xfb\x85\x10\x42\x1c\xd6\x0e\xb2\x2c\xef\x8f\xfa\
|
||||
\xa3\x2c\x3f\xc8\x0e\x6b\x42\x08\x11\x42\xf4\x93\xbd\xb4\x57\x76\
|
||||
\x6c\xeb\xeb\xdb\xd6\xd1\x2b\xf7\xd2\x7e\x22\x44\x88\xdd\xa4\x37\
|
||||
\xd8\xf2\xcc\x89\xa1\x1f\xce\x7c\x77\x62\xc7\x96\xde\x60\x37\x11\
|
||||
\x21\xba\xe9\x86\x57\xbe\xf9\x69\xec\xca\x3f\x85\x5f\xce\x1d\xdb\
|
||||
\xd0\x4d\x45\xa4\xb5\xcd\xb2\xeb\xd4\x1f\xa5\x77\xae\x4c\x55\x26\
|
||||
\x0a\x17\xb6\x6d\x96\x69\x2d\xd6\xb3\x65\x1f\xfd\x56\x9a\x3a\x76\
|
||||
\xe4\x2b\xa8\x14\x86\x96\xad\xef\xc7\x4a\xbe\xea\x8b\x42\x85\x3d\
|
||||
\xab\x1e\x78\xed\x0a\x13\x97\xd6\xac\xe4\xb1\x34\xea\x1a\x1a\xab\
|
||||
\xb0\x6a\xde\x8c\x19\x8f\x7c\x56\x19\x7b\x61\x69\x14\x8b\xa3\x8e\
|
||||
\x53\x85\x29\x6e\xbb\xee\x9a\x5b\xee\xfb\x64\xaa\xf0\xd2\xe2\x28\
|
||||
\xda\xf9\x92\xa1\xb1\x0a\x77\xdc\x74\x43\xc7\x5f\x54\xc6\x9e\x68\
|
||||
\xe7\xd1\xce\x1a\xde\xbb\x34\xc1\x3d\x77\x7d\x00\x4c\x9c\x69\x68\
|
||||
\xef\xc7\xc3\x5a\xb3\x7c\xea\x5c\xa1\xf2\x46\x01\xa8\x14\xba\x9a\
|
||||
\xe5\xc3\x5a\x88\x56\x3a\xe7\xc8\x85\xc2\x44\x65\xaa\x32\x51\x78\
|
||||
\x6b\x4e\x2b\x15\x21\x16\x92\xd6\x60\xd6\x9a\xa1\x4b\x63\x85\xb1\
|
||||
\x33\x1d\xb3\x5a\x83\x85\x44\x84\x10\xad\xa4\x91\xd6\xcb\x59\x8b\
|
||||
\x76\x3c\xf7\xd8\xac\x7a\xd9\x48\x5b\x89\x10\x21\x84\x10\xcd\x5a\
|
||||
\x23\xab\xe7\xf3\xa3\xf9\x51\x3d\x6f\x64\xcd\x9a\x10\x42\xfc\x07\
|
||||
\x7b\x2d\x6e\x9f\x2f\x2d\x37\x8c\x00\x00\x00\x00\x49\x45\x4e\x44\
|
||||
\xae\x42\x60\x82\
|
||||
\x00\x00\x02\xd2\
|
||||
\x89\
|
||||
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
|
||||
\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
|
||||
\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
|
||||
\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x01\xbb\x00\x00\x01\xbb\
|
||||
\x01\x3a\xec\xe3\xe2\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
|
||||
\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
|
||||
\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x02\x4f\x49\x44\
|
||||
\x41\x54\x78\xda\xa5\x93\xcb\x4f\x13\x51\x14\x87\xbf\x3b\x33\x1d\
|
||||
\x5a\x5b\x0c\x19\xc0\x42\xa0\xe5\x61\x13\x17\x24\xa8\x71\x65\x8c\
|
||||
\x1b\x8d\x89\x3b\x57\xee\x64\xa7\x0b\x1f\x7b\x48\x7c\x9b\xe0\x42\
|
||||
\x4d\x8c\x8f\x3f\x42\x57\x2e\x5d\x68\x74\x61\x0a\xa8\x41\x40\x5d\
|
||||
\xb0\xd0\x50\x1e\xa2\xb5\x0d\x8f\x4e\xa1\x32\x33\x9d\xeb\x1d\x26\
|
||||
\x4e\x0a\x5b\x4f\x72\x72\xef\xe6\xfb\xf2\x3b\x77\xce\x08\x29\x25\
|
||||
\xff\x53\x06\xbb\x6a\x4e\x88\xc1\x55\x78\x66\xe6\x72\xc9\xa6\x5c\
|
||||
\x2e\x16\x4b\xa7\x75\xb7\x58\xac\x3b\xb3\xb3\xf6\x9e\x42\xe1\x6c\
|
||||
\x9f\x94\x9f\x77\x08\x76\xc3\xa5\x6c\x36\xdf\x79\x77\x34\xd5\x64\
|
||||
\x59\x08\xa1\x81\xa6\x21\x3d\x17\xa7\x62\x77\x2e\x0f\x0f\xe7\x11\
|
||||
\xe2\x58\xa3\x24\x18\x21\x82\x17\xbb\xbb\xf2\x3d\x37\x6e\xa6\xcc\
|
||||
\x8d\x2a\xb2\x5e\x07\xcf\xc3\x57\xa7\xef\xba\xd4\x7d\x1f\x69\xb5\
|
||||
\xb2\x74\xff\x5e\x35\xf3\x63\x39\x92\x68\xff\xe0\xb9\x8e\xf4\x58\
|
||||
\xcf\xed\x5b\x29\xbd\x5c\x42\x28\x48\x57\x2d\x2a\x15\x74\xd5\x86\
|
||||
\x82\x0d\x29\x91\xdf\xbf\x91\x1d\x19\x4e\x15\x3a\x3a\xc6\x02\x86\
|
||||
\x48\x60\x18\xcf\x7b\xaf\x5f\x4d\x6a\xf3\x0b\xe8\xbe\x4f\xdb\xb9\
|
||||
\x21\x5a\x87\x86\xd4\x3d\x10\x79\xb4\x9f\xbf\x40\xe7\xc5\x4b\x98\
|
||||
\x02\xdc\xc9\x49\x7a\xaf\x8d\x24\x03\x26\x7a\x83\x9a\xe7\x25\xaa\
|
||||
\x1f\x26\x68\x69\x69\x43\x98\x26\x38\x0e\x46\x26\x83\x75\xf9\x0a\
|
||||
\xc1\x88\x31\x75\x77\x0b\x73\xe8\xab\xab\x18\x2a\xd1\xc6\xfb\x89\
|
||||
\x6d\x26\x4a\xe0\x80\x60\xb3\x8a\x56\x59\x47\x2f\xfe\x62\x65\xf4\
|
||||
\x0e\xee\xc2\x3c\x46\x77\x46\xc1\x59\xdc\xc5\x05\xd6\x9f\x3c\x26\
|
||||
\xae\x44\xcd\x03\x03\x18\xba\xd8\x66\xa2\x04\x1e\x88\x95\xfc\x5b\
|
||||
\x9a\x8c\x66\xea\xc9\x24\x7a\x36\x1b\x3e\x22\x61\x49\xd7\x65\x63\
|
||||
\xfa\x13\xde\xf4\x14\x75\xdb\x66\x2d\x11\x32\x8d\x09\x90\x9b\x36\
|
||||
\xfc\x5c\xc6\x5d\x5f\xa3\xfd\xc1\x43\xcc\xbe\x7e\xfe\x7c\xfd\xb2\
|
||||
\xdd\x66\xff\x7e\xd2\x8f\x9e\xe2\x27\xe2\x88\x00\xd2\x43\x26\x4a\
|
||||
\x20\x61\xab\xa6\xb3\xa3\xb6\x14\xb8\x78\xfa\x24\xbe\xef\xd3\xf3\
|
||||
\xf2\x35\x9a\x69\x22\x01\x01\x54\xf4\x90\x89\xf6\x60\x4a\x88\x83\
|
||||
\xef\x62\x8c\x0f\x36\x93\xe8\xb2\x41\xdb\xd7\x1e\xda\x83\x4f\x0a\
|
||||
\xb8\x96\x05\x7a\x0c\x7e\x17\x59\x4a\xc1\x8c\x4d\xed\xb8\xcb\xd1\
|
||||
\xc3\x52\xce\x44\x8b\x14\x48\xde\x98\x8c\x1f\xd9\x4b\x22\x53\x21\
|
||||
\x8c\x2a\xc2\x53\x02\xbe\x84\xa5\x16\xc1\xc7\x35\x59\x3b\xe1\x84\
|
||||
\x70\xe3\x26\x46\x92\x57\x4a\x72\xc0\x57\x49\x52\x49\x62\xf1\x38\
|
||||
\xba\x61\x50\xf7\x3c\xca\x08\x26\x57\xca\xb5\x53\x0d\xf0\x6e\x41\
|
||||
\x24\x19\x87\x17\xea\x27\x4a\xc4\x2d\x4b\x0b\x66\xf7\x1d\x07\xaf\
|
||||
\x54\xaa\x1d\x2a\x97\xcf\x44\x70\xa3\xe0\x7f\xea\x2f\xb2\x2a\x1f\
|
||||
\x46\x55\x40\xa7\x1e\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\
|
||||
\x82\
|
||||
\x00\x00\x03\xc9\
|
||||
\x89\
|
||||
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
|
||||
\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
|
||||
\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
|
||||
\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x01\xbb\x00\x00\x01\xbb\
|
||||
\x01\x3a\xec\xe3\xe2\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
|
||||
\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
|
||||
\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x03\x46\x49\x44\
|
||||
\x41\x54\x38\x8d\x65\x93\xcd\x6f\x14\x65\x00\xc6\x7f\xef\xbc\x3b\
|
||||
\x3b\x3b\xfb\xc5\x2e\xb6\x9b\x52\x1a\x96\xd2\x8a\x21\x6d\x15\xaa\
|
||||
\x50\xa3\x05\x8c\x36\x0a\x18\x48\x8c\x9a\x18\x0f\x8d\x1a\x0f\x06\
|
||||
\x13\x0f\x22\xff\x00\x1c\x4c\x4c\x53\xc3\xc1\x8f\x83\x21\x42\x68\
|
||||
\x24\x22\x1c\xa8\x58\x35\x46\x43\x53\xb5\x40\xd3\x4a\x0c\x69\x89\
|
||||
\xb6\x29\x6c\x69\xd3\xee\x47\x3f\x76\x67\x66\x77\x76\x66\x5f\x4f\
|
||||
\x36\x88\xcf\xf9\xc9\xef\xf2\x3c\x3f\xa1\x94\xe2\x81\xe8\xfd\xa7\
|
||||
\xae\x1a\x93\xb7\x17\x9f\x72\x9c\x6a\x97\x6d\xbb\xde\xf8\xc4\xdc\
|
||||
\x4f\x96\xed\xde\xcc\xce\x9d\x74\x1f\x2c\x8b\xfb\x00\x72\xea\xf6\
|
||||
\x52\xec\xcc\xc0\x8d\xbe\x68\x24\xd8\xeb\xd5\x94\x9e\xc9\x5a\x8c\
|
||||
\xdc\xc8\xe0\xd8\x2e\x9e\xed\x96\xdd\x92\x73\x02\xc5\x47\xd9\xb9\
|
||||
\x93\xfe\xff\x00\x4f\x3c\xdd\xdf\x74\xe4\xc5\xf6\x61\x11\x90\xcd\
|
||||
\x8e\x61\xb0\xaa\x69\xcc\xe6\xcb\x48\xdf\xa7\x58\xb0\x58\x59\x5a\
|
||||
\xa3\x94\x2d\x52\x5e\x2e\x5d\x2b\x17\xac\x97\xb2\x99\x13\x0b\x00\
|
||||
\x81\x7f\x49\xcf\xec\x6d\xbd\x8c\xa1\x37\x97\x13\x31\xc2\x5b\xeb\
|
||||
\x71\x35\x49\x2a\x6f\xe3\xaf\xd9\x6c\x4f\x87\x99\x9a\x09\x51\x4c\
|
||||
\x44\x28\xaf\x94\xba\xec\x5c\xf1\x4b\xe0\x05\x00\x0d\xe0\xb9\x83\
|
||||
\x9f\xbd\x1f\x8e\x9b\xbb\x2a\x51\x13\xbd\x21\xc9\x72\x2c\xca\xa2\
|
||||
\x34\xb0\x0d\x83\x57\x9a\x0a\xbc\xdd\xbd\x91\x37\xf7\x47\x29\xeb\
|
||||
\x92\xb2\x26\xf1\x0d\xfd\xf9\xc7\x7b\x3e\x3d\xba\x0e\x50\x4a\xbd\
|
||||
\xa5\x4c\x83\xbc\x2f\x98\x29\x56\xb9\x97\xb3\xf1\x1c\x97\x87\x8a\
|
||||
\x19\xda\x5a\xb6\xe0\x54\x3c\x3e\x3c\x7d\x19\x19\x0a\x12\x08\x07\
|
||||
\x09\x45\x43\x6c\x4e\x27\x8f\x02\x52\x7e\xf2\x85\x1f\x74\xd1\xfa\
|
||||
\xdc\xa8\x29\xcb\x86\x41\x09\x0d\x21\x04\xca\xab\xd1\x9a\x9f\xa0\
|
||||
\x65\x73\x8a\x64\x62\x03\xb6\x2f\xd8\x12\x5a\x65\xa6\x60\xd0\xb9\
|
||||
\xbd\x8e\x7c\xde\x4a\xae\x2e\x5b\xfd\x32\x1c\xdf\xd7\x11\xab\x8f\
|
||||
\xbd\x6b\xc9\x00\x89\xfa\x18\x15\x25\x40\x00\x5e\x95\x03\x8d\x3e\
|
||||
\xe7\xcf\x0f\x50\x75\x3d\x52\x11\xf8\xfe\xea\x38\x76\x30\x4d\x3e\
|
||||
\x67\xe1\x58\x15\xf9\xfb\xe8\xec\xc5\x00\xb0\xe8\x2b\x85\xf4\x6b\
|
||||
\xd4\x5c\x8f\xaa\x5f\x26\x20\x7c\x8e\x34\xdc\x63\xfa\xaf\x39\x82\
|
||||
\x41\x93\xdf\xae\x8f\x73\x6b\x36\x47\xac\xe3\x75\xf4\x95\x0a\xe5\
|
||||
\x8a\x47\x50\x13\x58\x4e\x75\x41\x28\xa5\x78\xe4\xc9\x8f\xe7\x65\
|
||||
\x6a\xc3\xa6\x64\xd3\x46\xea\x53\x11\x0e\x6f\x5b\xe4\xe7\x1f\xbe\
|
||||
\xc3\x4c\x34\x30\x56\x6a\x24\x5c\xb7\x0d\x21\x4c\x22\x02\x7c\xc7\
|
||||
\x45\x54\x5c\xe6\xee\xe4\x17\xa6\x7e\x7c\xa7\x51\x03\x90\x1a\x23\
|
||||
\xca\xa9\xa2\x1c\x8b\x43\x4d\x77\xb9\xf4\xf5\x57\xa4\x1a\xb7\x72\
|
||||
\xb3\xb6\x93\x58\x43\x07\x42\x85\x50\xae\x47\x22\x24\x89\x85\x24\
|
||||
\xf3\x8b\x45\x6a\xbe\x1a\x5e\x5f\xa1\xb0\x54\x3c\xd6\xb8\xc9\x28\
|
||||
\xbd\xd6\x59\x60\xe0\xdc\x19\x76\x76\xee\xe1\x97\xf9\x26\xa4\x4c\
|
||||
\x10\xf4\x7d\x52\x66\x80\x96\xfa\x30\xb9\x6c\x89\xbf\x67\x72\x08\
|
||||
\x4d\x5b\xf3\x2b\xd5\xe3\xeb\x47\xfa\xbc\xef\xd1\xd8\xe4\xe4\x64\
|
||||
\xe4\xec\xd9\x6f\x38\x70\xf0\x30\xc3\xd3\x09\xda\x5b\x5a\x59\xb3\
|
||||
\xaa\xe8\x52\xb0\xba\x62\x31\x93\xb7\x30\x0c\x1d\x2d\x1a\xc6\x5b\
|
||||
\x2e\x1d\x9b\x1e\x79\x2f\x03\x20\xdb\xda\xda\x76\x58\x96\xf5\xeb\
|
||||
\x95\x2b\xdf\x9a\xfb\xf6\xee\xf7\x87\x33\x75\x56\xfc\xe1\xc7\x0c\
|
||||
\x57\x68\x24\x92\x26\x79\xdb\x67\xb5\x26\xd0\x93\x71\x64\x48\xcf\
|
||||
\xfb\x6b\xf6\x1b\x7f\x5e\xec\x3d\xb7\x2e\x50\x3a\x9d\x3e\x1e\x8f\
|
||||
\xc7\x2f\xec\xde\xbd\xe7\xd9\xc1\xc1\xc1\x97\xa7\x67\x9b\x3f\x28\
|
||||
\xd9\x6e\xcd\xae\xa1\x2d\x59\x6e\xac\xe2\xab\x4a\xc2\xd4\x6e\xe9\
|
||||
\xae\x7b\x49\xdd\x5d\x7a\xf5\xfa\x85\xde\xb1\xff\xd8\xd8\xdd\xdd\
|
||||
\xdd\xde\xd3\xd3\x73\x7a\x74\x74\xf4\xd4\xd0\xd0\xd0\x80\x10\x22\
|
||||
\x05\xec\x00\x76\x01\x5d\x40\x1c\xf8\x03\x98\x00\xc6\x80\x3b\xea\
|
||||
\x3e\x85\xff\x01\xeb\xf9\x7f\xc7\xb1\xde\x54\x6d\x00\x00\x00\x00\
|
||||
\x49\x45\x4e\x44\xae\x42\x60\x82\
|
||||
\x00\x00\x03\xb6\
|
||||
\x89\
|
||||
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
|
||||
\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
|
||||
\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x37\x5c\x00\x00\x37\x5c\
|
||||
\x01\xcb\xc7\xa4\xb9\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\
|
||||
\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\x03\x28\x49\x44\x41\x54\x78\
|
||||
\xda\x75\x92\x5b\x48\x93\x61\x18\xc7\xff\xdf\x3e\xf2\xd8\xb9\x70\
|
||||
\x98\x41\x75\x63\x45\x46\x84\xdd\x74\x22\x0c\xea\x22\xa2\xc3\x45\
|
||||
\x17\x19\xd9\x41\xd3\x9d\x9c\x3b\x1f\xdc\xd1\x22\x2d\x6d\x6b\xe5\
|
||||
\x37\x91\x8a\x72\xd3\xcd\x39\x4f\xe5\x74\x82\xe6\x66\x90\xb9\x42\
|
||||
\x8b\x0a\x5a\xd8\x61\xe4\x5d\x4a\x12\x23\x3a\xd8\xe1\xed\x5d\x48\
|
||||
\x10\xb1\x1f\xfc\xee\xde\xff\xf3\x3e\xfc\x79\x90\x0c\x8f\xb7\x05\
|
||||
\x07\x0f\x1d\x80\xcb\xd5\x04\xce\x59\xcf\xd8\x2f\xdb\x20\x91\x88\
|
||||
\x37\xf8\xdb\xfd\x8d\x43\x43\x83\xb7\x3c\xde\xe6\x1d\x4f\x9f\x3d\
|
||||
\x41\x52\x9c\x0d\x1c\x14\x4a\x19\xca\x04\x67\x98\xcd\xf9\x9b\xb0\
|
||||
\x73\xd7\x76\x7e\x28\x34\x34\x19\x8f\xc7\x49\x9b\xdf\xf7\xc9\x5a\
|
||||
\x65\x36\xbc\x8d\xbd\x41\x52\xba\xbb\xbb\x50\x2e\x95\xd0\x21\x72\
|
||||
\xb6\xb8\xe4\x14\x84\x22\x41\xf1\xf8\xe3\x31\x32\x35\xf5\xfe\xb3\
|
||||
\xc5\x62\x5e\x5b\x77\xa9\x16\xd7\xae\x5f\x63\xfe\x0b\xce\xcc\x7c\
|
||||
\x40\x38\x1c\x46\xe4\x61\x04\xaf\xdf\x4c\xc0\xd7\xe6\xe5\x95\x9c\
|
||||
\x39\x89\x7a\xee\x4a\x5f\x4f\xe0\x0e\x99\x9e\x9e\x22\xde\x56\x4f\
|
||||
\x51\x30\x18\x44\x8b\xc7\x9d\xfb\x4f\x78\xf8\x5e\x08\x09\x94\x6a\
|
||||
\x15\x0d\xd4\xa3\xa3\xb3\x9d\x9d\x98\x78\x89\x47\x8f\x22\x9b\x9a\
|
||||
\x5b\xdc\xdf\x04\x62\xf1\x8f\x50\x38\xf4\xab\xb3\xab\x63\xe6\xf6\
|
||||
\x9d\xee\x57\x2e\x77\x53\xeb\xdf\x70\x6d\x5d\x0d\x2d\xeb\x0a\x2d\
|
||||
\xcf\x0d\x9b\xfd\x42\xa2\x38\x36\xfa\x32\x8a\xb1\xb1\x31\xfe\x68\
|
||||
\x64\x74\xa4\xcd\xef\x27\x47\x8e\x16\xfe\xe4\x1a\x1a\x7e\x86\xc2\
|
||||
\x43\xc4\x6e\xb7\xbd\x16\x89\x45\xab\x90\x40\xae\xac\x80\x4a\xa3\
|
||||
\x80\x46\xa7\x82\x5c\x21\xc5\xd9\x73\x55\x6c\xa0\x2f\x80\xf0\x70\
|
||||
\x68\xab\x5c\x21\x8f\xe5\x6f\xc9\x27\x03\x83\x03\xd3\xd5\x35\xd5\
|
||||
\xbe\x8b\xb5\x17\x6b\x9c\x4e\xae\x2c\x8b\x9f\x95\x95\x96\x96\x0a\
|
||||
\x58\xaa\x4c\xd0\x1b\xb4\x30\x9a\xf4\x74\x75\x39\x23\x10\x96\xf1\
|
||||
\x8e\x17\x15\xd1\x2d\xea\x04\x87\x0e\x1f\xfc\x92\xbd\x22\x9b\x88\
|
||||
\x25\xe2\x17\x8f\x9f\x8c\xe7\xce\xce\x7e\xc5\x83\xd1\x11\xa6\xbf\
|
||||
\x3f\x88\xc1\xbb\x83\xb0\x5a\xad\x0c\x08\x21\x18\x89\xdc\x87\x5a\
|
||||
\xab\xe4\xd9\x1c\x56\x28\x54\xe5\x69\x6a\x8d\xf2\xc6\x9e\xbd\x7b\
|
||||
\x48\xce\xca\x1c\x42\x07\x8e\xc7\xe3\x1f\xb3\x13\xef\xcc\x56\x2b\
|
||||
\xeb\x6e\x76\x53\x5d\x6c\xde\xc6\x3c\x66\xdb\xb6\xad\xc0\xf1\xa2\
|
||||
\x63\xa8\x34\x6a\x59\xa1\xb8\x14\xa7\x4b\x4e\xac\x91\x2b\x65\x0f\
|
||||
\x0b\x8f\x15\x92\x82\xdd\x05\xf4\x67\xd1\xe8\x8b\xe8\xf3\x65\x84\
|
||||
\x7c\x47\x57\x77\x27\x2f\xd8\xdf\x47\x8b\x1e\xc6\xbb\xc9\x49\x70\
|
||||
\x9c\x03\x7f\x30\x59\x0c\x3c\xa5\x5a\x06\x71\xb9\x70\x9f\x4e\xaf\
|
||||
\x99\x36\x18\x0d\x44\x28\x12\x12\xa5\x5a\x71\xaf\xa7\xb7\x6b\x51\
|
||||
\x6c\x32\x8a\x26\xd7\x4d\xde\x8d\x9b\xd7\x41\x5b\x47\x5b\xbb\x0f\
|
||||
\x81\x9e\x0e\xfc\xa5\xa0\x60\x37\xa3\x50\xc9\x2e\xd0\x43\x21\x15\
|
||||
\xb2\x8a\x59\xa3\xc9\x48\x2a\x8d\xba\xbb\xe7\xce\x9b\xe7\x57\xd7\
|
||||
\xe9\x60\x77\x5c\x62\xec\x0e\x1b\x38\xe7\x55\x7a\x38\x8d\x88\xc5\
|
||||
\xa2\xf8\x07\x5d\xa5\xda\x68\x30\xe9\x34\x15\x32\x69\xa8\xb8\xa4\
|
||||
\x98\x68\xf5\xea\x9e\x52\xc1\xc9\x74\xad\xd4\x0b\x81\xa8\x94\x07\
|
||||
\x4a\x66\x66\x26\x92\x62\xb6\x18\x3c\xad\x3e\xcf\x3c\xbd\x41\xc3\
|
||||
\xe9\xf4\xea\xde\x8f\x5f\x26\x98\x8e\x40\x23\xea\x9d\x0e\x34\xb7\
|
||||
\x34\x25\x4a\xfe\x63\x32\xe8\x06\x9a\xfd\xd4\x5e\x89\x54\x74\x7e\
|
||||
\xf5\x9a\x55\xf3\xd3\xd3\xd3\x17\xa7\xa4\xa6\x2c\x07\xb0\x94\xba\
|
||||
\x84\xba\x88\xba\x80\x9a\x41\x4d\xa3\xa6\x50\x59\x2a\x83\x04\xeb\
|
||||
\xd7\xaf\x43\xee\xda\xdc\x05\xa9\x94\x8c\x8c\x0c\x3e\xcb\xb2\x39\
|
||||
\x00\xb2\xe7\xe4\x53\x97\xcf\x0d\x5a\x48\xcd\x9c\x1b\x32\x8f\xca\
|
||||
\x03\xe5\x37\x40\x64\x67\x7f\x6c\xb6\xdc\xf4\x00\x00\x00\x22\x7a\
|
||||
\x54\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\x00\x00\x78\xda\x2b\
|
||||
\x2f\x2f\xd7\xcb\xcc\xcb\x2e\x4e\x4e\x2c\x48\xd5\xcb\x2f\x4a\x07\
|
||||
\x00\x36\xd8\x06\x58\x10\x53\xca\x5c\x00\x00\x00\x00\x49\x45\x4e\
|
||||
\x44\xae\x42\x60\x82\
|
||||
"
|
||||
|
||||
qt_resource_name = "\
|
||||
\x00\x05\
|
||||
\x00\x6f\xa6\x53\
|
||||
\x00\x69\
|
||||
\x00\x63\x00\x6f\x00\x6e\x00\x73\
|
||||
\x00\x08\
|
||||
\x0b\x63\x58\x07\
|
||||
\x00\x73\
|
||||
\x00\x74\x00\x6f\x00\x70\x00\x2e\x00\x70\x00\x6e\x00\x67\
|
||||
\x00\x09\
|
||||
\x08\x97\xa2\x07\
|
||||
\x00\x73\
|
||||
\x00\x74\x00\x61\x00\x72\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\
|
||||
\x00\x0a\
|
||||
\x09\xb2\x67\xc7\
|
||||
\x00\x63\
|
||||
\x00\x61\x00\x6e\x00\x63\x00\x65\x00\x6c\x00\x2e\x00\x70\x00\x6e\x00\x67\
|
||||
\x00\x0b\
|
||||
\x06\xba\xa1\x47\
|
||||
\x00\x6f\
|
||||
\x00\x70\x00\x74\x00\x69\x00\x6f\x00\x6e\x00\x73\x00\x2e\x00\x70\x00\x6e\x00\x67\
|
||||
\x00\x0f\
|
||||
\x0e\x5e\x99\xe7\
|
||||
\x00\x70\
|
||||
\x00\x72\x00\x65\x00\x66\x00\x65\x00\x72\x00\x65\x00\x6e\x00\x63\x00\x65\x00\x73\x00\x2e\x00\x70\x00\x6e\x00\x67\
|
||||
"
|
||||
|
||||
qt_resource_struct = "\
|
||||
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
|
||||
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x02\
|
||||
\x00\x00\x00\x58\x00\x00\x00\x00\x00\x01\x00\x00\x06\xc6\
|
||||
\x00\x00\x00\x26\x00\x00\x00\x00\x00\x01\x00\x00\x01\xf7\
|
||||
\x00\x00\x00\x3e\x00\x00\x00\x00\x00\x01\x00\x00\x03\xf0\
|
||||
\x00\x00\x00\x10\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
|
||||
\x00\x00\x00\x74\x00\x00\x00\x00\x00\x01\x00\x00\x0a\x93\
|
||||
"
|
||||
|
||||
def qInitResources():
|
||||
QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data)
|
||||
|
||||
def qCleanupResources():
|
||||
QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data)
|
||||
|
||||
qInitResources()
|
||||
92
gui/linkchecker_ui_main.py
Normal file
92
gui/linkchecker_ui_main.py
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'ui/main.ui'
|
||||
#
|
||||
# Created: Wed Jan 7 19:07:20 2009
|
||||
# by: PyQt4 UI code generator 4.4.2
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
from PyQt4 import QtCore, QtGui
|
||||
|
||||
class Ui_MainWindow(object):
|
||||
def setupUi(self, MainWindow):
|
||||
MainWindow.setObjectName("MainWindow")
|
||||
MainWindow.resize(408,511)
|
||||
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred,QtGui.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
|
||||
MainWindow.setSizePolicy(sizePolicy)
|
||||
self.centralwidget = QtGui.QWidget(MainWindow)
|
||||
self.centralwidget.setObjectName("centralwidget")
|
||||
self.gridLayout = QtGui.QGridLayout(self.centralwidget)
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
self.label = QtGui.QLabel(self.centralwidget)
|
||||
self.label.setObjectName("label")
|
||||
self.gridLayout.addWidget(self.label,0,0,1,1)
|
||||
self.horizontalLayout_3 = QtGui.QHBoxLayout()
|
||||
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
|
||||
self.urlinput = QtGui.QLineEdit(self.centralwidget)
|
||||
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(1)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.urlinput.sizePolicy().hasHeightForWidth())
|
||||
self.urlinput.setSizePolicy(sizePolicy)
|
||||
self.urlinput.setObjectName("urlinput")
|
||||
self.horizontalLayout_3.addWidget(self.urlinput)
|
||||
self.optionsButton = QtGui.QToolButton(self.centralwidget)
|
||||
self.optionsButton.setObjectName("optionsButton")
|
||||
self.horizontalLayout_3.addWidget(self.optionsButton)
|
||||
spacerItem = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_3.addItem(spacerItem)
|
||||
self.controlButton = QtGui.QPushButton(self.centralwidget)
|
||||
icon = QtGui.QIcon()
|
||||
icon.addPixmap(QtGui.QPixmap(":/icons/start.png"),QtGui.QIcon.Normal,QtGui.QIcon.Off)
|
||||
self.controlButton.setIcon(icon)
|
||||
self.controlButton.setObjectName("controlButton")
|
||||
self.horizontalLayout_3.addWidget(self.controlButton)
|
||||
self.gridLayout.addLayout(self.horizontalLayout_3,0,1,1,1)
|
||||
self.output = QtGui.QTextEdit(self.centralwidget)
|
||||
self.output.setUndoRedoEnabled(False)
|
||||
self.output.setLineWrapMode(QtGui.QTextEdit.NoWrap)
|
||||
self.output.setReadOnly(True)
|
||||
self.output.setObjectName("output")
|
||||
self.gridLayout.addWidget(self.output,1,0,1,2)
|
||||
MainWindow.setCentralWidget(self.centralwidget)
|
||||
self.menubar = QtGui.QMenuBar(MainWindow)
|
||||
self.menubar.setGeometry(QtCore.QRect(0,0,408,29))
|
||||
self.menubar.setObjectName("menubar")
|
||||
self.menuLinkChecka = QtGui.QMenu(self.menubar)
|
||||
self.menuLinkChecka.setObjectName("menuLinkChecka")
|
||||
self.menuHelp = QtGui.QMenu(self.menubar)
|
||||
self.menuHelp.setObjectName("menuHelp")
|
||||
MainWindow.setMenuBar(self.menubar)
|
||||
self.statusBar = QtGui.QStatusBar(MainWindow)
|
||||
self.statusBar.setObjectName("statusBar")
|
||||
MainWindow.setStatusBar(self.statusBar)
|
||||
self.actionQuit = QtGui.QAction(MainWindow)
|
||||
self.actionQuit.setObjectName("actionQuit")
|
||||
self.actionAbout = QtGui.QAction(MainWindow)
|
||||
self.actionAbout.setObjectName("actionAbout")
|
||||
self.menuLinkChecka.addAction(self.actionQuit)
|
||||
self.menuHelp.addAction(self.actionAbout)
|
||||
self.menubar.addAction(self.menuLinkChecka.menuAction())
|
||||
self.menubar.addAction(self.menuHelp.menuAction())
|
||||
self.label.setBuddy(self.urlinput)
|
||||
|
||||
self.retranslateUi(MainWindow)
|
||||
QtCore.QMetaObject.connectSlotsByName(MainWindow)
|
||||
|
||||
def retranslateUi(self, MainWindow):
|
||||
MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "LinkChecker", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.label.setText(QtGui.QApplication.translate("MainWindow", "URL", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.optionsButton.setText(QtGui.QApplication.translate("MainWindow", "Options...", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.controlButton.setToolTip(QtGui.QApplication.translate("MainWindow", "Start checking the given URL.", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.controlButton.setText(QtGui.QApplication.translate("MainWindow", "Start", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.menuLinkChecka.setTitle(QtGui.QApplication.translate("MainWindow", "File", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.menuHelp.setTitle(QtGui.QApplication.translate("MainWindow", "Help", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.actionQuit.setText(QtGui.QApplication.translate("MainWindow", "Quit", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.actionAbout.setText(QtGui.QApplication.translate("MainWindow", "About", None, QtGui.QApplication.UnicodeUTF8))
|
||||
|
||||
import linkchecker_rc
|
||||
79
gui/linkchecker_ui_options.py
Normal file
79
gui/linkchecker_ui_options.py
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'ui/options.ui'
|
||||
#
|
||||
# Created: Wed Jan 7 17:08:52 2009
|
||||
# by: PyQt4 UI code generator 4.4.2
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
from PyQt4 import QtCore, QtGui
|
||||
|
||||
class Ui_Options(object):
|
||||
def setupUi(self, Options):
|
||||
Options.setObjectName("Options")
|
||||
Options.resize(306,255)
|
||||
self.resetButton = QtGui.QPushButton(Options)
|
||||
self.resetButton.setGeometry(QtCore.QRect(9,219,91,27))
|
||||
self.resetButton.setObjectName("resetButton")
|
||||
self.frame = QtGui.QFrame(Options)
|
||||
self.frame.setGeometry(QtCore.QRect(9,9,288,201))
|
||||
self.frame.setFrameShape(QtGui.QFrame.StyledPanel)
|
||||
self.frame.setFrameShadow(QtGui.QFrame.Raised)
|
||||
self.frame.setObjectName("frame")
|
||||
self.recursionlevel = QtGui.QSpinBox(self.frame)
|
||||
self.recursionlevel.setGeometry(QtCore.QRect(130,20,46,23))
|
||||
self.recursionlevel.setMinimum(-1)
|
||||
self.recursionlevel.setMaximum(100)
|
||||
self.recursionlevel.setProperty("value",QtCore.QVariant(-1))
|
||||
self.recursionlevel.setObjectName("recursionlevel")
|
||||
self.label = QtGui.QLabel(self.frame)
|
||||
self.label.setGeometry(QtCore.QRect(30,20,111,20))
|
||||
self.label.setObjectName("label")
|
||||
self.label_2 = QtGui.QLabel(self.frame)
|
||||
self.label_2.setGeometry(QtCore.QRect(30,60,91,17))
|
||||
self.label_2.setObjectName("label_2")
|
||||
self.label_3 = QtGui.QLabel(self.frame)
|
||||
self.label_3.setGeometry(QtCore.QRect(30,100,48,17))
|
||||
self.label_3.setObjectName("label_3")
|
||||
self.timeout = QtGui.QSpinBox(self.frame)
|
||||
self.timeout.setGeometry(QtCore.QRect(130,100,81,23))
|
||||
self.timeout.setMinimum(2)
|
||||
self.timeout.setMaximum(300)
|
||||
self.timeout.setProperty("value",QtCore.QVariant(60))
|
||||
self.timeout.setObjectName("timeout")
|
||||
self.label_5 = QtGui.QLabel(self.frame)
|
||||
self.label_5.setGeometry(QtCore.QRect(30,140,101,17))
|
||||
self.label_5.setObjectName("label_5")
|
||||
self.threads = QtGui.QSpinBox(self.frame)
|
||||
self.threads.setGeometry(QtCore.QRect(130,140,46,23))
|
||||
self.threads.setMinimum(1)
|
||||
self.threads.setMaximum(20)
|
||||
self.threads.setProperty("value",QtCore.QVariant(10))
|
||||
self.threads.setObjectName("threads")
|
||||
self.verbose = QtGui.QCheckBox(self.frame)
|
||||
self.verbose.setEnabled(True)
|
||||
self.verbose.setGeometry(QtCore.QRect(130,60,31,22))
|
||||
self.verbose.setObjectName("verbose")
|
||||
|
||||
self.retranslateUi(Options)
|
||||
QtCore.QMetaObject.connectSlotsByName(Options)
|
||||
|
||||
def retranslateUi(self, Options):
|
||||
Options.setWindowTitle(QtGui.QApplication.translate("Options", "Dialog", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.resetButton.setToolTip(QtGui.QApplication.translate("Options", "Reset all options to default values.", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.resetButton.setText(QtGui.QApplication.translate("Options", "Reset", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.recursionlevel.setToolTip(QtGui.QApplication.translate("Options", "Check recursively all links up to given depth. A negative depth will enable infinite recursion.", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.label.setToolTip(QtGui.QApplication.translate("Options", "Check recursively all links up to given depth. A negative depth will enable infinite recursion.", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.label.setText(QtGui.QApplication.translate("Options", "Recursive depth", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.label_2.setToolTip(QtGui.QApplication.translate("Options", "Log all checked URLs once. Default is to log only errors and warnings.", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.label_2.setText(QtGui.QApplication.translate("Options", "Verbose output", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.label_3.setToolTip(QtGui.QApplication.translate("Options", "Set the timeout for connection attempts in seconds.", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.label_3.setText(QtGui.QApplication.translate("Options", "Timeout", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.timeout.setToolTip(QtGui.QApplication.translate("Options", "Set the timeout for connection attempts in seconds.", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.timeout.setSuffix(QtGui.QApplication.translate("Options", " seconds", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.label_5.setToolTip(QtGui.QApplication.translate("Options", "Generate no more than the given number of threads.", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.label_5.setText(QtGui.QApplication.translate("Options", "Number of threads", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.threads.setToolTip(QtGui.QApplication.translate("Options", "Generate no more than the given number of threads.", None, QtGui.QApplication.UnicodeUTF8))
|
||||
self.verbose.setToolTip(QtGui.QApplication.translate("Options", "Log all checked URLs once. Default is to log only errors and warnings.", None, QtGui.QApplication.UnicodeUTF8))
|
||||
|
||||
31
gui/rc/Makefile
Normal file
31
gui/rc/Makefile
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
# refresh media files
|
||||
|
||||
# base directory of oxygen icon set checkout
|
||||
OXYGEN = /home/calvin/src/oxygen-gitsvn/16x16
|
||||
|
||||
ICONS = \
|
||||
cancel.png \
|
||||
options.png \
|
||||
preferences.png \
|
||||
start.png \
|
||||
stop.png \
|
||||
|
||||
all: $(ICONS)
|
||||
|
||||
start.png: $(OXYGEN)/actions/media-playback-start.png
|
||||
cp $< $@
|
||||
|
||||
stop.png: $(OXYGEN)/actions/media-playback-stop.png
|
||||
cp $< $@
|
||||
|
||||
cancel.png: $(OXYGEN)/actions/process-stop.png
|
||||
cp $< $@
|
||||
|
||||
options.png: $(OXYGEN)/categories/preferences-system-network.png
|
||||
cp $< $@
|
||||
|
||||
preferences.png: $(OXYGEN)/categories/preferences-other.png
|
||||
cp $< $@
|
||||
|
||||
clean:
|
||||
rm -f *.png
|
||||
BIN
gui/rc/cancel.png
Normal file
BIN
gui/rc/cancel.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 722 B |
9
gui/rc/linkchecker.qrc
Normal file
9
gui/rc/linkchecker.qrc
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
<RCC>
|
||||
<qresource prefix="icons" >
|
||||
<file>cancel.png</file>
|
||||
<file>options.png</file>
|
||||
<file>preferences.png</file>
|
||||
<file>start.png</file>
|
||||
<file>stop.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
BIN
gui/rc/options.png
Normal file
BIN
gui/rc/options.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 969 B |
BIN
gui/rc/preferences.png
Normal file
BIN
gui/rc/preferences.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 950 B |
BIN
gui/rc/start.png
Normal file
BIN
gui/rc/start.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 501 B |
BIN
gui/rc/stop.png
Normal file
BIN
gui/rc/stop.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 499 B |
142
gui/ui/main.ui
Normal file
142
gui/ui/main.ui
Normal file
|
|
@ -0,0 +1,142 @@
|
|||
<ui version="4.0" >
|
||||
<class>MainWindow</class>
|
||||
<widget class="QMainWindow" name="MainWindow" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>408</width>
|
||||
<height>511</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="windowTitle" >
|
||||
<string>LinkChecker</string>
|
||||
</property>
|
||||
<property name="statusTip" >
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget" >
|
||||
<layout class="QGridLayout" name="gridLayout" >
|
||||
<item row="0" column="0" >
|
||||
<widget class="QLabel" name="label" >
|
||||
<property name="text" >
|
||||
<string>URL</string>
|
||||
</property>
|
||||
<property name="buddy" >
|
||||
<cstring>urlinput</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1" >
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3" >
|
||||
<item>
|
||||
<widget class="QLineEdit" name="urlinput" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
|
||||
<horstretch>1</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="optionsButton" >
|
||||
<property name="text" >
|
||||
<string>Options...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_3" >
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0" >
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="controlButton" >
|
||||
<property name="toolTip" >
|
||||
<string>Start checking the given URL.</string>
|
||||
</property>
|
||||
<property name="statusTip" >
|
||||
<string/>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string comment="Start checking URL" >Start</string>
|
||||
</property>
|
||||
<property name="icon" >
|
||||
<iconset resource="../rc/linkchecker.qrc" >
|
||||
<normaloff>:/icons/start.png</normaloff>:/icons/start.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2" >
|
||||
<widget class="QTextEdit" name="output" >
|
||||
<property name="undoRedoEnabled" >
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="lineWrapMode" >
|
||||
<enum>QTextEdit::NoWrap</enum>
|
||||
</property>
|
||||
<property name="readOnly" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QMenuBar" name="menubar" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>408</width>
|
||||
<height>29</height>
|
||||
</rect>
|
||||
</property>
|
||||
<widget class="QMenu" name="menuLinkChecka" >
|
||||
<property name="title" >
|
||||
<string>File</string>
|
||||
</property>
|
||||
<addaction name="actionQuit" />
|
||||
</widget>
|
||||
<widget class="QMenu" name="menuHelp" >
|
||||
<property name="title" >
|
||||
<string>Help</string>
|
||||
</property>
|
||||
<addaction name="actionAbout" />
|
||||
</widget>
|
||||
<addaction name="menuLinkChecka" />
|
||||
<addaction name="menuHelp" />
|
||||
</widget>
|
||||
<widget class="QStatusBar" name="statusBar" />
|
||||
<action name="actionQuit" >
|
||||
<property name="text" >
|
||||
<string>Quit</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionAbout" >
|
||||
<property name="text" >
|
||||
<string>About</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<resources>
|
||||
<include location="../rc/linkchecker.qrc" />
|
||||
</resources>
|
||||
<connections/>
|
||||
</ui>
|
||||
202
gui/ui/options.ui
Normal file
202
gui/ui/options.ui
Normal file
|
|
@ -0,0 +1,202 @@
|
|||
<ui version="4.0" >
|
||||
<class>Options</class>
|
||||
<widget class="QDialog" name="Options" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>306</width>
|
||||
<height>255</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle" >
|
||||
<string>Dialog</string>
|
||||
</property>
|
||||
<widget class="QPushButton" name="resetButton" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>9</x>
|
||||
<y>219</y>
|
||||
<width>91</width>
|
||||
<height>27</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip" >
|
||||
<string>Reset all options to default values.</string>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Reset</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QFrame" name="frame" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>9</x>
|
||||
<y>9</y>
|
||||
<width>288</width>
|
||||
<height>201</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="frameShape" >
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow" >
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<widget class="QSpinBox" name="recursionlevel" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>130</x>
|
||||
<y>20</y>
|
||||
<width>46</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip" >
|
||||
<string>Check recursively all links up to given depth. A negative depth will enable infinite recursion.</string>
|
||||
</property>
|
||||
<property name="minimum" >
|
||||
<number>-1</number>
|
||||
</property>
|
||||
<property name="maximum" >
|
||||
<number>100</number>
|
||||
</property>
|
||||
<property name="value" >
|
||||
<number>-1</number>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>30</x>
|
||||
<y>20</y>
|
||||
<width>111</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip" >
|
||||
<string>Check recursively all links up to given depth. A negative depth will enable infinite recursion.</string>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Recursive depth</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_2" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>30</x>
|
||||
<y>60</y>
|
||||
<width>91</width>
|
||||
<height>17</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip" >
|
||||
<string>Log all checked URLs once. Default is to log only errors and warnings.</string>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Verbose output</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_3" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>30</x>
|
||||
<y>100</y>
|
||||
<width>48</width>
|
||||
<height>17</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip" >
|
||||
<string>Set the timeout for connection attempts in seconds.</string>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Timeout</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QSpinBox" name="timeout" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>130</x>
|
||||
<y>100</y>
|
||||
<width>81</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip" >
|
||||
<string>Set the timeout for connection attempts in seconds.</string>
|
||||
</property>
|
||||
<property name="suffix" >
|
||||
<string> seconds</string>
|
||||
</property>
|
||||
<property name="minimum" >
|
||||
<number>2</number>
|
||||
</property>
|
||||
<property name="maximum" >
|
||||
<number>300</number>
|
||||
</property>
|
||||
<property name="value" >
|
||||
<number>60</number>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_5" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>30</x>
|
||||
<y>140</y>
|
||||
<width>101</width>
|
||||
<height>17</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip" >
|
||||
<string>Generate no more than the given number of threads.</string>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Number of threads</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QSpinBox" name="threads" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>130</x>
|
||||
<y>140</y>
|
||||
<width>46</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip" >
|
||||
<string>Generate no more than the given number of threads.</string>
|
||||
</property>
|
||||
<property name="minimum" >
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="maximum" >
|
||||
<number>20</number>
|
||||
</property>
|
||||
<property name="value" >
|
||||
<number>10</number>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QCheckBox" name="verbose" >
|
||||
<property name="enabled" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>130</x>
|
||||
<y>60</y>
|
||||
<width>31</width>
|
||||
<height>22</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip" >
|
||||
<string>Log all checked URLs once. Default is to log only errors and warnings.</string>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
Loading…
Reference in a new issue