birkeh 8 years ago
parent b2a6c9435d
commit ec3abf76f9

@ -30,7 +30,7 @@ QWidget* cPartListItemDelegate::createEditor( QWidget *parent, const QStyleOptio
QTextEdit* lpEdit = new QTextEdit(parent);
return(lpEdit);
}
case 2: // distributor
case 3: // distributor
{
cPartDistributorList* lpList = qvariant_cast<cPartDistributorList*>(index.data(Qt::UserRole+1));
QComboBox* lpComboBox = new QComboBox(parent);
@ -48,7 +48,7 @@ QWidget* cPartListItemDelegate::createEditor( QWidget *parent, const QStyleOptio
}
return(lpComboBox);
}
case 4: // price
case 5: // price
{
QDoubleSpinBox* lpSpinBox = new QDoubleSpinBox(parent);
lpSpinBox->setMinimum(0);
@ -56,7 +56,7 @@ QWidget* cPartListItemDelegate::createEditor( QWidget *parent, const QStyleOptio
lpSpinBox->setDecimals(2);
return(lpSpinBox);
}
case 5: // description
case 6: // description
return(QStyledItemDelegate::createEditor(parent, option, index));
default:
return(0);
@ -96,7 +96,7 @@ void cPartListItemDelegate::setEditorData ( QWidget *editor, const QModelIndex &
lpTextEdit->setText(list.join("\n"));
}
break;
case 2:
case 3:
{
QString currentText = index.data(Qt::EditRole).toString();
int cbIndex = lpComboBox->findText(currentText);
@ -130,18 +130,18 @@ void cPartListItemDelegate::setModelData ( QWidget *editor, QAbstractItemModel *
model->setData(index, list1.join(", "), Qt::EditRole);
}
break;
case 2:
case 3:
{
cPartDistributor* lpPartDistributor = qvariant_cast<cPartDistributor*>(lpComboBox->currentData());
model->setData(index, lpComboBox->currentText(), Qt::EditRole);
model->setData(index, QVariant::fromValue(lpPartDistributor), Qt::UserRole);
QStandardItemModel* lpModel = (QStandardItemModel*)index.model();
QStandardItem* lpItem = lpModel->itemFromIndex(lpModel->index(index.row(), 4));
lpItem->setText(QString::number(lpPartDistributor->price(), 'f', 2));
}
break;
case 4:
case 5:
if(lpSpinBox)
{
QStandardItemModel* lpModel = (QStandardItemModel*)index.model();

@ -3,7 +3,11 @@
cPartlistItemEditDialog::cPartlistItemEditDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::cPartlistItemEditDialog)
ui(new Ui::cPartlistItemEditDialog),
m_lpDistributorList(0),
m_lpPartGroupList(0),
m_lpPartList(0),
m_lpPartDistributorList(0)
{
ui->setupUi(this);
}
@ -12,3 +16,61 @@ cPartlistItemEditDialog::~cPartlistItemEditDialog()
{
delete ui;
}
void cPartlistItemEditDialog::setList(cDistributorList* lpDistributorList, cPartGroupList* lpPartGroupList, cPartList* lpPartList, cPartDistributorList* lpPartDistributorList)
{
m_lpDistributorList = lpDistributorList;
m_lpPartGroupList = lpPartGroupList;
m_lpPartList = lpPartList;
m_lpPartDistributorList = lpPartDistributorList;
if(m_lpPartList)
{
for(int x = 0;x < m_lpPartList->count();x++)
ui->m_lpPartList->addItem(QString("%1 - %2").arg(m_lpPartList->at(x)->partGroup()->name()).arg(m_lpPartList->at(x)->name()), QVariant::fromValue(m_lpPartList->at(x)));
}
fillDistributorList();
}
void cPartlistItemEditDialog::setValues(const QString &szReference, const QString &szGroup, const QString &szPart, const QString &szDistributor, const QString &szState, const qreal &dPrice, const QString &szDescription)
{
cDistributor* lpDistributor = m_lpDistributorList->find(szDistributor);
cPart* lpPart = m_lpPartList->find();
if(lpPart)
{
ui->m_lpPartList->setCurrentText(QString("%1 - %2").arg(szGroup).arg(szPart));
ui->m_lpPartList->setEnabled(false);
}
fillDistributorList();
// if(lpDistributor)
// ui->m_lpDistributorList->setCurrentText(lpDistributor->name());
}
void cPartlistItemEditDialog::on_m_lpPartList_currentIndexChanged(int /*index*/)
{
fillDistributorList();
}
void cPartlistItemEditDialog::fillDistributorList()
{
ui->m_lpDistributorList->clear();
if(m_lpDistributorList)
{
cPart* lpPart = qvariant_cast<cPart*>(ui->m_lpPartList->currentData());
if(lpPart)
{
ui->m_lpDistributorList->addItem("NONE");
for(int x = 0;x < m_lpPartDistributorList->count();x++)
{
if(lpPart->id() == m_lpPartDistributorList->at(x)->part()->id())
ui->m_lpDistributorList->addItem(m_lpPartDistributorList->at(x)->distributor()->name(), QVariant::fromValue(m_lpPartDistributorList->at(x)));
}
}
}
}

@ -1,8 +1,16 @@
#ifndef CPARTLISTITEMEDITDIALOG_H
#define CPARTLISTITEMEDITDIALOG_H
#include "cdistributor.h"
#include "cpartgroup.h"
#include "cpart.h"
#include "cpartdistributor.h"
#include "cpartlistitem.h"
#include <QDialog>
namespace Ui {
class cPartlistItemEditDialog;
}
@ -15,8 +23,19 @@ public:
explicit cPartlistItemEditDialog(QWidget *parent = 0);
~cPartlistItemEditDialog();
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);
private slots:
void on_m_lpPartList_currentIndexChanged(int index);
private:
Ui::cPartlistItemEditDialog *ui;
Ui::cPartlistItemEditDialog* ui;
cDistributorList* m_lpDistributorList;
cPartGroupList* m_lpPartGroupList;
cPartList* m_lpPartList;
cPartDistributorList* m_lpPartDistributorList;
void fillDistributorList();
};
#endif // CPARTLISTITEMEDITDIALOG_H

