Skip to content

Commit 67ab2db

Browse files
author
Tim Walsh
authored
Merge pull request #1 from timothyryanwalsh/dev-brunnhildegui2
Merge dev into master
2 parents 1a16bce + 7765d4b commit 67ab2db

File tree

5 files changed

+273
-151
lines changed

5 files changed

+273
-151
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ Install the Brunnhilde command-line utility by downloading the source code from
88

99
For easy installation in Bitcurator, save the script to /usr/share/brunnhilde/brunnhilde.py.
1010

11-
The GUI requires Brunnhilde v1.1.0 or higher. Version 1.2.4 or higher is recommended. Dependencies must be installed as explained in [Brunnhilde](http://github.com/timothyryanwalsh/brunnhilde) repo.
11+
This version of the GUI requires Brunnhilde 1.3.0 or higher. Currently works with Python 2 (tested in 2.7) only.
1212

1313
#### Install PyQt4
1414

1515
Install PyQt4 if not already installed.
1616

17-
##### Ubuntu/Debian Linux (including Bitcurator 1.7.74)
17+
##### Ubuntu/Debian Linux (including Bitcurator 1.7.74+)
1818

1919
`sudo apt-get install python-qt4`
2020

design.py

Lines changed: 113 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -25,114 +25,147 @@ def _translate(context, text, disambig):
2525
class Ui_MainWindow(object):
2626
def setupUi(self, MainWindow):
2727
MainWindow.setObjectName(_fromUtf8("MainWindow"))
28-
MainWindow.resize(687, 832)
28+
MainWindow.resize(600, 764)
2929
self.centralwidget = QtGui.QWidget(MainWindow)
3030
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
31-
self.verticalLayout = QtGui.QVBoxLayout(self.centralwidget)
32-
self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
33-
self.label_8 = QtGui.QLabel(self.centralwidget)
34-
self.label_8.setObjectName(_fromUtf8("label_8"))
35-
self.verticalLayout.addWidget(self.label_8)
36-
self.radioButton = QtGui.QRadioButton(self.centralwidget)
37-
self.radioButton.setObjectName(_fromUtf8("radioButton"))
38-
self.verticalLayout.addWidget(self.radioButton)
39-
self.directorySource = QtGui.QLineEdit(self.centralwidget)
40-
self.directorySource.setText(_fromUtf8(""))
41-
self.directorySource.setObjectName(_fromUtf8("directorySource"))
42-
self.verticalLayout.addWidget(self.directorySource)
43-
self.directoryBrowseBtn = QtGui.QPushButton(self.centralwidget)
44-
self.directoryBrowseBtn.setObjectName(_fromUtf8("directoryBrowseBtn"))
45-
self.verticalLayout.addWidget(self.directoryBrowseBtn)
46-
self.radioButton_2 = QtGui.QRadioButton(self.centralwidget)
47-
self.radioButton_2.setObjectName(_fromUtf8("radioButton_2"))
48-
self.verticalLayout.addWidget(self.radioButton_2)
31+
self.gridLayout = QtGui.QGridLayout(self.centralwidget)
32+
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
33+
self.identifier = QtGui.QLineEdit(self.centralwidget)
34+
self.identifier.setText(_fromUtf8(""))
35+
self.identifier.setObjectName(_fromUtf8("identifier"))
36+
self.gridLayout.addWidget(self.identifier, 15, 0, 1, 2)
37+
self.diskImageBrowseBtn = QtGui.QPushButton(self.centralwidget)
38+
self.diskImageBrowseBtn.setObjectName(_fromUtf8("diskImageBrowseBtn"))
39+
self.gridLayout.addWidget(self.diskImageBrowseBtn, 7, 2, 1, 1)
40+
self.textEdit_2 = QtGui.QTextEdit(self.centralwidget)
41+
self.textEdit_2.setObjectName(_fromUtf8("textEdit_2"))
42+
self.gridLayout.addWidget(self.textEdit_2, 30, 0, 1, 3)
4943
self.diskImageSource = QtGui.QLineEdit(self.centralwidget)
5044
self.diskImageSource.setText(_fromUtf8(""))
5145
self.diskImageSource.setObjectName(_fromUtf8("diskImageSource"))
52-
self.verticalLayout.addWidget(self.diskImageSource)
53-
self.diskImageBrowseBtn = QtGui.QPushButton(self.centralwidget)
54-
self.diskImageBrowseBtn.setObjectName(_fromUtf8("diskImageBrowseBtn"))
55-
self.verticalLayout.addWidget(self.diskImageBrowseBtn)
56-
self.hfsDiskBtn = QtGui.QCheckBox(self.centralwidget)
57-
self.hfsDiskBtn.setObjectName(_fromUtf8("hfsDiskBtn"))
58-
self.verticalLayout.addWidget(self.hfsDiskBtn)
59-
self.removeFilesBtn = QtGui.QCheckBox(self.centralwidget)
60-
self.removeFilesBtn.setObjectName(_fromUtf8("removeFilesBtn"))
61-
self.verticalLayout.addWidget(self.removeFilesBtn)
62-
self.label_3 = QtGui.QLabel(self.centralwidget)
63-
self.label_3.setObjectName(_fromUtf8("label_3"))
64-
self.verticalLayout.addWidget(self.label_3)
46+
self.gridLayout.addWidget(self.diskImageSource, 7, 0, 1, 2)
47+
self.label = QtGui.QLabel(self.centralwidget)
48+
self.label.setObjectName(_fromUtf8("label"))
49+
self.gridLayout.addWidget(self.label, 22, 0, 1, 1)
6550
self.destination = QtGui.QLineEdit(self.centralwidget)
6651
self.destination.setText(_fromUtf8(""))
6752
self.destination.setObjectName(_fromUtf8("destination"))
68-
self.verticalLayout.addWidget(self.destination)
69-
self.destinationBrowseBtn = QtGui.QPushButton(self.centralwidget)
70-
self.destinationBrowseBtn.setObjectName(_fromUtf8("destinationBrowseBtn"))
71-
self.verticalLayout.addWidget(self.destinationBrowseBtn)
72-
self.label_4 = QtGui.QLabel(self.centralwidget)
73-
self.label_4.setObjectName(_fromUtf8("label_4"))
74-
self.verticalLayout.addWidget(self.label_4)
75-
self.identifier = QtGui.QLineEdit(self.centralwidget)
76-
self.identifier.setText(_fromUtf8(""))
77-
self.identifier.setObjectName(_fromUtf8("identifier"))
78-
self.verticalLayout.addWidget(self.identifier)
53+
self.gridLayout.addWidget(self.destination, 12, 0, 1, 2)
54+
self.startScanBtn = QtGui.QPushButton(self.centralwidget)
55+
self.startScanBtn.setObjectName(_fromUtf8("startScanBtn"))
56+
self.gridLayout.addWidget(self.startScanBtn, 31, 0, 1, 1)
57+
self.radioButton_2 = QtGui.QRadioButton(self.centralwidget)
58+
self.radioButton_2.setObjectName(_fromUtf8("radioButton_2"))
59+
self.gridLayout.addWidget(self.radioButton_2, 6, 0, 1, 1)
60+
self.label_8 = QtGui.QLabel(self.centralwidget)
61+
self.label_8.setObjectName(_fromUtf8("label_8"))
62+
self.gridLayout.addWidget(self.label_8, 0, 0, 1, 2)
63+
self.radioButton = QtGui.QRadioButton(self.centralwidget)
64+
self.radioButton.setObjectName(_fromUtf8("radioButton"))
65+
self.gridLayout.addWidget(self.radioButton, 1, 0, 1, 1)
66+
self.label_3 = QtGui.QLabel(self.centralwidget)
67+
self.label_3.setObjectName(_fromUtf8("label_3"))
68+
self.gridLayout.addWidget(self.label_3, 11, 0, 1, 1)
7969
self.label_5 = QtGui.QLabel(self.centralwidget)
8070
self.label_5.setObjectName(_fromUtf8("label_5"))
81-
self.verticalLayout.addWidget(self.label_5)
82-
self.skipClamscanBtn = QtGui.QCheckBox(self.centralwidget)
83-
self.skipClamscanBtn.setObjectName(_fromUtf8("skipClamscanBtn"))
84-
self.verticalLayout.addWidget(self.skipClamscanBtn)
85-
self.bulkExtractorBtn = QtGui.QCheckBox(self.centralwidget)
86-
self.bulkExtractorBtn.setObjectName(_fromUtf8("bulkExtractorBtn"))
87-
self.verticalLayout.addWidget(self.bulkExtractorBtn)
71+
self.gridLayout.addWidget(self.label_5, 16, 0, 1, 1)
8872
self.scanArchivesBtn = QtGui.QCheckBox(self.centralwidget)
73+
self.scanArchivesBtn.setChecked(True)
8974
self.scanArchivesBtn.setObjectName(_fromUtf8("scanArchivesBtn"))
90-
self.verticalLayout.addWidget(self.scanArchivesBtn)
91-
self.throttleSiegfriedBtn = QtGui.QCheckBox(self.centralwidget)
92-
self.throttleSiegfriedBtn.setObjectName(_fromUtf8("throttleSiegfriedBtn"))
93-
self.verticalLayout.addWidget(self.throttleSiegfriedBtn)
75+
self.gridLayout.addWidget(self.scanArchivesBtn, 17, 1, 1, 1)
76+
self.removeFilesBtn = QtGui.QCheckBox(self.centralwidget)
77+
self.removeFilesBtn.setObjectName(_fromUtf8("removeFilesBtn"))
78+
self.gridLayout.addWidget(self.removeFilesBtn, 10, 0, 1, 2)
79+
self.btn_sha1 = QtGui.QRadioButton(self.centralwidget)
80+
self.btn_sha1.setObjectName(_fromUtf8("btn_sha1"))
81+
self.buttonGroup = QtGui.QButtonGroup(MainWindow)
82+
self.buttonGroup.setObjectName(_fromUtf8("buttonGroup"))
83+
self.buttonGroup.addButton(self.btn_sha1)
84+
self.gridLayout.addWidget(self.btn_sha1, 24, 0, 1, 1)
85+
self.skipClamscanBtn = QtGui.QCheckBox(self.centralwidget)
86+
self.skipClamscanBtn.setObjectName(_fromUtf8("skipClamscanBtn"))
87+
self.gridLayout.addWidget(self.skipClamscanBtn, 17, 0, 1, 1)
88+
self.label_4 = QtGui.QLabel(self.centralwidget)
89+
self.label_4.setObjectName(_fromUtf8("label_4"))
90+
self.gridLayout.addWidget(self.label_4, 14, 0, 1, 1)
91+
self.btn_md5 = QtGui.QRadioButton(self.centralwidget)
92+
self.btn_md5.setChecked(True)
93+
self.btn_md5.setObjectName(_fromUtf8("btn_md5"))
94+
self.buttonGroup.addButton(self.btn_md5)
95+
self.gridLayout.addWidget(self.btn_md5, 23, 0, 1, 1)
96+
self.btn_sha512 = QtGui.QRadioButton(self.centralwidget)
97+
self.btn_sha512.setObjectName(_fromUtf8("btn_sha512"))
98+
self.buttonGroup.addButton(self.btn_sha512)
99+
self.gridLayout.addWidget(self.btn_sha512, 24, 1, 1, 1)
94100
self.label_7 = QtGui.QLabel(self.centralwidget)
95101
self.label_7.setObjectName(_fromUtf8("label_7"))
96-
self.verticalLayout.addWidget(self.label_7)
97-
self.textEdit = QtGui.QTextEdit(self.centralwidget)
98-
self.textEdit.setObjectName(_fromUtf8("textEdit"))
99-
self.verticalLayout.addWidget(self.textEdit)
102+
self.gridLayout.addWidget(self.label_7, 27, 0, 1, 1)
100103
self.label_2 = QtGui.QLabel(self.centralwidget)
101104
self.label_2.setObjectName(_fromUtf8("label_2"))
102-
self.verticalLayout.addWidget(self.label_2)
103-
self.textEdit_2 = QtGui.QTextEdit(self.centralwidget)
104-
self.textEdit_2.setObjectName(_fromUtf8("textEdit_2"))
105-
self.verticalLayout.addWidget(self.textEdit_2)
106-
self.startScanBtn = QtGui.QPushButton(self.centralwidget)
107-
self.startScanBtn.setObjectName(_fromUtf8("startScanBtn"))
108-
self.verticalLayout.addWidget(self.startScanBtn)
105+
self.gridLayout.addWidget(self.label_2, 29, 0, 1, 1)
106+
self.btn_sha256 = QtGui.QRadioButton(self.centralwidget)
107+
self.btn_sha256.setObjectName(_fromUtf8("btn_sha256"))
108+
self.buttonGroup.addButton(self.btn_sha256)
109+
self.gridLayout.addWidget(self.btn_sha256, 23, 1, 1, 1)
110+
self.hfsDiskBtn = QtGui.QCheckBox(self.centralwidget)
111+
self.hfsDiskBtn.setObjectName(_fromUtf8("hfsDiskBtn"))
112+
self.gridLayout.addWidget(self.hfsDiskBtn, 9, 0, 1, 2)
113+
self.sfWarningsBtn = QtGui.QCheckBox(self.centralwidget)
114+
self.sfWarningsBtn.setChecked(True)
115+
self.sfWarningsBtn.setObjectName(_fromUtf8("sfWarningsBtn"))
116+
self.gridLayout.addWidget(self.sfWarningsBtn, 18, 1, 1, 1)
117+
self.throttleSiegfriedBtn = QtGui.QCheckBox(self.centralwidget)
118+
self.throttleSiegfriedBtn.setObjectName(_fromUtf8("throttleSiegfriedBtn"))
119+
self.gridLayout.addWidget(self.throttleSiegfriedBtn, 20, 0, 1, 1)
120+
self.bulkExtractorBtn = QtGui.QCheckBox(self.centralwidget)
121+
self.bulkExtractorBtn.setObjectName(_fromUtf8("bulkExtractorBtn"))
122+
self.gridLayout.addWidget(self.bulkExtractorBtn, 18, 0, 1, 1)
123+
self.textEdit = QtGui.QTextEdit(self.centralwidget)
124+
self.textEdit.setObjectName(_fromUtf8("textEdit"))
125+
self.gridLayout.addWidget(self.textEdit, 28, 0, 1, 3)
126+
self.directorySource = QtGui.QLineEdit(self.centralwidget)
127+
self.directorySource.setText(_fromUtf8(""))
128+
self.directorySource.setObjectName(_fromUtf8("directorySource"))
129+
self.gridLayout.addWidget(self.directorySource, 3, 0, 1, 2)
130+
self.destinationBrowseBtn = QtGui.QPushButton(self.centralwidget)
131+
self.destinationBrowseBtn.setObjectName(_fromUtf8("destinationBrowseBtn"))
132+
self.gridLayout.addWidget(self.destinationBrowseBtn, 12, 2, 1, 1)
133+
self.directoryBrowseBtn = QtGui.QPushButton(self.centralwidget)
134+
self.directoryBrowseBtn.setObjectName(_fromUtf8("directoryBrowseBtn"))
135+
self.gridLayout.addWidget(self.directoryBrowseBtn, 3, 2, 1, 1)
109136
MainWindow.setCentralWidget(self.centralwidget)
110137

111138
self.retranslateUi(MainWindow)
112139
QtCore.QMetaObject.connectSlotsByName(MainWindow)
113140

114141
def retranslateUi(self, MainWindow):
115142
MainWindow.setWindowTitle(_translate("MainWindow", "Brunnhilde GUI", None))
143+
self.identifier.setPlaceholderText(_translate("MainWindow", "Enter accession no. or other identifer (no spaces)", None))
144+
self.diskImageBrowseBtn.setText(_translate("MainWindow", "Browse", None))
145+
self.diskImageSource.setPlaceholderText(_translate("MainWindow", "/path/to/disk/image", None))
146+
self.label.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600;\">Checksum algorithm</span></p></body></html>", None))
147+
self.destination.setPlaceholderText(_translate("MainWindow", "/path/to/reports/directory", None))
148+
self.startScanBtn.setText(_translate("MainWindow", "Start scan", None))
149+
self.radioButton_2.setText(_translate("MainWindow", "Disk image", None))
116150
self.label_8.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600;\">Choose source</span></p></body></html>", None))
117151
self.radioButton.setText(_translate("MainWindow", "Directory", None))
118-
self.directorySource.setPlaceholderText(_translate("MainWindow", "/path/to/directory", None))
119-
self.directoryBrowseBtn.setText(_translate("MainWindow", "Browse", None))
120-
self.radioButton_2.setText(_translate("MainWindow", "Disk image", None))
121-
self.diskImageSource.setPlaceholderText(_translate("MainWindow", "/path/to/disk/image", None))
122-
self.diskImageBrowseBtn.setText(_translate("MainWindow", "Browse", None))
123-
self.hfsDiskBtn.setText(_translate("MainWindow", "Hierarchical File System (HFS)-formatted disk", None))
124-
self.removeFilesBtn.setText(_translate("MainWindow", "Remove files carved from disk image at end of process", None))
125152
self.label_3.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600;\">Destination for reports</span></p></body></html>", None))
126-
self.destination.setPlaceholderText(_translate("MainWindow", "/path/to/reports/directory", None))
127-
self.destinationBrowseBtn.setText(_translate("MainWindow", "Browse", None))
128-
self.label_4.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600;\">Accesion number or identifier</span></p></body></html>", None))
129-
self.identifier.setPlaceholderText(_translate("MainWindow", "Enter accession no. or other identifer (no spaces)", None))
130153
self.label_5.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600;\">Options</span></p></body></html>", None))
131-
self.skipClamscanBtn.setText(_translate("MainWindow", "Skip virus scan", None))
132-
self.bulkExtractorBtn.setText(_translate("MainWindow", "Run bulk_extractor", None))
133154
self.scanArchivesBtn.setText(_translate("MainWindow", "Scan archive files (zip, tar, etc.)", None))
134-
self.throttleSiegfriedBtn.setText(_translate("MainWindow", "Throttle Siegfried", None))
155+
self.removeFilesBtn.setText(_translate("MainWindow", "Remove files carved from disk image at end of process", None))
156+
self.btn_sha1.setText(_translate("MainWindow", "sha1", None))
157+
self.skipClamscanBtn.setText(_translate("MainWindow", "Skip virus scan", None))
158+
self.label_4.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600;\">Accesion number or identifier</span></p></body></html>", None))
159+
self.btn_md5.setText(_translate("MainWindow", "md5", None))
160+
self.btn_sha512.setText(_translate("MainWindow", "sha512", None))
135161
self.label_7.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600;\">Output (stdout)</span></p></body></html>", None))
136162
self.label_2.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600;\">Errors (stderr)</span></p></body></html>", None))
137-
self.startScanBtn.setText(_translate("MainWindow", "Start scan", None))
163+
self.btn_sha256.setText(_translate("MainWindow", "sha256", None))
164+
self.hfsDiskBtn.setText(_translate("MainWindow", "Hierarchical File System (HFS)-formatted disk", None))
165+
self.sfWarningsBtn.setText(_translate("MainWindow", "Include Siegfried warnings in HTML", None))
166+
self.throttleSiegfriedBtn.setText(_translate("MainWindow", "Throttle Siegfried", None))
167+
self.bulkExtractorBtn.setText(_translate("MainWindow", "Run bulk_extractor", None))
168+
self.directorySource.setPlaceholderText(_translate("MainWindow", "/path/to/directory", None))
169+
self.destinationBrowseBtn.setText(_translate("MainWindow", "Browse", None))
170+
self.directoryBrowseBtn.setText(_translate("MainWindow", "Browse", None))
138171

design.pyc

7.62 KB
Binary file not shown.

0 commit comments

Comments
 (0)