@@ -4,7 +4,11 @@
|
||||
#include <settingsservice.h>
|
||||
#include <combodata.h>
|
||||
#include <QFileDialog>
|
||||
#include <QDragEnterEvent>
|
||||
#include <QDebug>
|
||||
#include "shopservice.h"
|
||||
#include "shop-odb.hxx"
|
||||
|
||||
|
||||
ShopSettingsForm::ShopSettingsForm(QWidget *parent) :
|
||||
FormBinder<ShopSettings>(parent),
|
||||
@@ -27,7 +31,13 @@ ShopSettingsForm::ShopSettingsForm(QWidget *parent) :
|
||||
registerBinding(ui->eetTest);
|
||||
registerBinding(ui->eetPlayground);
|
||||
|
||||
registerBinding(ui->favBtnCols);
|
||||
registerBinding(ui->favBtnRows);
|
||||
registerBinding(ui->favBtnSize);
|
||||
|
||||
m_itemModel = new AutoTableModel<ShopItem>();
|
||||
|
||||
|
||||
}
|
||||
|
||||
ShopSettingsForm::~ShopSettingsForm()
|
||||
@@ -35,6 +45,51 @@ ShopSettingsForm::~ShopSettingsForm()
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void ShopSettingsForm::drawButtons()
|
||||
{
|
||||
foreach (QWidget *child, ui->btnWidget->findChildren<QWidget*>()) {
|
||||
delete child;
|
||||
}
|
||||
|
||||
for (int i = 0; i < entity()->favBtnRows(); i++)
|
||||
{
|
||||
for (int j = 0; j < entity()->favBtnCols(); j++)
|
||||
{
|
||||
FavButton *btn = new FavButton(ui->btnWidget);
|
||||
btn->setObjectName(QString::number(i) + "_" + QString::number(j));
|
||||
btn->setAcceptDrops(true);
|
||||
|
||||
if (m_btnMap[btn->objectName()] != NULL)
|
||||
{
|
||||
btn->setText(m_btnMap[btn->objectName()]->name());
|
||||
}
|
||||
|
||||
if (entity()->favBtnSize() > 0)
|
||||
{
|
||||
btn->setMinimumHeight(entity()->favBtnSize());
|
||||
btn->setMinimumWidth(entity()->favBtnSize());
|
||||
}
|
||||
((QGridLayout*)ui->btnWidget->layout())->addWidget(btn, i, j);
|
||||
|
||||
connect(btn, &FavButton::clicked, [this, btn](bool){
|
||||
btn->setText("");
|
||||
m_btnMap.remove(btn->objectName());
|
||||
});
|
||||
|
||||
connect(btn, &FavButton::itemDropped, [this, btn](){
|
||||
ShopItemPtr item = m_itemModel->itemFromIndex(ui->tableItems->currentIndex());
|
||||
FavoritItemPtr favItem = QSharedPointer<FavoritItem>(new FavoritItem);
|
||||
favItem->setFavButtonName(btn->objectName());
|
||||
favItem->setName(item->name());
|
||||
favItem->setRefId(item->id());
|
||||
favItem->setPluginId(item->pluginId());
|
||||
m_btnMap[btn->objectName()] = favItem;
|
||||
btn->setText(item->name());
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ShopSettingsForm::loadEntity()
|
||||
{
|
||||
SettingsService srv("SHOP");
|
||||
@@ -43,7 +98,18 @@ void ShopSettingsForm::loadEntity()
|
||||
|
||||
ShopService srvShop;
|
||||
m_itemModel->setData(srvShop.allSellableItems());
|
||||
m_itemModel->setTranslations(Context::instance().plugin("SHOP")->translations());
|
||||
ui->tableItems->setModel(m_itemModel);
|
||||
ui->tableItems->horizontalHeader()->setSectionResizeMode(1, QHeaderView::Stretch);
|
||||
ui->tableItems->setColumnHidden(0, true);
|
||||
ui->tableItems->setColumnHidden(3, true);
|
||||
|
||||
Service<FavoritItem> srvFav;
|
||||
|
||||
foreach (FavoritItemPtr favItem, srvFav.all()) {
|
||||
m_btnMap[favItem->favButtonName()] = favItem;
|
||||
}
|
||||
drawButtons();
|
||||
}
|
||||
|
||||
bool ShopSettingsForm::saveRecord()
|
||||
@@ -52,6 +118,18 @@ bool ShopSettingsForm::saveRecord()
|
||||
SettingsService srv("SHOP");
|
||||
srv.saveSettings(entity());
|
||||
|
||||
Service<FavoritItem> srvFav;
|
||||
foreach (FavoritItemPtr item, srvFav.all()) {
|
||||
srvFav.erase(item);
|
||||
}
|
||||
|
||||
foreach (QString btnName, m_btnMap.keys()) {
|
||||
if (m_btnMap[btnName] != NULL)
|
||||
{
|
||||
srvFav.save(m_btnMap[btnName]);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -64,3 +142,35 @@ void ShopSettingsForm::on_btnCertBrowse_clicked()
|
||||
ui->eetCertificate->setText(certFile);
|
||||
}
|
||||
}
|
||||
|
||||
void ShopSettingsForm::on_favBtnCols_textChanged(const QString &arg1)
|
||||
{
|
||||
entity()->setFavBtnCols(arg1.toInt());
|
||||
drawButtons();
|
||||
}
|
||||
|
||||
void ShopSettingsForm::on_favBtnRows_textChanged(const QString &arg1)
|
||||
{
|
||||
entity()->setFavBtnRows(arg1.toInt());
|
||||
drawButtons();
|
||||
}
|
||||
|
||||
void ShopSettingsForm::on_favBtnSize_textChanged(const QString &arg1)
|
||||
{
|
||||
entity()->setFavBtnSize(arg1.toInt());
|
||||
drawButtons();
|
||||
}
|
||||
|
||||
FavButton::FavButton(QWidget *parent) : QToolButton(parent)
|
||||
{
|
||||
}
|
||||
|
||||
void FavButton::dragEnterEvent(QDragEnterEvent *event)
|
||||
{
|
||||
event->acceptProposedAction();
|
||||
}
|
||||
|
||||
void FavButton::dropEvent(QDropEvent *)
|
||||
{
|
||||
emit itemDropped();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user