Esempio n. 1
0
void MaterialSelectionModel::deleteMaterial()
{
    NQLog("MaterialSelectionModel", NQLog::Spam) << "void deleteMaterial()";

    emit deleteMaterial(Selection_);
    setSelection(0);
}
listMaterialDialog::listMaterialDialog(QWidget *parent, databaseFile *dbFileTransfer, QString skillName, int courseId)
    : QDialog(parent)
{
	isChanged = false;
	dbFile    = dbFileTransfer;
	QList< QMap<QString,QString> > skMaList = dbFile->skillMaterialList;
	
	label     = new QLabel(tr("List  of Material ")+skillName);
	view      = new QTableView;
	model     = new QStandardItemModel(this);
	view->setModel(model);
	model->setColumnCount(3);
	view->setColumnWidth(0,30);
	view->setColumnWidth(1,170);
	view->setColumnWidth(2,30);

	QList<QMap<QString,QString>> skillList = dbFile->getListByField("skill","name",skillName);
	if (skillList.count()>0)
	{
		model->setHorizontalHeaderItem(2,new QStandardItem(tr("-")));
		model->setHorizontalHeaderItem(1,new QStandardItem(tr("Material")));
		model->setHorizontalHeaderItem(0,new QStandardItem(tr("Id")));
		view->setColumnHidden(0,true);

		QString skillId = skillList.at(0)["id"];
		QString couId   = QString::number(courseId);

		QList<QString> fieldList;
		QList<QString> valueList;
		fieldList << "skill_id" << "course_id";
		valueList << skillId << couId;
		QList< QMap<QString,QString> > skiMaList = dbFile->getListByFields("skill_material",fieldList,valueList);
		int numRow = skiMaList.count();
		if(numRow>0)
		{
			for( int rowIndex = 0; rowIndex < numRow; rowIndex ++)
			{
				QString materialId = skiMaList.at(rowIndex)["material_id"];
				QList< QMap<QString,QString> > materialList = dbFile->getListByField("material","id",materialId);
				QString material = materialList.at(0)["name"];

				QPushButton *button = new QPushButton("");
				QIcon ButtonIcon2;
				ButtonIcon2.addFile(QString::fromUtf8(":/myclass/Resources/Delete_icon.png"), QSize(), QIcon::Normal, QIcon::Off);
				button->setIcon(ButtonIcon2);
				QSignalMapper *signalMapper = new QSignalMapper(this);
				signalMapper->setMapping(button,materialId);
				QObject::connect(button,SIGNAL(clicked()),signalMapper,SLOT(map()));
				QObject::connect(signalMapper,SIGNAL(mapped(QString)),this,SLOT(deleteMaterial(QString)));

				QStandardItem *materName = new QStandardItem(material);
				model->setItem(rowIndex, 1, materName);

				QString maIDStr = materialId;
				QStandardItem *materialIdItem = new QStandardItem(maIDStr);
				model->setItem(rowIndex, 0, materialIdItem);

				view->setIndexWidget(model->index(rowIndex,2),button);
			}
		}
	}
	QVBoxLayout *topLeftLayout = new QVBoxLayout;
	topLeftLayout->addWidget(label);
	topLeftLayout->addWidget(view);

	QPushButton *saveButton = new QPushButton("Save");
	QObject::connect(saveButton,SIGNAL(clicked()),this,SLOT(editMaterialAction()));
	topLeftLayout->addWidget(saveButton);

	setLayout(topLeftLayout);
	setWindowTitle(tr("Material list"));
	setFixedHeight(sizeHint().height());
}