예제 #1
0
AbstractEditableLabelWidget::AbstractEditableLabelWidget(QString text, WaitPushUndoStack *undoStack, QWidget *parent, QString title, bool edited, bool noSpacing) : QFrame(parent) {
	m_noSpacing = noSpacing;
	m_edited = edited;
	m_isInEditionMode = false;
	m_undoStack = undoStack;

	QGridLayout *layout = new QGridLayout;

	if(!title.isNull() && !title.isEmpty()) {
		m_title = new QLabel(title, this);
		m_title->setObjectName("title");
		layout->addWidget(m_title,0,0);
	} else {
		m_title = NULL;
	}

	setLayout(layout);

	m_label = new EditableLabel(text, this);
	connect(m_label,SIGNAL(editionStarted(QString)),this,SLOT(editionStarted(QString)));
	connect(this,SIGNAL(editionCompleted(QString)),m_label,SLOT(editionCompleted(QString)));

	m_acceptButton = new QPushButton(tr("Accept"), this);
	connect(m_acceptButton,SIGNAL(clicked()),this,SLOT(informEditionCompleted()));

	m_cancelButton = new QPushButton(tr("Cancel"), this);
	connect(m_cancelButton,SIGNAL(clicked()),this,SLOT(editionCanceled()));
}
void HashPopulateWidget::addRow(QGridLayout *layout) {
	if(layout == NULL) {
		layout = gridLayout();
	}

	if(m_lastLabel) {
		disconnect(m_lastLabel,SIGNAL(editingFinished()),this,SLOT(lastRowEditionCompleted()));
	}

	if(m_lastValue) {
		disconnect(m_lastValue,SIGNAL(editingFinished()),this,SLOT(lastRowEditionCompleted()));
	}

    int ix = layout->rowCount();

	m_lastLabel = new HashLineEdit(QObject::tr("a label"),true,this);
	layout->addWidget(m_lastLabel,ix,0);
	connect(m_lastLabel,SIGNAL(editingFinished()),this,SLOT(lastRowEditionCompleted()));

	m_lastValue = new HashLineEdit(QObject::tr("a value"),true,this);
	layout->addWidget(m_lastValue,ix,1,1,2);
	connect(m_lastValue,SIGNAL(editingFinished()),this,SLOT(lastRowEditionCompleted()));
    if (m_keysOnly) m_lastValue->hide();

	emit editionStarted();
}
예제 #3
0
void AbstractEditableLabelWidget::toEditionMode() {
	m_isInEditionMode = true;

	hide();
	QGridLayout *layout = (QGridLayout*)this->layout();

	m_label->hide();
	layout->removeWidget(m_label);

	if(!m_edited) {
		setEmptyTextToEdit();
	}
	myEditionWidget()->show();
	layout->addWidget(myEditionWidget(),1,0,1,5);
	m_acceptButton->show();
	layout->addWidget(m_acceptButton,2,3);
	m_cancelButton->show();
	layout->addWidget(m_cancelButton,2,4);

	setNoSpacing(layout);

	updateGeometry();
	show();

	emit editionStarted();
}
PartSpecificationsWidget::PartSpecificationsWidget(QList<QWidget*> widgets, QWidget *parent)
	: QScrollArea(parent)
{
	m_scrollContent = new QFrame(this);
	m_scrollContent->setObjectName("scroll");
	//m_scrollContent->setSizePolicy(QSizePolicy::M,QSizePolicy::Expanding);

	QGridLayout *layout = new QGridLayout(m_scrollContent);
	for(int i=0; i < widgets.size(); i++) {
		//widgets[i]->setFrameStyle(QFrame::StyledPanel | QFrame::Raised);
		widgets[i]->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Preferred);
		layout->addWidget(widgets[i],i,0);
		if(widgets[i]->metaObject()->indexOfSignal(QMetaObject::normalizedSignature("editionStarted()")) > -1) {
			connect(widgets[i],SIGNAL(editionStarted()),this,SLOT(updateLayout()));
		}
		if(widgets[i]->metaObject()->indexOfSignal(QMetaObject::normalizedSignature("editionFinished()")) > -1) {
			connect(widgets[i],SIGNAL(editionFinished()),this,SLOT(updateLayout()));
		}
	}
	layout->setMargin(0);
	layout->setSpacing(10);

	setWidget(m_scrollContent);
	setMinimumWidth(m_scrollContent->width()+15); //scrollbar
	setWidgetResizable(true);

	QGridLayout *mylayout = new QGridLayout(this);
	mylayout->setMargin(0);
	mylayout->setSpacing(0);

	//resize(sizeHint());
}
void SingleConnectorInfoWidget::toEditionMode() {
	hide();

	setInEditionMode(true);

	hideIfNeeded(m_nameLabel);
	hideIfNeeded(m_nameDescSeparator);
	hideIfNeeded(m_descLabel);

	createInputs();

	// first row
	QHBoxLayout *firstRowLayout = new QHBoxLayout();
	firstRowLayout->addWidget(m_type);
	firstRowLayout->addSpacerItem(new QSpacerItem(10,0));
	firstRowLayout->addWidget(m_nameEditContainer);
	firstRowLayout->addSpacerItem(new QSpacerItem(0,0,QSizePolicy::Expanding));
	firstRowLayout->addWidget(m_removeButton);
	m_nameEditContainer->show();

	// second row
	m_descEditContainer->show();

	// third row
	if(!m_acceptButton) {
		m_acceptButton = new QPushButton(QObject::tr("Accept"),this);
		connect(m_acceptButton,SIGNAL(clicked()),this,SLOT(editionCompleted()));
	}
	m_acceptButton->show();

	if(!m_cancelButton) {
		m_cancelButton = new QPushButton(QObject::tr("Cancel"),this);
		connect(m_cancelButton,SIGNAL(clicked()),this,SLOT(editionCanceled()));
	}
	m_cancelButton->show();

	QHBoxLayout *thirdRowLayout = new QHBoxLayout();
	thirdRowLayout->addSpacerItem(new QSpacerItem(0,0,QSizePolicy::Expanding));
	thirdRowLayout->addWidget(m_acceptButton);
	thirdRowLayout->addWidget(m_cancelButton);


	QVBoxLayout *layout = (QVBoxLayout*)this->layout();
	layout->addLayout(firstRowLayout);
	layout->addWidget(m_descEditContainer);
	layout->addLayout(thirdRowLayout);


	setFixedHeight(SingleConnectorHeight*4);
	setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
	updateGeometry();

	show();
	setFocus();

	emit editionStarted();
}
void SingleConnectorInfoWidget::startEdition() {
	createInputs();

	m_nameEdit->setText(m_nameLabel->text());
	m_descEdit->setText(m_descLabel->text());
	toEditionMode();

	emit editionStarted();
}
예제 #7
0
void EditableLabel::mousePressEvent (QMouseEvent *event) {
	emit editionStarted(text());

	QWidget::mousePressEvent(event);
}