ui: fixed files and directories dialog to offer selection of files (issue #521)

* added and used QtFilesAndDirectoriesDialog in file list boxes for windows and linux
* implemented allowing to select multiple entries which adds more rows to the path listbox
This commit is contained in:
mlangkabel
2017-12-11 17:24:20 +01:00
parent 22b4d2a2b9
commit ec852affbe
6 changed files with 96 additions and 18 deletions
+14 -4
View File
@@ -84,9 +84,14 @@ void QtListItemWidget::handleButtonPress()
}
QStringList list = QtFileDialog::getFileNamesAndDirectories(this, QString::fromStdString(path.str()));
for (int i = 0; i < list.size(); i++)
if (!list.isEmpty())
{
setText(list.at(i));
setText(list.at(0));
}
for (int i = 1; i < list.size(); i++)
{
m_list->addListBoxItemWithText(list.at(i));
}
handleFocus();
@@ -260,8 +265,7 @@ void QtDirectoryListBox::setStringList(const std::vector<std::string>& list)
for (const std::string& str : list)
{
QtListItemWidget* widget = addListBoxItem();
widget->setText(QString::fromStdString(str));
addListBoxItemWithText(QString::fromStdString(str));
}
m_relativeRootDirectory = root;
@@ -269,6 +273,12 @@ void QtDirectoryListBox::setStringList(const std::vector<std::string>& list)
QTimer::singleShot(1, this, &QtDirectoryListBox::resize);
}
void QtDirectoryListBox::addListBoxItemWithText(const QString& text)
{
QtListItemWidget* widget = addListBoxItem();
widget->setText(text);
}
void QtDirectoryListBox::selectItem(QListWidgetItem* item)
{
for (int i = 0; i < m_list->count(); i++)