ui: Fixed QtDirectoryListBox size not growing to maximum in include path detection
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user