ui: Fixed QtDirectoryListBox size not growing to maximum in include path detection

This commit is contained in:
Eberhard Graether
2018-01-26 12:40:07 +01:00
parent 849ee12192
commit ae66220ca9
4 changed files with 9 additions and 47 deletions
+1 -1
View File
@@ -11,7 +11,7 @@ QtDirectoryListBox {
QListWidget {
background: transparent;
border: none;
margin: 2px 0 2px 0;
margin: 2px 0 0 0;
}
QListWidget::item {
+8 -41
View File
@@ -140,13 +140,11 @@ QtDirectoryListBox::QtDirectoryListBox(QWidget *parent, const QString& listName,
m_list = new QListWidget(this);
m_list->setObjectName("list");
m_list->setAttribute(Qt::WA_MacShowFocusRect, 0);
m_list->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
setStyleSheet(utility::getStyleSheet(ResourcePaths::getGuiPath().concatenate(FilePath("window/listbox.css"))).c_str());
layout->addWidget(m_list);
layout->addWidget(m_list, 5);
QWidget* buttonContainer = new QWidget(this);
buttonContainer->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);
buttonContainer->setObjectName("bar");
QHBoxLayout* innerLayout = new QHBoxLayout();
@@ -190,10 +188,8 @@ QtDirectoryListBox::QtDirectoryListBox(QWidget *parent, const QString& listName,
dropInfoText->hide();
}
layout->addStretch();
buttonContainer->setLayout(innerLayout);
layout->addWidget(buttonContainer);
layout->addWidget(buttonContainer, 0);
setLayout(layout);
connect(m_addButton, &QPushButton::clicked, this, &QtDirectoryListBox::addListBoxItem);
@@ -201,15 +197,7 @@ QtDirectoryListBox::QtDirectoryListBox(QWidget *parent, const QString& listName,
connect(editButton, &QPushButton::clicked, this, &QtDirectoryListBox::showEditDialog);
setAcceptDrops(true);
setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Minimum);
setMaximumHeight(200);
setMinimumHeight(100);
resize();
}
QSize QtDirectoryListBox::sizeHint() const
{
return QSize(QFrame::sizeHint().width(), minimumHeight());
setMaximumHeight(160);
}
void QtDirectoryListBox::clear()
@@ -294,9 +282,8 @@ void QtDirectoryListBox::setStringList(const std::vector<std::string>& list, boo
itemWidget->setReadOnly(readOnly);
}
m_list->scrollToTop();
m_relativeRootDirectory = root;
QTimer::singleShot(1, this, &QtDirectoryListBox::resize);
}
QtListItemWidget* QtDirectoryListBox::addListBoxItemWithText(const QString& text)
@@ -331,35 +318,19 @@ void QtDirectoryListBox::setRelativeRootDirectory(const FilePath& dir)
m_relativeRootDirectory = dir;
}
void QtDirectoryListBox::resize()
{
int height = m_list->height() - m_list->viewport()->height();
if (m_list->count() > 0)
{
height += (m_list->itemWidget(m_list->item(0))->height() + 1) * m_list->count() + 7;
}
if (height < 0)
{
height = 0;
}
m_list->setMaximumHeight(height);
}
QtListItemWidget* QtDirectoryListBox::addListBoxItem()
{
int rowIndex = m_list->row(m_list->selectedItems().last()) + 1;
QListWidgetItem *item = new QListWidgetItem(m_list);
m_list->addItem(item);
m_list->insertItem(rowIndex, item);
QtListItemWidget* widget = new QtListItemWidget(this, item);
m_list->setItemWidget(item, widget);
m_list->scrollToItem(item);
widget->setFocus();
resize();
return widget;
}
@@ -383,8 +354,6 @@ void QtDirectoryListBox::removeListBoxItem()
{
m_list->setCurrentRow(rowIndex);
}
resize();
}
void QtDirectoryListBox::dragEnterEvent(QDragEnterEvent *event)
@@ -471,6 +440,4 @@ void QtDirectoryListBox::savedEditDialog()
m_relativeRootDirectory = root;
canceledEditDialog();
QTimer::singleShot(1, this, &QtDirectoryListBox::resize);
}
@@ -54,8 +54,6 @@ class QtDirectoryListBox
public:
QtDirectoryListBox(QWidget *parent, const QString& listName, bool forStrings = false);
virtual QSize sizeHint() const override;
void clear();
std::vector<FilePath> getList();
@@ -80,8 +78,6 @@ protected:
void dragEnterEvent(QDragEnterEvent* event) override;
private slots:
void resize();
QtListItemWidget* addListBoxItem();
void removeListBoxItem();
@@ -43,7 +43,6 @@ void QtPathListDialog::populateWindow(QWidget* widget)
layout->addSpacing(10);
m_pathList = new QtDirectoryListBox(nullptr, m_title);
m_pathList->setMinimumHeight(150);
m_pathList->setMaximumHeight(1000);
layout->addWidget(m_pathList);