From f5b6356b543b1607fa01b1a32e995e427e2d940e Mon Sep 17 00:00:00 2001
From: Drew Fisher <drew.m.fisher@gmail.com>
Date: Tue, 30 Jun 2009 21:37:22 -0700
Subject: [PATCH] Main app UI mockup.

---
 chooseaction.py    | 23 +++++++++++++++++
 mainapp.py         | 62 ++++++++++++++++++++++++++++++++++++++++++++++
 netidstep.py       |  3 ++-
 newpersonwizard.py |  7 +++---
 4 files changed, 91 insertions(+), 4 deletions(-)
 create mode 100644 chooseaction.py
 create mode 100644 mainapp.py

diff --git a/chooseaction.py b/chooseaction.py
new file mode 100644
index 0000000..fed6600
--- /dev/null
+++ b/chooseaction.py
@@ -0,0 +1,23 @@
+from PyQt4 import QtCore
+from PyQt4.QtGui import *
+from newpersonwizard import NewPersonWizard
+
+class ChooseAction (QWidget):
+	def __init__(self, parent=None):
+		QWidget.__init__(self,parent)
+		self.l1 = QLabel("<center><h1>Select a task:<h1></center>")
+		self.pb1 = QCommandLinkButton("Add a person to the directory","If you haven't seen this program before, hit this button.")
+		self.pb2 = QCommandLinkButton("Edit a directory record","If you've already added your data, but want to edit it, hit this button.")
+		self.pb3 = QCommandLinkButton("Import photos","To match picture from a camera to entered data, hit this button.")
+		self.pb4 = QCommandLinkButton("Export as document","To export the directory as a document for printing, hit this button.")
+		self.layout = QGridLayout()
+		self.layout.addWidget(self.l1,0,0,1,3)
+		self.layout.addWidget(self.pb1,1,1,1,1)
+		self.layout.addWidget(self.pb2,2,1,1,1)
+		self.layout.addWidget(self.pb3,3,1,1,1)
+		self.layout.addWidget(self.pb4,4,1,1,1)
+		QtCore.QObject.connect(self.pb1, QtCore.SIGNAL("clicked()"), self.addPerson)
+		self.setLayout(self.layout)
+	def addPerson(self):
+		wiz = NewPersonWizard()
+		wiz.exec_()
diff --git a/mainapp.py b/mainapp.py
new file mode 100644
index 0000000..c28cadf
--- /dev/null
+++ b/mainapp.py
@@ -0,0 +1,62 @@
+from PyQt4 import QtCore
+from PyQt4.QtGui import *
+
+from chooseaction import ChooseAction
+
+class MainApp (QMainWindow):
+	def __init__(self, Parent=None):
+		QMainWindow.__init__(self, Parent)
+		self.setWindowTitle("Whitepages V3")
+
+		self.center = ChooseAction(self)
+		#self.center = QLabel("<center><h1>Filler</h1></center>")
+		self.setCentralWidget(self.center)
+
+		self.createActions()
+		self.createMenus()
+
+		self.statusBar().showMessage("Ready")
+		self.setUnifiedTitleAndToolBarOnMac(True);
+		self.resize(800,600)
+		self.show()
+
+	def createActions(self):
+		self.fileNewAction = QAction("&New Database",self)
+		QtCore.QObject.connect( self.fileNewAction, QtCore.SIGNAL("triggered()"), self.newFile)
+		self.fileOpenAction = QAction("&Open Database",self)
+		QtCore.QObject.connect( self.fileOpenAction, QtCore.SIGNAL("triggered()"), self.openFile)
+		self.fileImportAction = QAction("&Import (Merge)", self)
+		QtCore.QObject.connect( self.fileImportAction, QtCore.SIGNAL("triggered()"), self.mergeWizard)
+		self.fileQuitAction = QAction("&Quit",self)
+		QtCore.QObject.connect( self.fileQuitAction, QtCore.SIGNAL("triggered()"), self.quit)
+		
+	
+	def createMenus(self):
+		self.fileMenu = self.menuBar().addMenu("&File")
+		self.fileMenu.addAction(self.fileNewAction)
+		self.fileMenu.addAction(self.fileOpenAction)
+		self.fileMenu.addAction(self.fileImportAction)
+		self.fileMenu.addSeparator()
+		self.fileMenu.addAction(self.fileQuitAction)
+
+
+	def newFile(self):
+		print "Close the existing database, create a new one."
+	def openFile(self):
+		fileName = QFileDialog.getOpenFileName(self, "Open dataset", ".", "Databases (*.db)")
+		print "and then we'd open the db",fileName
+	def mergeWizard(self):
+		fileName = QFileDialog.getOpenFileName(self, "Import which dataset?", ".", "Databases (*.db)" )
+		print "and then we'd import data from",fileName
+	def quit(self):
+		# You could do cleanup, like closing/flushing the database, an "Are you sure you want to quit?"
+		# modal dialog, or saving the window layout/state.
+		qApp.quit()
+
+
+
+if __name__ == "__main__" :
+	app = QApplication([""])
+	widget = MainApp()
+	app.exec_()
+
diff --git a/netidstep.py b/netidstep.py
index bbe9131..1c83fb5 100644
--- a/netidstep.py
+++ b/netidstep.py
@@ -5,8 +5,9 @@ class NetIDStep(QWidget):
 	def __init__(self, parent=None):
 		QWidget.__init__(self,parent)
 		self.title = QLabel("<h1>Whitepages v3</h1><h2>Collecting contact information for the dorm</h2>")
-		self.instructions = QLabel("&Enter your NetID:")
+		self.instructions = QLabel("Enter your NetID:")
 		self.netid = QLineEdit()
+		self.instructions.setFocusProxy(self.netid)
 		self.grid = QGridLayout()
 		self.grid.addWidget(self.title,0,0,1,2)
 		self.grid.addWidget(self.instructions,1,0,1,1)
diff --git a/newpersonwizard.py b/newpersonwizard.py
index 1aa15a2..6238437 100644
--- a/newpersonwizard.py
+++ b/newpersonwizard.py
@@ -5,9 +5,9 @@ from netidstep import NetIDStep
 from ldapstep import LDAPStep
 from donestep import DoneStep
 
-class NewPersonWizard(QWidget):
+class NewPersonWizard(QDialog):
 	def __init__(self, parent=None):
-		QWidget.__init__(self, parent)
+		QDialog.__init__(self, parent)
 		self.setWindowTitle("Whitepages v3")
 		self.steps = []
 		self.currentstep = 0
@@ -33,10 +33,11 @@ class NewPersonWizard(QWidget):
 			QtCore.QObject.connect( s, QtCore.SIGNAL('submit()'), self.next)
 			self.layout.addWidget(s,0,0,2,2)
 			s.hide()
-		self.layout.addWidget(self.prev_button,2,0,1,1)
 		self.layout.addWidget(self.next_button,2,1,1,1)
+		self.layout.addWidget(self.prev_button,2,0,1,1)
 		self.setLayout(self.layout)
 		self.resize(400,300)
+		self.setModal(True)
 		self.show()
 		self.steps[0].show()
 		QtCore.QObject.connect( self.prev_button, QtCore.SIGNAL('clicked()'), self.prev)
-- 
2.39.5