diff options
Diffstat (limited to 'src/kicadtoNgspice/Sample.py')
-rw-r--r-- | src/kicadtoNgspice/Sample.py | 320 |
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() |