.
This commit is contained in:
@@ -11,6 +11,15 @@ cPartlistItemEditDialog::cPartlistItemEditDialog(QWidget *parent) :
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
m_lpReplacementModel = new QStandardItemModel(0, 3);
|
||||
ui->m_lpReplacement->setModel(m_lpReplacementModel);
|
||||
// ui->m_lpReplacement->setItemDelegate(new cPartListItemDelegate());
|
||||
|
||||
QStringList header;
|
||||
header << tr("reference") << ("group") << tr("part") << tr("distributor") << tr("state") << tr("price") << tr("description");
|
||||
m_lpReplacementModel->setHorizontalHeaderLabels(header);
|
||||
ui->m_lpReplacement->header()->setMinimumSectionSize(50);
|
||||
|
||||
ui->m_lpOrderState->addItem(cPartlistItem::stateString(cPartlistItem::STATE_init), QVariant::fromValue((qint8)cPartlistItem::STATE_init));
|
||||
ui->m_lpOrderState->addItem(cPartlistItem::stateString(cPartlistItem::STATE_ordered), QVariant::fromValue((qint8)cPartlistItem::STATE_ordered));
|
||||
ui->m_lpOrderState->addItem(cPartlistItem::stateString(cPartlistItem::STATE_shipping), QVariant::fromValue((qint8)cPartlistItem::STATE_shipping));
|
||||
@@ -59,6 +68,37 @@ void cPartlistItemEditDialog::setValues(const QString &szReference, const QStrin
|
||||
ui->m_lpDescription->setText(szDescription);
|
||||
}
|
||||
|
||||
void cPartlistItemEditDialog::addReplace(const QString& szReference, const QString& szGroup, const QString& szPart, const QString& szDistributor, const QString& szState, const qreal& dPrice, const QString& szDescription)
|
||||
{
|
||||
QList<QStandardItem*> lpItems;
|
||||
|
||||
for(int z = 0;z < m_lpReplacementModel->columnCount();z++)
|
||||
lpItems.append(new QStandardItem);
|
||||
|
||||
lpItems.at(0)->setText(szReference);
|
||||
lpItems.at(1)->setText(szGroup);
|
||||
lpItems.at(2)->setText(szPart);
|
||||
//lpItems.at(2)->setData(lpPartlistItem->partID(), Qt::UserRole);
|
||||
if(!szDistributor.isEmpty())
|
||||
{
|
||||
lpItems.at(3)->setText(szDistributor);
|
||||
//lpItems.at(3)->setData(QVariant::fromValue(lpPartlistItem->distributorID()), Qt::UserRole);
|
||||
}
|
||||
lpItems.at(4)->setText(szState);
|
||||
lpItems.at(5)->setText(QString::number(dPrice, 'f', 2));
|
||||
lpItems.at(5)->setTextAlignment(Qt::AlignRight);
|
||||
lpItems.at(6)->setText(szDescription);
|
||||
|
||||
// for(int z = 0;z < m_lpPartListModel->columnCount();z++)
|
||||
// {
|
||||
// lpItems.at(z)->setData(QVariant::fromValue(lpPartlistItem), Qt::UserRole);
|
||||
// lpItems.at(z)->setData(QVariant::fromValue(lpPartlistItem->partID()), Qt::UserRole+1);
|
||||
// lpItems.at(z)->setData(QVariant::fromValue(m_lpPartDistributorList), Qt::UserRole+2);
|
||||
// }
|
||||
|
||||
m_lpReplacementModel->appendRow(lpItems);
|
||||
}
|
||||
|
||||
void cPartlistItemEditDialog::on_m_lpGroupList_currentIndexChanged(int /*index*/)
|
||||
{
|
||||
fillPartList();
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "cpartlistitem.h"
|
||||
|
||||
#include <QDialog>
|
||||
#include <QStandardItemModel>
|
||||
|
||||
|
||||
namespace Ui {
|
||||
@@ -25,6 +26,7 @@ public:
|
||||
|
||||
void setList(cDistributorList* lpDistributorList, cPartGroupList* lpPartGroupList, cPartList* lpPartList, cPartDistributorList* lpPartDistributorList);
|
||||
void setValues(const QString& szReference, const QString& szGroup, const QString& szPart, const QString& szDistributor, const QString& szState, const qreal& dPrice, const QString& szDescription);
|
||||
void addReplace(const QString& szReference, const QString& szGroup, const QString& szPart, const QString& szDistributor, const QString& szState, const qreal& dPrice, const QString& szDescription);
|
||||
|
||||
QString reference();
|
||||
cPart* part();
|
||||
@@ -39,6 +41,7 @@ private slots:
|
||||
|
||||
private:
|
||||
Ui::cPartlistItemEditDialog* ui;
|
||||
QStandardItemModel* m_lpReplacementModel;
|
||||
cDistributorList* m_lpDistributorList;
|
||||
cPartGroupList* m_lpPartGroupList;
|
||||
cPartList* m_lpPartList;
|
||||
|
||||
@@ -46,18 +46,6 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1" colspan="3">
|
||||
<widget class="QTreeWidget" name="m_lpReplacement">
|
||||
<attribute name="headerVisible">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string notr="true">1</string>
|
||||
</property>
|
||||
</column>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="3">
|
||||
<widget class="QComboBox" name="m_lpOrderState"/>
|
||||
</item>
|
||||
@@ -118,6 +106,13 @@
|
||||
<item row="0" column="1" colspan="3">
|
||||
<widget class="QComboBox" name="m_lpGroupList"/>
|
||||
</item>
|
||||
<item row="4" column="1" colspan="3">
|
||||
<widget class="QTreeView" name="m_lpReplacement">
|
||||
<attribute name="headerDefaultSectionSize">
|
||||
<number>0</number>
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
|
||||
+116
-34
@@ -220,37 +220,79 @@ void cPartlistWindow::showPartList()
|
||||
|
||||
for(int x = 0;x < m_partlistItemList.count();x++)
|
||||
{
|
||||
QList<QStandardItem*> lpItems;
|
||||
cPartlistItem* lpPartlistItem = m_partlistItemList.at(x);
|
||||
|
||||
for(int z = 0;z < header.count();z++)
|
||||
lpItems.append(new QStandardItem);
|
||||
if(!lpPartlistItem->replaceID())
|
||||
addItem(lpPartlistItem);
|
||||
}
|
||||
|
||||
lpItems.at(0)->setText(lpPartlistItem->reference());
|
||||
lpItems.at(1)->setText(m_lpPartList->find(lpPartlistItem->partID())->partGroup()->name());
|
||||
lpItems.at(2)->setText(m_lpPartList->find(lpPartlistItem->partID())->name());
|
||||
lpItems.at(2)->setData(lpPartlistItem->partID(), Qt::UserRole);
|
||||
if(lpPartlistItem->distributorID())
|
||||
for(int x = 0;x < m_partlistItemList.count();x++)
|
||||
{
|
||||
cPartlistItem* lpPartlistItem = m_partlistItemList.at(x);
|
||||
|
||||
if(lpPartlistItem->replaceID())
|
||||
{
|
||||
lpItems.at(3)->setText(m_lpDistributorList->find(lpPartlistItem->distributorID())->name());
|
||||
lpItems.at(3)->setData(QVariant::fromValue(lpPartlistItem->distributorID()), Qt::UserRole);
|
||||
QStandardItem* lpRoot = findItem(lpPartlistItem->replaceID());
|
||||
if(lpRoot)
|
||||
addItem(lpPartlistItem, lpRoot);
|
||||
}
|
||||
lpItems.at(4)->setText(lpPartlistItem->stateString());
|
||||
lpItems.at(5)->setText(QString::number(lpPartlistItem->price(), 'f', 2));
|
||||
lpItems.at(5)->setTextAlignment(Qt::AlignRight);
|
||||
lpItems.at(6)->setText(lpPartlistItem->description());
|
||||
|
||||
for(int z = 0;z < header.count();z++)
|
||||
{
|
||||
lpItems.at(z)->setData(QVariant::fromValue(lpPartlistItem->partID()), Qt::UserRole+1);
|
||||
lpItems.at(z)->setData(QVariant::fromValue(m_lpPartDistributorList), Qt::UserRole+2);
|
||||
}
|
||||
|
||||
m_lpPartListModel->appendRow(lpItems);
|
||||
}
|
||||
|
||||
for(int z = 0;z < header.count();z++)
|
||||
ui->m_lpPartList->resizeColumnToContents(z);
|
||||
|
||||
ui->m_lpPartList->sortByColumn(1, Qt::AscendingOrder);
|
||||
}
|
||||
|
||||
QStandardItem* cPartlistWindow::findItem(qint32 itemID)
|
||||
{
|
||||
for(int z = 0;z < m_lpPartListModel->rowCount();z++)
|
||||
{
|
||||
QStandardItem* lpItem = m_lpPartListModel->itemFromIndex(m_lpPartListModel->index(z, 0));
|
||||
if(!lpItem)
|
||||
return(0);
|
||||
|
||||
cPartlistItem* lpPartlistItem = qvariant_cast<cPartlistItem*>(lpItem->data(Qt::UserRole));
|
||||
if(!lpPartlistItem)
|
||||
return(0);
|
||||
|
||||
if(lpPartlistItem->id() == itemID)
|
||||
return(lpItem);
|
||||
}
|
||||
}
|
||||
|
||||
void cPartlistWindow::addItem(cPartlistItem* lpPartlistItem, QStandardItem *lpRoot)
|
||||
{
|
||||
QList<QStandardItem*> lpItems;
|
||||
|
||||
for(int z = 0;z < m_lpPartListModel->columnCount();z++)
|
||||
lpItems.append(new QStandardItem);
|
||||
|
||||
lpItems.at(0)->setText(lpPartlistItem->reference());
|
||||
lpItems.at(1)->setText(m_lpPartList->find(lpPartlistItem->partID())->partGroup()->name());
|
||||
lpItems.at(2)->setText(m_lpPartList->find(lpPartlistItem->partID())->name());
|
||||
lpItems.at(2)->setData(lpPartlistItem->partID(), Qt::UserRole);
|
||||
if(lpPartlistItem->distributorID())
|
||||
{
|
||||
lpItems.at(3)->setText(m_lpDistributorList->find(lpPartlistItem->distributorID())->name());
|
||||
lpItems.at(3)->setData(QVariant::fromValue(lpPartlistItem->distributorID()), Qt::UserRole);
|
||||
}
|
||||
lpItems.at(4)->setText(lpPartlistItem->stateString());
|
||||
lpItems.at(5)->setText(QString::number(lpPartlistItem->price(), 'f', 2));
|
||||
lpItems.at(5)->setTextAlignment(Qt::AlignRight);
|
||||
lpItems.at(6)->setText(lpPartlistItem->description());
|
||||
|
||||
for(int z = 0;z < m_lpPartListModel->columnCount();z++)
|
||||
{
|
||||
lpItems.at(z)->setData(QVariant::fromValue(lpPartlistItem), Qt::UserRole);
|
||||
lpItems.at(z)->setData(QVariant::fromValue(lpPartlistItem->partID()), Qt::UserRole+1);
|
||||
lpItems.at(z)->setData(QVariant::fromValue(m_lpPartDistributorList), Qt::UserRole+2);
|
||||
}
|
||||
|
||||
if(lpRoot)
|
||||
lpRoot->appendRow(lpItems);
|
||||
else
|
||||
m_lpPartListModel->appendRow(lpItems);
|
||||
}
|
||||
|
||||
bool cPartlistWindow::save(qint32 id)
|
||||
@@ -323,10 +365,10 @@ bool cPartlistWindow::somethingSelected()
|
||||
return(false);
|
||||
}
|
||||
|
||||
void cPartlistWindow::on_m_lpPartList_doubleClicked(const QModelIndex &/*index*/)
|
||||
{
|
||||
onPartEdit();
|
||||
}
|
||||
//void cPartlistWindow::on_m_lpPartList_doubleClicked(const QModelIndex &/*index*/)
|
||||
//{
|
||||
// onPartEdit();
|
||||
//}
|
||||
|
||||
void cPartlistWindow::on_m_lpPartList_clicked(const QModelIndex &index)
|
||||
{
|
||||
@@ -403,16 +445,56 @@ void cPartlistWindow::onPartEdit()
|
||||
cPartlistItemEditDialog* lpDialog = new cPartlistItemEditDialog(this);
|
||||
lpDialog->setList(m_lpDistributorList, m_lpPartGroupList, m_lpPartList, m_lpPartDistributorList);
|
||||
|
||||
QModelIndex index = ui->m_lpPartList->currentIndex();
|
||||
QStandardItem* lpReferenceItem = m_lpPartListModel->itemFromIndex(m_lpPartListModel->index(index.row(), 0));
|
||||
QStandardItem* lpPartGroupItem = m_lpPartListModel->itemFromIndex(m_lpPartListModel->index(index.row(), 1));
|
||||
QStandardItem* lpPartItem = m_lpPartListModel->itemFromIndex(m_lpPartListModel->index(index.row(), 2));
|
||||
QStandardItem* lpDistributorItem = m_lpPartListModel->itemFromIndex(m_lpPartListModel->index(index.row(), 3));
|
||||
QStandardItem* lpStateItem = m_lpPartListModel->itemFromIndex(m_lpPartListModel->index(index.row(), 4));
|
||||
QStandardItem* lpPriceItem = m_lpPartListModel->itemFromIndex(m_lpPartListModel->index(index.row(), 5));
|
||||
QStandardItem* lpDescriptionItem = m_lpPartListModel->itemFromIndex(m_lpPartListModel->index(index.row(), 6));
|
||||
QModelIndex index = ui->m_lpPartList->currentIndex();
|
||||
QStandardItem* lpItem = m_lpPartListModel->itemFromIndex(index);
|
||||
|
||||
QStandardItem* lpReferenceItem;
|
||||
QStandardItem* lpPartGroupItem;
|
||||
QStandardItem* lpPartItem;
|
||||
QStandardItem* lpDistributorItem;
|
||||
QStandardItem* lpStateItem;
|
||||
QStandardItem* lpPriceItem;
|
||||
QStandardItem* lpDescriptionItem;
|
||||
|
||||
if(lpItem->parent())
|
||||
{
|
||||
QStandardItem* lpParent = lpItem->parent();
|
||||
lpReferenceItem = lpParent->child(index.row(), 0);
|
||||
lpPartGroupItem = lpParent->child(index.row(), 1);
|
||||
lpPartItem = lpParent->child(index.row(), 2);
|
||||
lpDistributorItem = lpParent->child(index.row(), 3);
|
||||
lpStateItem = lpParent->child(index.row(), 4);
|
||||
lpPriceItem = lpParent->child(index.row(), 5);
|
||||
lpDescriptionItem = lpParent->child(index.row(), 6);
|
||||
}
|
||||
else
|
||||
{
|
||||
lpReferenceItem = m_lpPartListModel->itemFromIndex(index.model()->index(index.row(), 0));
|
||||
lpPartGroupItem = m_lpPartListModel->itemFromIndex(index.model()->index(index.row(), 1));
|
||||
lpPartItem = m_lpPartListModel->itemFromIndex(index.model()->index(index.row(), 2));
|
||||
lpDistributorItem = m_lpPartListModel->itemFromIndex(index.model()->index(index.row(), 3));
|
||||
lpStateItem = m_lpPartListModel->itemFromIndex(index.model()->index(index.row(), 4));
|
||||
lpPriceItem = m_lpPartListModel->itemFromIndex(index.model()->index(index.row(), 5));
|
||||
lpDescriptionItem = m_lpPartListModel->itemFromIndex(index.model()->index(index.row(), 6));
|
||||
}
|
||||
|
||||
lpDialog->setValues(lpReferenceItem->text(), lpPartGroupItem->text(), lpPartItem->text(), lpDistributorItem->text(), lpStateItem->text(), lpPriceItem->text().toDouble(), lpDescriptionItem->text());
|
||||
|
||||
if(!lpItem->parent())
|
||||
{
|
||||
for(int x = 0;x < lpItem->rowCount();x++)
|
||||
{
|
||||
lpReferenceItem = lpItem->child(x, 0);
|
||||
lpPartGroupItem = lpItem->child(x, 1);
|
||||
lpPartItem = lpItem->child(x, 2);
|
||||
lpDistributorItem = lpItem->child(x, 3);
|
||||
lpStateItem = lpItem->child(x, 4);
|
||||
lpPriceItem = lpItem->child(x, 5);
|
||||
lpDescriptionItem = lpItem->child(x, 6);
|
||||
lpDialog->addReplace(lpReferenceItem->text(), lpPartGroupItem->text(), lpPartItem->text(), lpDistributorItem->text(), lpStateItem->text(), lpPriceItem->text().toDouble(), lpDescriptionItem->text());
|
||||
}
|
||||
}
|
||||
|
||||
if(lpDialog->exec() == QDialog::Rejected)
|
||||
{
|
||||
delete lpDialog;
|
||||
|
||||
+3
-1
@@ -42,7 +42,7 @@ public:
|
||||
bool somethingSelected();
|
||||
private slots:
|
||||
void on_m_lpName_textChanged(const QString &arg1);
|
||||
void on_m_lpPartList_doubleClicked(const QModelIndex &index);
|
||||
// void on_m_lpPartList_doubleClicked(const QModelIndex &index);
|
||||
void on_m_lpPartList_clicked(const QModelIndex &index);
|
||||
void on_m_lpPartList_customContextMenuRequested(const QPoint &pos);
|
||||
|
||||
@@ -69,6 +69,8 @@ private:
|
||||
cPartlistItemList m_partlistItemList;
|
||||
|
||||
void showPartList();
|
||||
void addItem(cPartlistItem* lpPartlistItem, QStandardItem* lpRoot = 0);
|
||||
QStandardItem* findItem(qint32 itemID);
|
||||
|
||||
bool save(qint32 id);
|
||||
};
|
||||
|
||||
+7
-1
@@ -98,7 +98,13 @@
|
||||
<enum>Qt::CustomContextMenu</enum>
|
||||
</property>
|
||||
<property name="editTriggers">
|
||||
<set>QAbstractItemView::EditKeyPressed</set>
|
||||
<set>QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed</set>
|
||||
</property>
|
||||
<property name="alternatingRowColors">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="sortingEnabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
||||
Reference in New Issue
Block a user