summaryrefslogtreecommitdiff
path: root/src/kicadtoNgspice/Sample.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/kicadtoNgspice/Sample.py')
-rw-r--r--src/kicadtoNgspice/Sample.py320
1 files changed, 0 insertions, 320 deletions
diff --git a/src/kicadtoNgspice/Sample.py b/src/kicadtoNgspice/Sample.py
deleted file mode 100644
index 5f562724..00000000
--- a/src/kicadtoNgspice/Sample.py
+++ /dev/null
@@ -1,320 +0,0 @@
-from PyQt4 import QtGui,QtCore
-
-import sys
-import re
-import datetime
-################################################################
-def main():
- app = QtGui.QApplication(sys.argv)
- mw = MainWindow()
- sys.exit(app.exec_())
-
-################################################################
-class MainWindow(QtGui.QMainWindow):
- def __init__(self):
- QtGui.QMainWindow.__init__(self)
-
- # create stuff
- self.rw = ReportWidget()
- self.setCentralWidget(self.rw)
- self.sw = StartWindow()
- self.createActions()
- self.createMenus()
- self.createStatusBar()
-
- # create progress bar
- self.pb = QtGui.QProgressBar(self.statusBar())
- self.statusBar().addPermanentWidget(self.pb)
-
- # connections
- self.connect(self.sw, QtCore.Qt.SIGNAL("okClicked"),
- self.rw.create)
- self.connect(self.rw.table, QtCore.Qt.SIGNAL("progressChanged"),
- self.update_progress)
- self.connect(self.rw.table, QtCore.Qt.SIGNAL("displayFinished"),
- self.hide_progress_bar)
-
- # format the main window
- self.setGeometry(100,100,750,550)
-
- # show windows
- self.show()
- self.sw.show()
-
- def update_progress(self, n, nrows):
- self.pb.show()
- self.pb.setRange(0, nrows)
- self.pb.setValue(n)
- self.statusBar().showMessage(self.tr("Parsing eventlog data..."))
-
- def hide_progress_bar(self):
- self.pb.hide()
- self.statusBar().showMessage(self.tr("Finished"))
-
- def about(self):
- QtGui.QMessageBox.about(self, self.tr("About AIS Audit Tool"),
- self.tr("AIS Audit Tool\n\n"
- "%s\n"
- "%s\n"
- "%s" % (__author__, __version__, __date__)))
-
- def createActions(self):
- self.exitAct = QtGui.QAction(self.tr("E&xit;"), self)
- self.exitAct.setShortcut(self.tr("Ctrl+Q"))
- self.exitAct.setStatusTip(self.tr("Exit the application"))
- self.connect(self.exitAct, QtCore.Qt.SIGNAL("triggered()"), self, QtCore.Qt.SLOT("close()"))
-
- self.aboutAct = QtGui.QAction(self.tr("&About;"), self)
- self.aboutAct.setStatusTip(self.tr("Show the application's About box"))
- self.connect(self.aboutAct, QtCore.Qt.SIGNAL("triggered()"), self.about)
-
- self.aboutQtAct = QtGui.QAction(self.tr("About &Qt;"), self)
- self.aboutQtAct.setStatusTip(self.tr("Show the Qt library's About box"))
- self.connect(self.aboutQtAct, QtCore.Qt.SIGNAL("triggered()"), qApp, QtCore.Qt.SLOT("aboutQt()"))
-
- def createMenus(self):
- self.fileMenu = self.menuBar().addMenu(self.tr("&File;"))
- self.fileMenu.addAction(self.exitAct)
-
- self.helpMenu = self.menuBar().addMenu(self.tr("&Help;"))
- self.helpMenu.addAction(self.aboutAct)
- self.helpMenu.addAction(self.aboutQtAct)
-
- def createStatusBar(self):
- sb = QtGui.QStatusBar()
- sb.setFixedHeight(18)
- self.setStatusBar(sb)
- self.statusBar().showMessage(self.tr("Ready"))
-
-################################################################
-class StartWindow(QtGui.QWidget):
- def __init__(self, *args):
- QtGui.QWidget.__init__(self, *args)
-
- # date box
- self.label_date = QtGui.QLabel()
- self.label_date.setText("Set date of last audit:")
- default = datetime.date.today() - datetime.timedelta(DEFAULT_DAYS_FROM_LAST_AUDIT)
- self.datebox = QtGui.QDateEdit(QtCore.Qt.QDate(default.year, default.month, default.day))
-
- # buttons
- spacer = QtGui.QSpacerItem(20,40,QtGui.QSizePolicy.Minimum,QtGui.QSizePolicy.Expanding)
- self.button_ok = QtGui.QPushButton()
- self.button_ok.setText("OK")
- self.button_ok.setDefault(True)
- button_cancel = QtGui.QPushButton()
- button_cancel.setText("Cancel")
-
- # layout
- layout_right = QtGui.QVBoxLayout(self)
- layout_right.addWidget(self.label_date)
- layout_right.addWidget(self.datebox)
- layout_right.addItem(spacer)
- layout_right.addWidget(self.button_ok)
- layout_right.addWidget(button_cancel)
-
- # connections
- self.connect(button_cancel, QtCore.Qt.SIGNAL("clicked(bool)"),
- self.close)
- self.connect(self.button_ok, QtCore.Qt.SIGNAL("clicked(bool)"),
- self.ok_clicked)
-
- def ok_clicked(self):
- self.close()
- year = self.datebox.date().year()
- month = self.datebox.date().month()
- day = self.datebox.date().day()
- dateobj = datetime.date(int(year),int(month),int(day))
- self.emit(QtCore.Qt.SIGNAL("okClicked"), dateobj)
-
-################################################################
-class ReportWidget(QtGui.QWidget):
- def __init__(self, *args):
- QtGui.QWidget.__init__(self, *args)
- self.cbUsers = QtGui.QCheckBox("Hide SYSTEM users")
- self.cbSorting = QtGui.QCheckBox("Sorting enabled")
- self.table = MyTable()
- self.textbrowser = QtGui.QTextBrowser()
- self.textbrowser.setFontFamily("Courier")
- self.textbrowser.setFontPointSize(10)
- hlayout = QtGui.QHBoxLayout()
- hlayout.addWidget(self.cbUsers)
- hlayout.addWidget(self.cbSorting)
- vlayout = QtGui.QVBoxLayout()
- vlayout.setMargin(2)
- vlayout.addLayout(hlayout)
- vlayout.addWidget(self.table)
- self.setLayout(vlayout)
- self.setGeometry(100,100,750,550)
-
- # connections
- self.connect(self.cbUsers, QtCore.Qt.SIGNAL("stateChanged(int)"),
- self.cbUsersChanged)
- self.connect(self.cbSorting, QtCore.Qt.SIGNAL("stateChanged(int)"),
- self.cbSortingChanged)
-
- def create(self, dateobj):
- """ Parses the eventlog data, displays it in a table, and
- displays the user login/logout also """
- self.table.display_data(dateobj)
-
- def cbUsersChanged(self):
- state = self.cbUsers.checkState()
- if state == 0:
- self.table.show_system_users()
- elif state == 2:
- self.table.hide_system_users()
-
- def cbSortingChanged(self):
- state = self.cbSorting.checkState()
- if state == 0:
- self.table.setSortingEnabled(False)
- elif state == 2:
- self.table.setSortingEnabled(True)
-
-################################################################
-class MyTable(QtGui.QTableWidget):
- """ Creates a custom table widget """
- def __init__(self, *args):
- QtGui.QTableWidget.__init__(self, *args)
- self.setSelectionMode(self.ContiguousSelection)
- self.setGeometry(0,0,700,400)
- self.setShowGrid(False)
- self.other_users_list = []
-
- def hide_system_users(self):
- for n in self.other_users_list:
- self.setRowHidden(n, True)
-
- def show_system_users(self):
- for n in self.other_users_list:
- self.setRowHidden(n, False)
-
- def display_data(self, dateobj):
- """ Reads in data as a 2D list and formats and displays it in
- the table """
-
- print "Fetching data..."
- ep = EventlogParser()
- data = ep.parse_log(dateobj)
- print "Done."
-
- if len(data)==0:
- data = ["No data for this date range."]
-
- nrows = len(data)
- ncols = len(data[0])
- self.setRowCount(nrows)
- self.setColumnCount(ncols)
- self.setHorizontalHeaderLabels(['No.', 'Date','Time','Type','Event','User','Computer'])
-
- for i in xrange(len(data)):
- # update progress dialog
- if (i%20) == 0:
- self.emit(QtCore.Qt.SIGNAL("progressChanged"), i, nrows)
- qApp.processEvents()
-
- # set each cell to be a QTableWidgetItem from the _process_row method
- items = self._process_row(data[i])
- for j in range(len(items)):
- self.setItem(i, j, items[j])
- self.setRowHeight(i, 16)
-
- # set column width first time through
- if i == 0:
- self.resizeColumnsToContents()
- self.setColumnWidth(4, 250)
-
- # format column width
- self.resizeColumnsToContents()
- self.setColumnWidth(4, 250)
-
- # emit signal for finished processing
- self.emit(QtCore.Qt.SIGNAL("displayFinished"))
-
- def _process_row(self, row):
- """ Formats items in the row of the 2-D list data
- Input: the row of data from the EventlogParser in a list
- Returns a list of QTableWidgetItems to be one row in the table
- """
-
- icon = []
- for i in xrange(len(row)):
- # general formatting for all cells (may be overwritten)
- icon.append(QtGui.QIcon())
- computer = row[6]
-
- # time processing
- if i == 2:
- try:
- hour = int(re.split(r":", row[i])[0])
- except:
- raise
- if hour <= EARLY_HOUR or hour >= LATE_HOUR:
- backcolor_time = QtGui.QColor(0,0,102)
- else:
- backcolor_time = QtGui.QColor("white")
-
- # success or failure processing
- elif i == 3:
- if row[i] == "8":
- row[i] = "Success"
- icon[i] = QtGui.QIcon("success.png")
- elif row[i] == "16":
- row[i] = "Failure"
- icon[i] = QtGui.QIcon("failure.png")
- else:
- row[i] = "Unknown"
- icon[i] = QtGui.QIcon("unknown.png")
-
- # event processing
- elif i == 4:
- backcolor = QtGui.QColor("white")
- if row[i] in RED_EVENTIDS:
- backcolor = QtGui.QColor("red")
- elif row[i] in ORANGE_EVENTIDS:
- backcolor = QtGui.QColor("orange")
- elif row[i] in YELLOW_EVENTIDS:
- backcolor = QtGui.QColor("yellow")
- elif row[i] in GREEN_EVENTIDS:
- pass
- elif row[i] in OTHER_EVENTIDS:
- backcolor = QtGui.QColor("blue")
- try:
- row[i] = row[i] + ": " + EVENT_DESC[row[i]]
- except:
- pass
-
- # user processing
- elif i == 5:
- if row[i] in (computer, "", "SYSTEM", "NETWORK SERVICE", "LOCAL SERVICE", "ANONYMOUS LOGON"):
- font = QtGui.QFont("Arial", 8)
- font.setBold(False)
- textcolor = QtGui.QColor("gray")
- user = 'other'
- else:
- font = QtGui. QFont("Arial", 8)
- font.setBold(True)
- textcolor = QtGui.QColor("black")
- user = 'user'
-
- # create table widget item
- tableitem_list = []
- for i in xrange(len(row)):
- tableitem = QtGui.QTableWidgetItem(row[i])
- if i == 2:
- tableitem.setBackgroundColor(backcolor_time)
- else:
- tableitem.setBackgroundColor(backcolor)
- tableitem.setTextColor(textcolor)
- tableitem.setFont(font)
- tableitem.setTextAlignment(QtCore.Qt.AlignTop)
- tableitem.setToolTip(row[i])
- tableitem.setIcon(icon[i])
- tableitem_list.append(tableitem)
-
- return tableitem_list
-
-################################################################
-if __name__ == "__main__":
- main()