@ -1,42 +1,129 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<author/>
<comment/>
<exportmacro/>
<class>cPartlistItemEditDialog</class>
<widget name="cPartlistItemEditDialog" class="QDialog">
<widget class="QDialog" name="cPartlistItemEditDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
<width>500</width>
<height>350</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<widget name="buttonBox" class="QDialogButtonBox">
<property name="geometry">
<rect>
<x>30</x>
<y>240</y>
<width>341</width>
<height>32</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QGridLayout" name="gridLayout_4" columnstretch="0,1,0,1">
<item row="2" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Price:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QDoubleSpinBox" name="m_lpPrice"/>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Part:</string>
</property>
</widget>
</item>
<item row="3" 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="2" column="2">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Order state:</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Distributor:</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Replacement:</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QComboBox" name="m_lpOrderState"/>
</item>
<item row="0" column="1" colspan="3">
<widget class="QComboBox" name="m_lpPartList"/>
</item>
<item row="1" column="1" colspan="3">
<widget class="QComboBox" name="m_lpDistributorList"/>
</item>
<item row="4" column="2" colspan="2">
<widget class="QGroupBox" name="groupBox_2">
<property name="title">
<string>Description</string>
</property>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<widget class="QTextEdit" name="m_lpDescription"/>
</item>
</layout>
</widget>
</item>
<item row="4" column="0" colspan="2">
<widget class="QGroupBox" name="groupBox_3">
<property name="title">
<string>Reference</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QTextEdit" name="m_lpReference"/>
</item>
</layout>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QDialogButtonBox" name="m_lpButtonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<pixmapfunction/>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<sender>m_lpButtonBox</sender>
<signal>accepted()</signal>
<receiver>cPartlistItemEditDialog</receiver>
<slot>accept()</slot>
@ -52,7 +139,7 @@
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<sender>m_lpButtonBox</sender>
<signal>rejected()</signal>
<receiver>cPartlistItemEditDialog</receiver>
<slot>reject()</slot>

@ -2,6 +2,7 @@
#include "ui_cpartlistwindow.h"
#include "cpartlistitemdelegate.h"
#include "cpartlistitemeditdialog.h"
#include "common.h"
@ -213,7 +214,7 @@ void cPartlistWindow::showPartList()
m_lpPartListModel->clear();
QStringList header;
header << tr("reference") << tr("part") << tr("distributor") << tr("state") << tr("price") << tr("description");
header << tr("reference") << ("group") << tr("part") << tr("distributor") << tr("state") << tr("price") << tr("description");
m_lpPartListModel->setHorizontalHeaderLabels(header);
ui->m_lpPartList->header()->setMinimumSectionSize(50);
@ -226,12 +227,13 @@ void cPartlistWindow::showPartList()
lpItems.append(new QStandardItem);
lpItems.at(0)->setText(lpPartlistItem->reference());
lpItems.at(1)->setText(m_lpPartList->find(lpPartlistItem->partID())->name());
lpItems.at(1)->setText(m_lpPartList->find(lpPartlistItem->partID())->partGroup()->name());
lpItems.at(2)->setText(m_lpPartList->find(lpPartlistItem->partID())->name());
if(lpPartlistItem->distributorID())
lpItems.at(2)->setText(m_lpDistributorList->find(lpPartlistItem->distributorID())->name());
//lpItems.at(3)->setText(lpPartlistItem->state());
lpItems.at(4)->setText(QString::number(lpPartlistItem->price(), 'f', 2));
lpItems.at(5)->setText(lpPartlistItem->description());
lpItems.at(3)->setText(m_lpDistributorList->find(lpPartlistItem->distributorID())->name());
//lpItems.at(4)->setText(lpPartlistItem->state());
lpItems.at(5)->setText(QString::number(lpPartlistItem->price(), 'f', 2));
lpItems.at(6)->setText(lpPartlistItem->description());
lpItems.at(4)->setTextAlignment(Qt::AlignRight);
@ -315,6 +317,22 @@ void cPartlistWindow::onPartAdd()
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));
lpDialog->setValues(lpReferenceItem->text(), lpPartGroupItem->text(), lpPartItem->text(), lpDistributorItem->text(), lpStateItem->text(), lpPriceItem->text().toDouble(), lpDescriptionItem);
lpDialog->exec();
delete lpDialog;
}
void cPartlistWindow::onPartDelete()

Loading…
Cancel
Save