1.1 --- a/OpenSecurity.iss Thu Jun 12 10:34:46 2014 +0100
1.2 +++ b/OpenSecurity.iss Thu Jun 12 12:30:37 2014 +0200
1.3 @@ -8,7 +8,7 @@
1.4 AppContact=AIT Austrian Institute of Technology
1.5 AppPublisher=AIT Austrian Institute of Technology
1.6 AppPublisherURL=http://www.ait.ac.at/
1.7 -AppVersion=0.2.6
1.8 +AppVersion=0.2.7
1.9 ArchitecturesInstallIn64BitMode=x64
1.10 DefaultDirName={pf}\OpenSecurity
1.11 DefaultGroupName=OpenSecurity
1.12 @@ -19,7 +19,7 @@
1.13 ; DisableReadyPage=yes
1.14 ; DisableWelcomePage=yes
1.15 OutputDir="."
1.16 -OutputBaseFilename="OpenSecurity Setup V0.2.6"
1.17 +OutputBaseFilename="OpenSecurity Setup V0.2.7"
1.18 OutputManifestFile=OpenSecurity-Setup-Manifest.txt
1.19 SetupIconFile=OpenSecurity\bin\ui\gfx\OpenSecurity.ico
1.20 SolidCompression=yes
2.1 --- a/OpenSecurity/bin/__init__.py Thu Jun 12 10:34:46 2014 +0100
2.2 +++ b/OpenSecurity/bin/__init__.py Thu Jun 12 12:30:37 2014 +0200
2.3 @@ -36,5 +36,5 @@
2.4 __copyright__ = 'Copyright 2014 The OpenSecurity Consortium'
2.5 __license__ = 'GPL v3'
2.6 __title__ = 'opensecurity'
2.7 -__version__ = '0.2.6'
2.8 +__version__ = '0.2.7'
2.9
3.1 --- a/OpenSecurity/bin/download_initial_image.sh Thu Jun 12 10:34:46 2014 +0100
3.2 +++ b/OpenSecurity/bin/download_initial_image.sh Thu Jun 12 12:30:37 2014 +0200
3.3 @@ -3,7 +3,7 @@
3.4 # ------------------------------------------------------------
3.5 # download initial VM for
3.6 #
3.7 -# OpenSecurity V0.2.6
3.8 +# OpenSecurity V0.2.7
3.9 #
3.10 # (C)opyright 2014, AIT Austrian Instiitute of Technology
3.11 # ------------------------------------------------------------
4.1 --- a/OpenSecurity/bin/initial_vm.sh Thu Jun 12 10:34:46 2014 +0100
4.2 +++ b/OpenSecurity/bin/initial_vm.sh Thu Jun 12 12:30:37 2014 +0200
4.3 @@ -3,7 +3,7 @@
4.4 # ------------------------------------------------------------
4.5 # install the initial VM for
4.6 #
4.7 -# OpenSecurity V0.2.6
4.8 +# OpenSecurity V0.2.7
4.9 #
4.10 # This has been originally a Windows only BAT file.
4.11 #
5.1 --- a/OpenSecurity/bin/ui/ConfigureDialog.ui Thu Jun 12 10:34:46 2014 +0100
5.2 +++ b/OpenSecurity/bin/ui/ConfigureDialog.ui Thu Jun 12 12:30:37 2014 +0200
5.3 @@ -6,8 +6,8 @@
5.4 <rect>
5.5 <x>0</x>
5.6 <y>0</y>
5.7 - <width>474</width>
5.8 - <height>416</height>
5.9 + <width>649</width>
5.10 + <height>494</height>
5.11 </rect>
5.12 </property>
5.13 <property name="windowTitle">
5.14 @@ -79,170 +79,209 @@
5.15 </widget>
5.16 </item>
5.17 <item row="2" column="0" colspan="2">
5.18 - <widget class="QWidget" name="wdStatus" native="true">
5.19 - <zorder>tabConfig</zorder>
5.20 - </widget>
5.21 + <widget class="QWidget" name="wdStatus" native="true"/>
5.22 </item>
5.23 </layout>
5.24 </item>
5.25 </layout>
5.26 </item>
5.27 <item>
5.28 - <widget class="QLabel" name="lblTemplate">
5.29 - <property name="text">
5.30 - <string>Initial Template:</string>
5.31 + <widget class="QTabWidget" name="tabWidget">
5.32 + <property name="currentIndex">
5.33 + <number>0</number>
5.34 </property>
5.35 - <property name="buddy">
5.36 - <cstring>tvTemplate</cstring>
5.37 - </property>
5.38 - </widget>
5.39 - </item>
5.40 - <item>
5.41 - <widget class="QTreeWidget" name="tvTemplate">
5.42 - <property name="maximumSize">
5.43 - <size>
5.44 - <width>16777215</width>
5.45 - <height>64</height>
5.46 - </size>
5.47 - </property>
5.48 - <property name="rootIsDecorated">
5.49 - <bool>false</bool>
5.50 - </property>
5.51 - <property name="itemsExpandable">
5.52 - <bool>false</bool>
5.53 - </property>
5.54 - <property name="allColumnsShowFocus">
5.55 - <bool>true</bool>
5.56 - </property>
5.57 - <column>
5.58 - <property name="text">
5.59 - <string>Name</string>
5.60 - </property>
5.61 - </column>
5.62 - <column>
5.63 - <property name="text">
5.64 - <string>Date</string>
5.65 - </property>
5.66 - </column>
5.67 - <column>
5.68 - <property name="text">
5.69 - <string>Size</string>
5.70 - </property>
5.71 - </column>
5.72 - <column>
5.73 - <property name="text">
5.74 - <string>Path</string>
5.75 - </property>
5.76 - </column>
5.77 - </widget>
5.78 - </item>
5.79 - <item>
5.80 - <layout class="QHBoxLayout" name="lyDownload">
5.81 - <item>
5.82 - <spacer name="spDownload">
5.83 - <property name="orientation">
5.84 - <enum>Qt::Horizontal</enum>
5.85 - </property>
5.86 - <property name="sizeHint" stdset="0">
5.87 - <size>
5.88 - <width>40</width>
5.89 - <height>20</height>
5.90 - </size>
5.91 - </property>
5.92 - </spacer>
5.93 - </item>
5.94 - <item>
5.95 - <widget class="QPushButton" name="btnDownload">
5.96 - <property name="minimumSize">
5.97 - <size>
5.98 - <width>100</width>
5.99 - <height>0</height>
5.100 - </size>
5.101 - </property>
5.102 - <property name="text">
5.103 - <string>&Download</string>
5.104 - </property>
5.105 - </widget>
5.106 - </item>
5.107 - <item>
5.108 - <widget class="QPushButton" name="btnImport">
5.109 - <property name="minimumSize">
5.110 - <size>
5.111 - <width>100</width>
5.112 - <height>0</height>
5.113 - </size>
5.114 - </property>
5.115 - <property name="text">
5.116 - <string>&Import</string>
5.117 - </property>
5.118 - </widget>
5.119 - </item>
5.120 - </layout>
5.121 - </item>
5.122 - <item>
5.123 - <widget class="QLabel" name="lblMachines">
5.124 - <property name="text">
5.125 - <string>Machines:</string>
5.126 - </property>
5.127 - <property name="buddy">
5.128 - <cstring>tvMachines</cstring>
5.129 - </property>
5.130 - </widget>
5.131 - </item>
5.132 - <item>
5.133 - <widget class="QTreeWidget" name="tvMachines">
5.134 - <property name="maximumSize">
5.135 - <size>
5.136 - <width>16777215</width>
5.137 - <height>128</height>
5.138 - </size>
5.139 - </property>
5.140 - <property name="rootIsDecorated">
5.141 - <bool>false</bool>
5.142 - </property>
5.143 - <property name="itemsExpandable">
5.144 - <bool>false</bool>
5.145 - </property>
5.146 - <property name="allColumnsShowFocus">
5.147 - <bool>true</bool>
5.148 - </property>
5.149 - <column>
5.150 - <property name="text">
5.151 - <string>Name</string>
5.152 - </property>
5.153 - </column>
5.154 - </widget>
5.155 - </item>
5.156 - <item>
5.157 - <widget class="QLabel" name="lblProgress">
5.158 - <property name="text">
5.159 - <string>Progress:</string>
5.160 - </property>
5.161 - <property name="buddy">
5.162 - <cstring>edtProgress</cstring>
5.163 - </property>
5.164 - </widget>
5.165 - </item>
5.166 - <item>
5.167 - <widget class="QPlainTextEdit" name="edtProgress">
5.168 - <property name="font">
5.169 - <font>
5.170 - <family>Monospace</family>
5.171 - <pointsize>10</pointsize>
5.172 - </font>
5.173 - </property>
5.174 - <property name="verticalScrollBarPolicy">
5.175 - <enum>Qt::ScrollBarAlwaysOn</enum>
5.176 - </property>
5.177 - <property name="lineWrapMode">
5.178 - <enum>QPlainTextEdit::NoWrap</enum>
5.179 - </property>
5.180 - <property name="readOnly">
5.181 - <bool>true</bool>
5.182 - </property>
5.183 - <property name="plainText">
5.184 - <string/>
5.185 - </property>
5.186 + <widget class="QWidget" name="tabConfiguration">
5.187 + <attribute name="title">
5.188 + <string>Configuration</string>
5.189 + </attribute>
5.190 + <layout class="QVBoxLayout" name="lyTabConfig">
5.191 + <item>
5.192 + <widget class="QLabel" name="lblTemplate">
5.193 + <property name="text">
5.194 + <string>Initial Template:</string>
5.195 + </property>
5.196 + <property name="buddy">
5.197 + <cstring>tvTemplate</cstring>
5.198 + </property>
5.199 + </widget>
5.200 + </item>
5.201 + <item>
5.202 + <widget class="QTreeWidget" name="tvTemplate">
5.203 + <property name="maximumSize">
5.204 + <size>
5.205 + <width>16777215</width>
5.206 + <height>64</height>
5.207 + </size>
5.208 + </property>
5.209 + <property name="rootIsDecorated">
5.210 + <bool>false</bool>
5.211 + </property>
5.212 + <property name="itemsExpandable">
5.213 + <bool>false</bool>
5.214 + </property>
5.215 + <property name="allColumnsShowFocus">
5.216 + <bool>true</bool>
5.217 + </property>
5.218 + <column>
5.219 + <property name="text">
5.220 + <string>Name</string>
5.221 + </property>
5.222 + </column>
5.223 + <column>
5.224 + <property name="text">
5.225 + <string>Date</string>
5.226 + </property>
5.227 + </column>
5.228 + <column>
5.229 + <property name="text">
5.230 + <string>Size</string>
5.231 + </property>
5.232 + </column>
5.233 + <column>
5.234 + <property name="text">
5.235 + <string>Path</string>
5.236 + </property>
5.237 + </column>
5.238 + </widget>
5.239 + </item>
5.240 + <item>
5.241 + <layout class="QHBoxLayout" name="lyDownload">
5.242 + <item>
5.243 + <spacer name="spDownload">
5.244 + <property name="orientation">
5.245 + <enum>Qt::Horizontal</enum>
5.246 + </property>
5.247 + <property name="sizeHint" stdset="0">
5.248 + <size>
5.249 + <width>40</width>
5.250 + <height>20</height>
5.251 + </size>
5.252 + </property>
5.253 + </spacer>
5.254 + </item>
5.255 + <item>
5.256 + <widget class="QPushButton" name="btnDownload">
5.257 + <property name="minimumSize">
5.258 + <size>
5.259 + <width>100</width>
5.260 + <height>0</height>
5.261 + </size>
5.262 + </property>
5.263 + <property name="text">
5.264 + <string>&Download</string>
5.265 + </property>
5.266 + </widget>
5.267 + </item>
5.268 + <item>
5.269 + <widget class="QPushButton" name="btnImport">
5.270 + <property name="minimumSize">
5.271 + <size>
5.272 + <width>100</width>
5.273 + <height>0</height>
5.274 + </size>
5.275 + </property>
5.276 + <property name="text">
5.277 + <string>&Import</string>
5.278 + </property>
5.279 + </widget>
5.280 + </item>
5.281 + </layout>
5.282 + </item>
5.283 + <item>
5.284 + <widget class="QLabel" name="lblMachines">
5.285 + <property name="text">
5.286 + <string>Machines:</string>
5.287 + </property>
5.288 + <property name="buddy">
5.289 + <cstring>tvMachines</cstring>
5.290 + </property>
5.291 + </widget>
5.292 + </item>
5.293 + <item>
5.294 + <widget class="QTreeWidget" name="tvMachines">
5.295 + <property name="maximumSize">
5.296 + <size>
5.297 + <width>16777215</width>
5.298 + <height>128</height>
5.299 + </size>
5.300 + </property>
5.301 + <property name="rootIsDecorated">
5.302 + <bool>false</bool>
5.303 + </property>
5.304 + <property name="itemsExpandable">
5.305 + <bool>false</bool>
5.306 + </property>
5.307 + <property name="allColumnsShowFocus">
5.308 + <bool>true</bool>
5.309 + </property>
5.310 + <column>
5.311 + <property name="text">
5.312 + <string>Name</string>
5.313 + </property>
5.314 + </column>
5.315 + </widget>
5.316 + </item>
5.317 + <item>
5.318 + <widget class="QLabel" name="lblProgress">
5.319 + <property name="text">
5.320 + <string>Progress:</string>
5.321 + </property>
5.322 + <property name="buddy">
5.323 + <cstring>edtProgress</cstring>
5.324 + </property>
5.325 + </widget>
5.326 + </item>
5.327 + <item>
5.328 + <widget class="QPlainTextEdit" name="edtProgress">
5.329 + <property name="font">
5.330 + <font>
5.331 + <family>Monospace</family>
5.332 + <pointsize>10</pointsize>
5.333 + </font>
5.334 + </property>
5.335 + <property name="verticalScrollBarPolicy">
5.336 + <enum>Qt::ScrollBarAlwaysOn</enum>
5.337 + </property>
5.338 + <property name="lineWrapMode">
5.339 + <enum>QPlainTextEdit::NoWrap</enum>
5.340 + </property>
5.341 + <property name="readOnly">
5.342 + <bool>true</bool>
5.343 + </property>
5.344 + <property name="plainText">
5.345 + <string/>
5.346 + </property>
5.347 + </widget>
5.348 + </item>
5.349 + </layout>
5.350 + <zorder>tvTemplate</zorder>
5.351 + <zorder>spDownload</zorder>
5.352 + <zorder>btnDownload</zorder>
5.353 + <zorder>btnImport</zorder>
5.354 + <zorder>lblTemplate</zorder>
5.355 + <zorder>lblMachines</zorder>
5.356 + <zorder></zorder>
5.357 + <zorder>tvMachines</zorder>
5.358 + <zorder>lblProgress</zorder>
5.359 + <zorder>edtProgress</zorder>
5.360 + </widget>
5.361 + <widget class="QWidget" name="tabLog">
5.362 + <attribute name="title">
5.363 + <string>Service Log</string>
5.364 + </attribute>
5.365 + <layout class="QVBoxLayout" name="lyTabLog">
5.366 + <item>
5.367 + <widget class="QPlainTextEdit" name="edtLog">
5.368 + <property name="verticalScrollBarPolicy">
5.369 + <enum>Qt::ScrollBarAlwaysOn</enum>
5.370 + </property>
5.371 + <property name="readOnly">
5.372 + <bool>true</bool>
5.373 + </property>
5.374 + </widget>
5.375 + </item>
5.376 + </layout>
5.377 + </widget>
5.378 </widget>
5.379 </item>
5.380 <item>
5.381 @@ -305,23 +344,14 @@
5.382 </layout>
5.383 </item>
5.384 </layout>
5.385 - <zorder>btnAbout</zorder>
5.386 - <zorder>lblTemplate</zorder>
5.387 - <zorder>tvTemplate</zorder>
5.388 - <zorder>tvMachines</zorder>
5.389 - <zorder>lblProgress</zorder>
5.390 - <zorder>edtProgress</zorder>
5.391 - <zorder>lblMachines</zorder>
5.392 <zorder></zorder>
5.393 + <zorder>tabWidget</zorder>
5.394 </widget>
5.395 <tabstops>
5.396 <tabstop>edtStatus</tabstop>
5.397 <tabstop>edtVersion</tabstop>
5.398 - <tabstop>tvTemplate</tabstop>
5.399 <tabstop>btnDownload</tabstop>
5.400 <tabstop>btnImport</tabstop>
5.401 - <tabstop>tvMachines</tabstop>
5.402 - <tabstop>edtProgress</tabstop>
5.403 <tabstop>btnRefresh</tabstop>
5.404 <tabstop>btnAbout</tabstop>
5.405 <tabstop>btnClose</tabstop>
6.1 --- a/OpenSecurity/bin/ui/configure_dialog.py Thu Jun 12 10:34:46 2014 +0100
6.2 +++ b/OpenSecurity/bin/ui/configure_dialog.py Thu Jun 12 12:30:37 2014 +0200
6.3 @@ -102,6 +102,8 @@
6.4 self._file_watched_name = ''
6.5 self._file_watched_size = 0
6.6 self._file_watcher = QtCore.QTimer(self)
6.7 + self._service_log_path = ''
6.8 + self._service_log_size = 0
6.9
6.10 # connectors
6.11 self.ui.btnAbout.clicked.connect(self.clicked_about)
6.12 @@ -178,6 +180,9 @@
6.13 self.ui.edtStatus.setEnabled(True)
6.14 self.ui.edtVersion.setText(j['os_server']['version'])
6.15 self.ui.edtVersion.setEnabled(True)
6.16 + self._service_log_path = os.path.join(j['os_server']['current log folder'], 'OpenSecurity.log')
6.17 + self._service_log_size = 0
6.18 + print(self._service_log_path)
6.19
6.20 # get initial template info
6.21 j = json.load(urllib2.urlopen('http://127.0.0.1:8080/initial_image'))
6.22 @@ -200,9 +205,6 @@
6.23 def update_progress(self):
6.24
6.25 """Our log file has changed, update ui"""
6.26 -
6.27 - if self._file_watched_name == '':
6.28 - return
6.29
6.30 # we could use os.stat(PATH).st_mtime ...
6.31 #
6.32 @@ -213,6 +215,18 @@
6.33 #
6.34 # This is terrible.
6.35
6.36 + # first the service log
6.37 + if self._service_log_path != '':
6.38 + file_size = os.stat(self._service_log_path).st_size
6.39 + if file_size > self._service_log_size:
6.40 + f = open(self._service_log_path, 'r')
6.41 + self.ui.edtLog.setPlainText(f.read())
6.42 + self._service_log_size = file_size
6.43 +
6.44 + # now any processing log (download or import)
6.45 + if self._file_watched_name == '':
6.46 + return
6.47 +
6.48 file_size = os.stat(self._file_watched_name).st_size
6.49 if self._file_watched_size >= file_size:
6.50 return
7.1 --- a/OpenSecurity/bin/ui/launch_dialog.py Thu Jun 12 10:34:46 2014 +0100
7.2 +++ b/OpenSecurity/bin/ui/launch_dialog.py Thu Jun 12 12:30:37 2014 +0200
7.3 @@ -111,7 +111,7 @@
7.4
7.5 if __name__ == "__main__":
7.6 a = QtGui.QApplication(sys.argv)
7.7 - d = LaunchDialog(['SecurityDVM0', 'SecurityDVM1'], ['/usr/bin/xterm', '/usr/bin/chromium', '/usr/bin/thunderbird'])
7.8 + d = LaunchDialog(['SecurityDVM0', 'SecurityDVM1'], ['/usr/bin/xterm', '/usr/bin/xclock', '/usr/bin/xeyes'])
7.9 d.show()
7.10 sys.exit(a.exec_())
7.11
8.1 --- a/OpenSecurity/bin/ui/ui_ConfigureDialog.py Thu Jun 12 10:34:46 2014 +0100
8.2 +++ b/OpenSecurity/bin/ui/ui_ConfigureDialog.py Thu Jun 12 12:30:37 2014 +0200
8.3 @@ -2,7 +2,7 @@
8.4
8.5 # Form implementation generated from reading ui file 'ConfigureDialog.ui'
8.6 #
8.7 -# Created: Wed Apr 2 13:21:51 2014
8.8 +# Created: Thu Jun 12 12:09:34 2014
8.9 # by: PyQt4 UI code generator 4.10.3
8.10 #
8.11 # WARNING! All changes made in this file will be lost!
8.12 @@ -26,7 +26,7 @@
8.13 class Ui_ConfigureDialog(object):
8.14 def setupUi(self, ConfigureDialog):
8.15 ConfigureDialog.setObjectName(_fromUtf8("ConfigureDialog"))
8.16 - ConfigureDialog.resize(474, 416)
8.17 + ConfigureDialog.resize(649, 494)
8.18 icon = QtGui.QIcon()
8.19 icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/opensecurity/gfx/opensecurity_icon_64.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
8.20 ConfigureDialog.setWindowIcon(icon)
8.21 @@ -63,43 +63,49 @@
8.22 self.lyStatus.addWidget(self.wdStatus, 2, 0, 1, 2)
8.23 self.lyHeading.addLayout(self.lyStatus)
8.24 self.lyMain.addLayout(self.lyHeading)
8.25 - self.lblTemplate = QtGui.QLabel(ConfigureDialog)
8.26 + self.tabWidget = QtGui.QTabWidget(ConfigureDialog)
8.27 + self.tabWidget.setObjectName(_fromUtf8("tabWidget"))
8.28 + self.tabConfiguration = QtGui.QWidget()
8.29 + self.tabConfiguration.setObjectName(_fromUtf8("tabConfiguration"))
8.30 + self.lyTabConfig = QtGui.QVBoxLayout(self.tabConfiguration)
8.31 + self.lyTabConfig.setObjectName(_fromUtf8("lyTabConfig"))
8.32 + self.lblTemplate = QtGui.QLabel(self.tabConfiguration)
8.33 self.lblTemplate.setObjectName(_fromUtf8("lblTemplate"))
8.34 - self.lyMain.addWidget(self.lblTemplate)
8.35 - self.tvTemplate = QtGui.QTreeWidget(ConfigureDialog)
8.36 + self.lyTabConfig.addWidget(self.lblTemplate)
8.37 + self.tvTemplate = QtGui.QTreeWidget(self.tabConfiguration)
8.38 self.tvTemplate.setMaximumSize(QtCore.QSize(16777215, 64))
8.39 self.tvTemplate.setRootIsDecorated(False)
8.40 self.tvTemplate.setItemsExpandable(False)
8.41 self.tvTemplate.setAllColumnsShowFocus(True)
8.42 self.tvTemplate.setObjectName(_fromUtf8("tvTemplate"))
8.43 - self.lyMain.addWidget(self.tvTemplate)
8.44 + self.lyTabConfig.addWidget(self.tvTemplate)
8.45 self.lyDownload = QtGui.QHBoxLayout()
8.46 self.lyDownload.setObjectName(_fromUtf8("lyDownload"))
8.47 spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
8.48 self.lyDownload.addItem(spacerItem)
8.49 - self.btnDownload = QtGui.QPushButton(ConfigureDialog)
8.50 + self.btnDownload = QtGui.QPushButton(self.tabConfiguration)
8.51 self.btnDownload.setMinimumSize(QtCore.QSize(100, 0))
8.52 self.btnDownload.setObjectName(_fromUtf8("btnDownload"))
8.53 self.lyDownload.addWidget(self.btnDownload)
8.54 - self.btnImport = QtGui.QPushButton(ConfigureDialog)
8.55 + self.btnImport = QtGui.QPushButton(self.tabConfiguration)
8.56 self.btnImport.setMinimumSize(QtCore.QSize(100, 0))
8.57 self.btnImport.setObjectName(_fromUtf8("btnImport"))
8.58 self.lyDownload.addWidget(self.btnImport)
8.59 - self.lyMain.addLayout(self.lyDownload)
8.60 - self.lblMachines = QtGui.QLabel(ConfigureDialog)
8.61 + self.lyTabConfig.addLayout(self.lyDownload)
8.62 + self.lblMachines = QtGui.QLabel(self.tabConfiguration)
8.63 self.lblMachines.setObjectName(_fromUtf8("lblMachines"))
8.64 - self.lyMain.addWidget(self.lblMachines)
8.65 - self.tvMachines = QtGui.QTreeWidget(ConfigureDialog)
8.66 + self.lyTabConfig.addWidget(self.lblMachines)
8.67 + self.tvMachines = QtGui.QTreeWidget(self.tabConfiguration)
8.68 self.tvMachines.setMaximumSize(QtCore.QSize(16777215, 128))
8.69 self.tvMachines.setRootIsDecorated(False)
8.70 self.tvMachines.setItemsExpandable(False)
8.71 self.tvMachines.setAllColumnsShowFocus(True)
8.72 self.tvMachines.setObjectName(_fromUtf8("tvMachines"))
8.73 - self.lyMain.addWidget(self.tvMachines)
8.74 - self.lblProgress = QtGui.QLabel(ConfigureDialog)
8.75 + self.lyTabConfig.addWidget(self.tvMachines)
8.76 + self.lblProgress = QtGui.QLabel(self.tabConfiguration)
8.77 self.lblProgress.setObjectName(_fromUtf8("lblProgress"))
8.78 - self.lyMain.addWidget(self.lblProgress)
8.79 - self.edtProgress = QtGui.QPlainTextEdit(ConfigureDialog)
8.80 + self.lyTabConfig.addWidget(self.lblProgress)
8.81 + self.edtProgress = QtGui.QPlainTextEdit(self.tabConfiguration)
8.82 font = QtGui.QFont()
8.83 font.setFamily(_fromUtf8("Monospace"))
8.84 font.setPointSize(10)
8.85 @@ -109,7 +115,19 @@
8.86 self.edtProgress.setReadOnly(True)
8.87 self.edtProgress.setPlainText(_fromUtf8(""))
8.88 self.edtProgress.setObjectName(_fromUtf8("edtProgress"))
8.89 - self.lyMain.addWidget(self.edtProgress)
8.90 + self.lyTabConfig.addWidget(self.edtProgress)
8.91 + self.tabWidget.addTab(self.tabConfiguration, _fromUtf8(""))
8.92 + self.tabLog = QtGui.QWidget()
8.93 + self.tabLog.setObjectName(_fromUtf8("tabLog"))
8.94 + self.lyTabLog = QtGui.QVBoxLayout(self.tabLog)
8.95 + self.lyTabLog.setObjectName(_fromUtf8("lyTabLog"))
8.96 + self.edtLog = QtGui.QPlainTextEdit(self.tabLog)
8.97 + self.edtLog.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
8.98 + self.edtLog.setReadOnly(True)
8.99 + self.edtLog.setObjectName(_fromUtf8("edtLog"))
8.100 + self.lyTabLog.addWidget(self.edtLog)
8.101 + self.tabWidget.addTab(self.tabLog, _fromUtf8(""))
8.102 + self.lyMain.addWidget(self.tabWidget)
8.103 self.lyButton = QtGui.QHBoxLayout()
8.104 self.lyButton.setObjectName(_fromUtf8("lyButton"))
8.105 spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
8.106 @@ -135,14 +153,12 @@
8.107 self.lblProgress.setBuddy(self.edtProgress)
8.108
8.109 self.retranslateUi(ConfigureDialog)
8.110 + self.tabWidget.setCurrentIndex(0)
8.111 QtCore.QMetaObject.connectSlotsByName(ConfigureDialog)
8.112 ConfigureDialog.setTabOrder(self.edtStatus, self.edtVersion)
8.113 - ConfigureDialog.setTabOrder(self.edtVersion, self.tvTemplate)
8.114 - ConfigureDialog.setTabOrder(self.tvTemplate, self.btnDownload)
8.115 + ConfigureDialog.setTabOrder(self.edtVersion, self.btnDownload)
8.116 ConfigureDialog.setTabOrder(self.btnDownload, self.btnImport)
8.117 - ConfigureDialog.setTabOrder(self.btnImport, self.tvMachines)
8.118 - ConfigureDialog.setTabOrder(self.tvMachines, self.edtProgress)
8.119 - ConfigureDialog.setTabOrder(self.edtProgress, self.btnRefresh)
8.120 + ConfigureDialog.setTabOrder(self.btnImport, self.btnRefresh)
8.121 ConfigureDialog.setTabOrder(self.btnRefresh, self.btnAbout)
8.122 ConfigureDialog.setTabOrder(self.btnAbout, self.btnClose)
8.123
8.124 @@ -160,6 +176,8 @@
8.125 self.lblMachines.setText(_translate("ConfigureDialog", "Machines:", None))
8.126 self.tvMachines.headerItem().setText(0, _translate("ConfigureDialog", "Name", None))
8.127 self.lblProgress.setText(_translate("ConfigureDialog", "Progress:", None))
8.128 + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabConfiguration), _translate("ConfigureDialog", "Configuration", None))
8.129 + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabLog), _translate("ConfigureDialog", "Service Log", None))
8.130 self.btnRefresh.setText(_translate("ConfigureDialog", "&Refresh", None))
8.131 self.btnAbout.setText(_translate("ConfigureDialog", "&About", None))
8.132 self.btnClose.setText(_translate("ConfigureDialog", "&Close", None))