//----------------------------------------------------------------------------- void ctkPathLineEditPrivate::init() { Q_Q(ctkPathLineEdit); this->ComboBox = new QComboBox(q); QHBoxLayout* layout = new QHBoxLayout(q); layout->addWidget(this->ComboBox); layout->setContentsMargins(0,0,0,0); this->ComboBox->setEditable(true); q->setSizePolicy(QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed, QSizePolicy::LineEdit)); QObject::connect(this->ComboBox,SIGNAL(editTextChanged(QString)), q, SLOT(setCurrentDirectory(QString))); QObject::connect(this->ComboBox,SIGNAL(editTextChanged(QString)), q, SLOT(updateHasValidInput())); }
//------------------------------------------------------------------------------ void ctkPathLineEditPrivate::createPathLineEditWidget(bool useComboBox) { Q_Q(ctkPathLineEdit); QString path = q->currentPath(); if (useComboBox) { this->ComboBox = new QComboBox(q); this->ComboBox->setEditable(true); this->ComboBox->setInsertPolicy(QComboBox::NoInsert); this->LineEdit = this->ComboBox->lineEdit(); } else { this->ComboBox = 0; this->LineEdit = new QLineEdit(q); } if (q->layout() && q->layout()->itemAt(0)) { delete q->layout()->itemAt(0)->widget(); } qobject_cast<QHBoxLayout*>(q->layout())->insertWidget( 0, this->ComboBox ? qobject_cast<QWidget*>(this->ComboBox) : qobject_cast<QWidget*>(this->LineEdit)); this->updateFilter(); q->retrieveHistory(); q->setCurrentPath(path); QObject::connect(this->LineEdit, SIGNAL(textChanged(QString)), q, SLOT(setCurrentDirectory(QString))); QObject::connect(this->LineEdit, SIGNAL(textChanged(QString)), q, SLOT(updateHasValidInput())); q->updateGeometry(); }