2 // scmwidget.cpp - Main widget container
5 // (C) 2012 Underground Software
7 // JLH = James Hammons <jlhamm@acm.org>
10 // --- ---------- -------------------------------------------------------------
11 // JLH 09/24/2012 Created this file
14 #include "scmwidget.h"
15 #include "addresswidget.h"
16 #include "contactwidget.h"
19 SCMWidget::SCMWidget(QWidget * parent/*= 0*/): QWidget(parent),
20 purchaseOrders(new QTreeView),
21 vendorName(new QLabel),
22 ndaSigned(new QLabel),
23 vendorAddress(new QTabWidget),
24 vendorContact(new QTabWidget),
25 vendorClass(new QListWidget),
27 vendorLevel(new VendorLevelWidget),
28 alerts(new QListWidget),
29 notes(new QListWidget),
30 nextVendorButton(new QToolButton),
31 previousVendorButton(new QToolButton),
32 editVendor(new QPushButton("Edit Vendor")),
33 addVendor(new QPushButton("Add Vendor")),
34 addLocation(new QPushButton("Add Location")),
35 addContact(new QPushButton("Add Contact")),
36 createAlert(new QPushButton("Create")),
37 createNote(new QPushButton("Create")),
38 showOpen(new QPushButton("Open")),
39 showClosed(new QPushButton("Closed")),
40 showAll(new QPushButton("All")),
41 createPO(new QPushButton("Create"))
43 // Create main page widgets & layout
45 purchaseOrders->setRootIsDecorated(false);
46 purchaseOrders->setAlternatingRowColors(true);
48 QAbstractItemModel * model = new QStandardItemModel(0, 7);
49 model->setHeaderData(0, Qt::Horizontal, tr("PO #"));
50 model->setHeaderData(1, Qt::Horizontal, tr("Vendor"));
51 model->setHeaderData(2, Qt::Horizontal, tr("Desc."));
52 model->setHeaderData(3, Qt::Horizontal, tr("OAD"));
53 model->setHeaderData(4, Qt::Horizontal, tr("UAD"));
54 model->setHeaderData(5, Qt::Horizontal, tr("Docs"));
55 model->setHeaderData(6, Qt::Horizontal, tr("FAI"));
58 model->setData(model->index(0, 0), "FE823724");
59 model->setData(model->index(0, 1), "Sanford & Sons");
60 model->setData(model->index(0, 2), "Misc. Junk");
61 model->setData(model->index(0, 3), "09/30/2012");
62 model->setData(model->index(0, 4), "");
63 model->setData(model->index(0, 5), "");
64 model->setData(model->index(0, 6), "");
67 model->setData(model->index(0, 0), "89237923-123");
68 model->setData(model->index(0, 1), "Digikey");
69 model->setData(model->index(0, 2), "Small capacitors");
70 model->setData(model->index(0, 3), "10/08/2012");
71 model->setData(model->index(0, 4), "11/30/2012");
72 model->setData(model->index(0, 5), "1");
73 model->setData(model->index(0, 6), "Yes");
76 model->setData(model->index(0, 0), "T9234CS32");
77 model->setData(model->index(0, 1), "Big, Faceless Company");
78 model->setData(model->index(0, 2), "Important Stuff you need RIGHT NOW");
79 model->setData(model->index(0, 3), "09/28/2012");
80 model->setData(model->index(0, 4), "09/29/2012");
81 model->setData(model->index(0, 5), "5");
82 model->setData(model->index(0, 6), "Yes");
84 purchaseOrders->setModel(model);
86 nextVendorButton->setArrowType(Qt::RightArrow);
87 nextVendorButton->setToolTip(tr("Move to next Vendor in Database."));
88 previousVendorButton->setArrowType(Qt::LeftArrow);
89 previousVendorButton->setToolTip(tr("Move to previous Vendor in Database."));
91 QFont * vendorFont = new QFont;
92 vendorFont->setPointSize(12);
93 vendorName->setFont(*vendorFont);
94 vendorName->setText("Vendor Name");
96 QHBoxLayout * hbox1 = new QHBoxLayout;
97 hbox1->addWidget(previousVendorButton);
98 hbox1->addWidget(nextVendorButton);
99 hbox1->addWidget(vendorName);
101 // Vendor address widgets
103 AddressWidget * vaw1 = new AddressWidget(this);
104 vaw1->SetFields("123 Any Street", "Any City", "Anywhere", "USA", "01234");
105 vendorAddress->addTab(vaw1, tr("Primary"));
106 vendorAddress->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum);
108 // Vendor contact widgets
110 ContactWidget * vcw1 = new ContactWidget(this);
111 vcw1->SetFields("Sales", "Joe Blow", "joe.blow@widget.com", "Singapore", "512-222-2222", "", "512-122-2123");
112 vendorContact->addTab(vcw1, tr("Contact #1"));
113 vendorContact->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum);
117 QVBoxLayout * vbox1 = new QVBoxLayout;
118 vbox1->addWidget(vendorClass);
119 QGroupBox * gb1 = new QGroupBox(tr("Vendor Classes"));
120 gb1->setLayout(vbox1);
122 // Vendor action push buttons
124 QVBoxLayout * vbox4 = new QVBoxLayout;
125 QHBoxLayout * hbox3 = new QHBoxLayout;
126 QGroupBox * gb2 = new QGroupBox(tr("Vendor Actions"));
128 vbox4->addWidget(editVendor);
129 vbox4->addWidget(addVendor);
130 vbox4->addWidget(addLocation);
131 vbox4->addWidget(addContact);
132 gb2->setLayout(vbox4);
134 hbox3->addWidget(vendorLevel);
135 hbox3->addWidget(gb2);
139 QVBoxLayout * vbox5 = new QVBoxLayout;
140 QHBoxLayout * hbox4 = new QHBoxLayout;
141 QHBoxLayout * hbox5 = new QHBoxLayout;
143 QLabel * label1 = new QLabel(tr("Alerts"));
144 QLabel * label2 = new QLabel(tr("Notes"));
145 hbox4->addWidget(label1);
147 hbox4->addWidget(createAlert);
148 hbox5->addWidget(label2);
150 hbox5->addWidget(createNote);
152 vbox5->addLayout(hbox4);
153 vbox5->addWidget(alerts);
154 vbox5->addLayout(hbox5);
155 vbox5->addWidget(notes);
157 // Purchase Order headers
159 QHBoxLayout * hbox6 = new QHBoxLayout;
160 QLabel * label3 = new QLabel(tr("Purchase Orders"));
161 hbox6->addWidget(label3);
162 hbox6->addSpacing(32);
163 hbox6->addWidget(showOpen);
164 hbox6->addWidget(showClosed);
165 hbox6->addWidget(showAll);
167 hbox6->addWidget(createPO);
171 QFrame * hline = new QFrame(this);
172 hline->setFrameShape(QFrame::HLine);
173 hline->setFrameShadow(QFrame::Sunken);
175 QFrame * hline2 = new QFrame(this);
176 hline2->setFrameShape(QFrame::HLine);
177 hline2->setFrameShadow(QFrame::Sunken);
179 QHBoxLayout * hbox2 = new QHBoxLayout;
180 QVBoxLayout * vbox2 = new QVBoxLayout;
181 QVBoxLayout * vbox3 = new QVBoxLayout;
183 vbox3->addWidget(vendorContact);
184 // vbox3->addWidget(vendorLevel);
185 vbox3->addLayout(hbox3);
187 vbox2->addWidget(vendorAddress);
188 vbox2->addWidget(gb1);
190 hbox2->addLayout(vbox2);
191 hbox2->addLayout(vbox3);
192 hbox2->addLayout(vbox5);
194 QVBoxLayout * mainLayout = new QVBoxLayout;
195 mainLayout->addWidget(username);
196 mainLayout->addWidget(hline);
197 mainLayout->addLayout(hbox1);
198 mainLayout->addLayout(hbox2);
199 mainLayout->addWidget(hline2);
200 mainLayout->addLayout(hbox6);
201 mainLayout->addWidget(purchaseOrders);
202 setLayout(mainLayout);