git-svn-id: svn://db.shs.com.ru/libs@399 a8b55f48-bf90-11e4-a774-851b48703e85

This commit is contained in:
2018-06-07 19:05:11 +00:00
parent ad39a1b02e
commit a89c41741c
2 changed files with 28 additions and 6 deletions

View File

@@ -48,7 +48,9 @@ void KDockWidget::addK(const CDType & t, CDDirectKTypeDialog::TypeInfo ti) {
if (k_list.contains(xp)) return;
k_list << xp;
info_list << ti;
//piCout << "add" << xp;
QWidget * ve = ti.create();
//qDebug() << "add" << ve;
lay->addRow(PI2QString(t.pathString().join(".")) + ":", ve);
QCDCore::instance()->bindWidget(ve, t);
//ve->setValue();
@@ -94,7 +96,9 @@ void KDockWidget::clear() {
void KDockWidget::changedGlobal() {
piCout << "changedGlobal ..." << k_list.size_s() << info_list.size() << lay->count() << lay->rowCount();
for (int i = 0; i < k_list.size_s(); ++i) {
piCout << "update" << i << "0";
if (!K.exists(k_list[i])) {
k_list.remove(i);
info_list.remove(i);
@@ -102,9 +106,13 @@ void KDockWidget::changedGlobal() {
--i;
continue;
}
piCout << "update" << i << "1";
QLabel * lbl = qobject_cast<QLabel*>(lay->itemAt(i, QFormLayout::LabelRole)->widget());
piCout << "update" << i << "2";
if (lbl) lbl->setText(PI2QString(K[k_list[i]].pathString().join(".")) + ":");
piCout << "update" << i << "3";
}
piCout << "changedGlobal ok";
}
@@ -131,6 +139,8 @@ bool KDockWidget::eventFilter(QObject * o, QEvent * e) {
if (k.type().left(1) == "n" || k.type().left(1) == "f") {
if (type_dialog->exec() == QDialog::Accepted)
ti = type_dialog->getType();
else
return true;
}
addK(k, ti);
de->accept();
@@ -165,10 +175,17 @@ void KDockWidget::contextMenuEvent(QContextMenuEvent * e) {
void KDockWidget::removeRow(int r) {
if (r < 0 || r >= lay->rowCount()) return;
QLayoutItem * i = lay->takeAt(r+r);
if (i) {delete i->widget(); delete i;}
i = lay->takeAt(r+r);
if (i) {delete i->widget(); delete i;}
#if QT_VERSION >= 0x050800
QFormLayout::TakeRowResult rr = lay->takeRow(r);
if (rr.fieldItem) {delete rr.fieldItem->widget(); delete rr.fieldItem;}
if (rr.labelItem) {delete rr.labelItem->widget(); delete rr.labelItem;}
#else
piForTimes (2) {
QLayoutItem * i = lay->itemAt(r+r);
lay->removeItem(i);
if (i) {delete i->widget(); delete i;}
}
#endif
}