You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			103 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			C++
		
	
			
		
		
	
	
			103 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			C++
		
	
#include "receiptsaveform.h"
 | 
						|
#include "ui_receiptsaveform.h"
 | 
						|
 | 
						|
#include <QList>
 | 
						|
#include <QCompleter>
 | 
						|
#include <QSortFilterProxyModel>
 | 
						|
#include <QPushButton>
 | 
						|
 | 
						|
#include <service.h>
 | 
						|
#include <iplugin.h>
 | 
						|
#include <addressbookservice.h>
 | 
						|
#include <addressbookdata.h>
 | 
						|
 | 
						|
#include "data/voucher.h"
 | 
						|
#include "shopservice.h"
 | 
						|
#include "shop-odb.hxx"
 | 
						|
 | 
						|
ReceiptSaveForm::ReceiptSaveForm(QSharedPointer<Voucher> voucher, QWidget *parent) :
 | 
						|
    QDialog(parent),
 | 
						|
    ui(new Ui::ReceiptSaveForm)
 | 
						|
{
 | 
						|
    ui->setupUi(this);
 | 
						|
 | 
						|
    m_voucherModel = new AutoTableModel<Voucher>(this);
 | 
						|
    Service<Voucher> srv;
 | 
						|
    m_voucherModel->setData(srv.all(QString("status = %1").arg(QString::number(Voucher::NOT_PAID))));
 | 
						|
    m_voucherModel->setTranslations(Context::instance().plugin("SHOP")->translations());
 | 
						|
    ui->tabVouchers->setModel(m_voucherModel);
 | 
						|
    ui->tabVouchers->hideColumn(3);
 | 
						|
    ui->tabVouchers->hideColumn(4);
 | 
						|
    ui->tabVouchers->hideColumn(5);
 | 
						|
    ui->tabVouchers->hideColumn(6);
 | 
						|
    ui->tabVouchers->hideColumn(7);
 | 
						|
    ui->tabVouchers->hideColumn(8);
 | 
						|
    ui->tabVouchers->hideColumn(10);
 | 
						|
    ui->tabVouchers->horizontalHeader()->setSectionResizeMode(1, QHeaderView::Stretch);
 | 
						|
    ui->tabVouchers->setColumnWidth(0, 190);
 | 
						|
    ui->tabVouchers->setColumnWidth(2, 200);
 | 
						|
 | 
						|
    connect(ui->tabVouchers->selectionModel(), &QItemSelectionModel::currentRowChanged, [this](QModelIndex, QModelIndex){
 | 
						|
        ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true);
 | 
						|
    });
 | 
						|
 | 
						|
    connect(ui->name, &QLineEdit::textChanged, [this](QString text){
 | 
						|
        ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(!text.isEmpty());
 | 
						|
    });
 | 
						|
 | 
						|
    m_binder.setData(new Voucher);
 | 
						|
    AddressBookService srvAdb;
 | 
						|
    m_binder.registerBinding(ui->contact, ComboData::createComboData(srvAdb.all()));
 | 
						|
    m_binder.registerBinding(ui->name);
 | 
						|
    m_binder.registerBinding(ui->description);
 | 
						|
    m_binder.bindToUi();
 | 
						|
 | 
						|
    ui->contact->completer()->setCompletionMode(QCompleter::PopupCompletion);
 | 
						|
    ui->contact->setCurrentIndex(-1);
 | 
						|
 | 
						|
    m_saveAsNew = false;
 | 
						|
    ui->groupBox_2->setEnabled(false);
 | 
						|
 | 
						|
    ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
 | 
						|
}
 | 
						|
 | 
						|
ReceiptSaveForm::~ReceiptSaveForm()
 | 
						|
{
 | 
						|
    delete ui;
 | 
						|
}
 | 
						|
 | 
						|
void ReceiptSaveForm::on_lineEdit_textChanged(const QString &text)
 | 
						|
{
 | 
						|
    QSortFilterProxyModel proxy;
 | 
						|
    proxy.setSourceModel(m_voucherModel);
 | 
						|
    proxy.setFilterKeyColumn(0);
 | 
						|
    proxy.setFilterFixedString(text);
 | 
						|
 | 
						|
    QModelIndex matchingIndex = proxy.mapToSource(proxy.index(0,0));
 | 
						|
    if(matchingIndex.isValid()){
 | 
						|
        ui->tabVouchers->scrollTo(matchingIndex,QAbstractItemView::EnsureVisible);
 | 
						|
        ui->tabVouchers->setCurrentIndex(matchingIndex);
 | 
						|
        ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true);
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
void ReceiptSaveForm::on_radioAdd_toggled(bool checked)
 | 
						|
{
 | 
						|
    if (checked)
 | 
						|
    {
 | 
						|
        m_saveAsNew = false;
 | 
						|
        ui->groupBox_2->setEnabled(false);
 | 
						|
        ui->groupBox->setEnabled(true);
 | 
						|
 | 
						|
        ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(ui->tabVouchers->currentIndex().isValid());
 | 
						|
    }
 | 
						|
    else
 | 
						|
    {
 | 
						|
        m_saveAsNew = true;
 | 
						|
        ui->groupBox_2->setEnabled(true);
 | 
						|
        ui->groupBox->setEnabled(false);
 | 
						|
 | 
						|
        ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(!ui->name->text().isEmpty());
 | 
						|
    }
 | 
						|
}
 |