]> Shamusworld >> Repos - schematic/blobdiff - src/scmwidget.cpp
Added new classes, lots of new functionality.
[schematic] / src / scmwidget.cpp
diff --git a/src/scmwidget.cpp b/src/scmwidget.cpp
new file mode 100644 (file)
index 0000000..78f757f
--- /dev/null
@@ -0,0 +1,204 @@
+//
+// scmwidget.cpp - Main widget container
+//
+// by James Hammons
+// (C) 2012 Underground Software
+//
+// JLH = James Hammons <jlhamm@acm.org>
+//
+// Who  When        What
+// ---  ----------  -------------------------------------------------------------
+// JLH  09/24/2012  Created this file
+//
+
+#include "scmwidget.h"
+#include "addresswidget.h"
+#include "contactwidget.h"
+
+
+SCMWidget::SCMWidget(QWidget * parent/*= 0*/): QWidget(parent),
+       purchaseOrders(new QTreeView),
+       vendorName(new QLabel),
+       ndaSigned(new QLabel),
+       vendorAddress(new QTabWidget),
+       vendorContact(new QTabWidget),
+       vendorClass(new QListWidget),
+       username(new QLabel),
+       vendorLevel(new VendorLevelWidget),
+       alerts(new QListWidget),
+       notes(new QListWidget),
+       nextVendorButton(new QToolButton),
+       previousVendorButton(new QToolButton),
+       editVendor(new QPushButton("Edit Vendor")),
+       addVendor(new QPushButton("Add Vendor")),
+       addLocation(new QPushButton("Add Location")),
+       addContact(new QPushButton("Add Contact")),
+       createAlert(new QPushButton("Create")),
+       createNote(new QPushButton("Create")),
+       showOpen(new QPushButton("Open")),
+       showClosed(new QPushButton("Closed")),
+       showAll(new QPushButton("All")),
+       createPO(new QPushButton("Create"))
+{
+       // Create main page widgets & layout
+
+       purchaseOrders->setRootIsDecorated(false);
+       purchaseOrders->setAlternatingRowColors(true);
+
+       QAbstractItemModel * model = new QStandardItemModel(0, 7);
+       model->setHeaderData(0, Qt::Horizontal, tr("PO #"));
+       model->setHeaderData(1, Qt::Horizontal, tr("Vendor"));
+       model->setHeaderData(2, Qt::Horizontal, tr("Desc."));
+       model->setHeaderData(3, Qt::Horizontal, tr("OAD"));
+       model->setHeaderData(4, Qt::Horizontal, tr("UAD"));
+       model->setHeaderData(5, Qt::Horizontal, tr("Docs"));
+       model->setHeaderData(6, Qt::Horizontal, tr("FAI"));
+
+       model->insertRow(0);
+       model->setData(model->index(0, 0), "FE823724");
+       model->setData(model->index(0, 1), "Sanford & Sons");
+       model->setData(model->index(0, 2), "Misc. Junk");
+       model->setData(model->index(0, 3), "09/30/2012");
+       model->setData(model->index(0, 4), "");
+       model->setData(model->index(0, 5), "");
+       model->setData(model->index(0, 6), "");
+
+       model->insertRow(0);
+       model->setData(model->index(0, 0), "89237923-123");
+       model->setData(model->index(0, 1), "Digikey");
+       model->setData(model->index(0, 2), "Small capacitors");
+       model->setData(model->index(0, 3), "10/08/2012");
+       model->setData(model->index(0, 4), "11/30/2012");
+       model->setData(model->index(0, 5), "1");
+       model->setData(model->index(0, 6), "Yes");
+
+       model->insertRow(0);
+       model->setData(model->index(0, 0), "T9234CS32");
+       model->setData(model->index(0, 1), "Big, Faceless Company");
+       model->setData(model->index(0, 2), "Important Stuff you need RIGHT NOW");
+       model->setData(model->index(0, 3), "09/28/2012");
+       model->setData(model->index(0, 4), "09/29/2012");
+       model->setData(model->index(0, 5), "5");
+       model->setData(model->index(0, 6), "Yes");
+
+       purchaseOrders->setModel(model);
+
+       nextVendorButton->setArrowType(Qt::RightArrow);
+       nextVendorButton->setToolTip(tr("Move to next Vendor in Database."));
+       previousVendorButton->setArrowType(Qt::LeftArrow);
+       previousVendorButton->setToolTip(tr("Move to previous Vendor in Database."));
+
+       QFont * vendorFont = new QFont;
+       vendorFont->setPointSize(12);
+       vendorName->setFont(*vendorFont);
+       vendorName->setText("Vendor Name");
+
+       QHBoxLayout * hbox1 = new QHBoxLayout;
+       hbox1->addWidget(previousVendorButton);
+       hbox1->addWidget(nextVendorButton);
+       hbox1->addWidget(vendorName);
+
+       // Vendor address widgets
+
+       AddressWidget * vaw1 = new AddressWidget(this);
+       vaw1->SetFields("123 Any Street", "Any City", "Anywhere", "USA", "01234");
+       vendorAddress->addTab(vaw1, tr("Primary"));
+       vendorAddress->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum);
+
+       // Vendor contact widgets
+
+       ContactWidget * vcw1 = new ContactWidget(this);
+       vcw1->SetFields("Sales", "Joe Blow", "joe.blow@widget.com", "Singapore", "512-222-2222", "", "512-122-2123");
+       vendorContact->addTab(vcw1, tr("Contact #1"));
+       vendorContact->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum);
+
+       // Vendor class list
+
+       QVBoxLayout * vbox1 = new QVBoxLayout;
+       vbox1->addWidget(vendorClass);
+       QGroupBox * gb1 = new QGroupBox(tr("Vendor Classes"));
+       gb1->setLayout(vbox1);
+
+       // Vendor action push buttons
+
+       QVBoxLayout * vbox4 = new QVBoxLayout;
+       QHBoxLayout * hbox3 = new QHBoxLayout;
+       QGroupBox * gb2 = new QGroupBox(tr("Vendor Actions"));
+
+       vbox4->addWidget(editVendor);
+       vbox4->addWidget(addVendor);
+       vbox4->addWidget(addLocation);
+       vbox4->addWidget(addContact);
+       gb2->setLayout(vbox4);
+
+       hbox3->addWidget(vendorLevel);
+       hbox3->addWidget(gb2);
+
+       // Alerts & notes
+
+       QVBoxLayout * vbox5 = new QVBoxLayout;
+       QHBoxLayout * hbox4 = new QHBoxLayout;
+       QHBoxLayout * hbox5 = new QHBoxLayout;
+
+       QLabel * label1 = new QLabel(tr("Alerts"));
+       QLabel * label2 = new QLabel(tr("Notes"));
+       hbox4->addWidget(label1);
+       hbox4->addStretch();
+       hbox4->addWidget(createAlert);
+       hbox5->addWidget(label2);
+       hbox5->addStretch();
+       hbox5->addWidget(createNote);
+
+       vbox5->addLayout(hbox4);
+       vbox5->addWidget(alerts);
+       vbox5->addLayout(hbox5);
+       vbox5->addWidget(notes);
+
+       // Purchase Order headers
+
+       QHBoxLayout * hbox6 = new QHBoxLayout;
+       QLabel * label3 = new QLabel(tr("Purchase Orders"));
+       hbox6->addWidget(label3);
+       hbox6->addSpacing(32);
+       hbox6->addWidget(showOpen);
+       hbox6->addWidget(showClosed);
+       hbox6->addWidget(showAll);
+       hbox6->addStretch();
+       hbox6->addWidget(createPO);
+
+       // Horizontal line
+
+       QFrame * hline = new QFrame(this);
+       hline->setFrameShape(QFrame::HLine);
+       hline->setFrameShadow(QFrame::Sunken);
+
+       QFrame * hline2 = new QFrame(this);
+       hline2->setFrameShape(QFrame::HLine);
+       hline2->setFrameShadow(QFrame::Sunken);
+
+       QHBoxLayout * hbox2 = new QHBoxLayout;
+       QVBoxLayout * vbox2 = new QVBoxLayout;
+       QVBoxLayout * vbox3 = new QVBoxLayout;
+
+       vbox3->addWidget(vendorContact);
+//     vbox3->addWidget(vendorLevel);
+       vbox3->addLayout(hbox3);
+
+       vbox2->addWidget(vendorAddress);
+       vbox2->addWidget(gb1);
+
+       hbox2->addLayout(vbox2);
+       hbox2->addLayout(vbox3);
+       hbox2->addLayout(vbox5);
+
+       QVBoxLayout * mainLayout = new QVBoxLayout;
+       mainLayout->addWidget(username);
+       mainLayout->addWidget(hline);
+       mainLayout->addLayout(hbox1);
+       mainLayout->addLayout(hbox2);
+       mainLayout->addWidget(hline2);
+       mainLayout->addLayout(hbox6);
+       mainLayout->addWidget(purchaseOrders);
+       setLayout(mainLayout);
+}
+