change list widgets selection signals to trigger on selection rather than click, to add support for keyboard browsing
This commit is contained in:
@@ -513,7 +513,7 @@ void Square::setup_buffers()
|
||||
}
|
||||
|
||||
void Line::draw(glm::mat4x4 const& mvp
|
||||
, std::vector<glm::vec3> const points
|
||||
, std::vector<glm::vec3> const& points
|
||||
, glm::vec4 const& color
|
||||
, bool spline
|
||||
)
|
||||
|
||||
@@ -158,7 +158,7 @@ namespace Noggit::Rendering::Primitives
|
||||
{
|
||||
public:
|
||||
void initSpline();
|
||||
void draw(glm::mat4x4 const& mvp, std::vector<glm::vec3> const points, glm::vec4 const& color, bool spline);
|
||||
void draw(glm::mat4x4 const& mvp, std::vector<glm::vec3> const& points, glm::vec4 const& color, bool spline);
|
||||
void unload();
|
||||
|
||||
private:
|
||||
|
||||
@@ -22,7 +22,7 @@ namespace Noggit
|
||||
|
||||
char const* LightTool::name() const
|
||||
{
|
||||
return "Light Editor";
|
||||
return "Lightning Editor";
|
||||
}
|
||||
|
||||
editing_mode LightTool::editingMode() const
|
||||
|
||||
@@ -344,10 +344,8 @@ namespace Noggit
|
||||
pal.setColor(_cbbox_effect_sets->backgroundRole(), QColor::fromRgbF(_effects_colors[index].r, _effects_colors[index].g, _effects_colors[index].b));
|
||||
_cbbox_effect_sets->setPalette(pal);
|
||||
});
|
||||
|
||||
QObject::connect(_effect_sets_list, &QListWidget::itemClicked
|
||||
, [this](QListWidgetItem* item)
|
||||
{
|
||||
QObject::connect(_effect_sets_list, &QListWidget::itemSelectionChanged, [this]()
|
||||
{
|
||||
int index = _effect_sets_list->currentIndex().row();
|
||||
|
||||
auto effect = getSelectedGroundEffect();
|
||||
|
||||
@@ -305,7 +305,7 @@ namespace Noggit
|
||||
auto importBox_content = new QWidget(this);
|
||||
auto importBox_content_layout = new QGridLayout (importBox_content);
|
||||
importBox_content_layout->setAlignment(Qt::AlignTop);
|
||||
importBox->setExpanderTitle("Import");
|
||||
importBox->setExpanderTitle("Import (old, use Asset Browser)");
|
||||
importBox->setExpanded(_settings->value ("object_editor/import_box", false).toBool());
|
||||
|
||||
QPushButton *toTxt = new QPushButton("To Text File", this);
|
||||
|
||||
@@ -36,6 +36,7 @@ namespace Noggit
|
||||
setFlow(QListWidget::LeftToRight);
|
||||
setWrapping(true);
|
||||
setSelectionMode(QAbstractItemView::SingleSelection);
|
||||
setSelectionBehavior(QAbstractItemView::SelectItems);
|
||||
setAcceptDrops(false);
|
||||
setMovement(Movement::Static);
|
||||
setResizeMode(QListView::Adjust);
|
||||
@@ -87,7 +88,6 @@ namespace Noggit
|
||||
_object_paths = std::unordered_set<std::string>();
|
||||
_object_list = new ObjectList(this);
|
||||
|
||||
|
||||
layout->addWidget(_object_list, 0, 0);
|
||||
|
||||
_preview_renderer = new Noggit::Ui::Tools::PreviewRenderer(_object_list->iconSize().width(),
|
||||
@@ -100,13 +100,16 @@ namespace Noggit
|
||||
_preview_renderer->setModelOffscreen("world/wmo/azeroth/buildings/human_farm/farm.wmo");
|
||||
_preview_renderer->renderToPixmap();
|
||||
|
||||
connect(_object_list, &QListWidget::itemClicked, this, [=](QListWidgetItem* item)
|
||||
{
|
||||
emit selected(item->toolTip().toStdString());
|
||||
}
|
||||
QObject::connect(_object_list, &QListWidget::itemSelectionChanged, [this]()
|
||||
{
|
||||
QListWidgetItem* const item = _object_list->currentItem();
|
||||
if (item)
|
||||
{
|
||||
emit selected(item->toolTip().toStdString());
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
QVBoxLayout* button_layout = new QVBoxLayout(this);
|
||||
|
||||
_add_button = new QPushButton(this);
|
||||
|
||||
@@ -35,6 +35,7 @@ namespace Noggit
|
||||
setFlow(QListWidget::LeftToRight);
|
||||
setWrapping(false);
|
||||
setSelectionMode(QAbstractItemView::SingleSelection);
|
||||
setSelectionBehavior(QAbstractItemView::SelectItems);
|
||||
setAcceptDrops(false);
|
||||
setMovement(Movement::Static);
|
||||
setResizeMode(QListView::Adjust);
|
||||
@@ -92,11 +93,13 @@ namespace Noggit
|
||||
|
||||
layout->addWidget(_texture_list, 0, 0);
|
||||
|
||||
connect(_texture_list, &QListWidget::itemClicked
|
||||
, this
|
||||
, [=](QListWidgetItem* item)
|
||||
QObject::connect(_texture_list, &QListWidget::itemSelectionChanged, [this]()
|
||||
{
|
||||
emit selected("tileset/" + item->toolTip().toStdString());
|
||||
QListWidgetItem* const item = _texture_list->currentItem();
|
||||
if (item)
|
||||
{
|
||||
emit selected("tileset/" + item->toolTip().toStdString());
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ namespace Noggit
|
||||
_picker_listview = new QListWidget(this);
|
||||
_picker_listview->setFixedSize(280, 460);
|
||||
_picker_listview->setSelectionMode(QListWidget::SingleSelection);
|
||||
// _picker_listview->setSelectionBehavior(QAbstractItemView::SelectionBehavior::SelectRows);
|
||||
_picker_listview->setSelectionBehavior(QAbstractItemView::SelectionBehavior::SelectItems);
|
||||
list_layout->addWidget(_picker_listview);
|
||||
|
||||
if (sound_type_filter == -1)
|
||||
@@ -209,9 +209,15 @@ namespace Noggit
|
||||
}
|
||||
});
|
||||
|
||||
connect(_picker_listview, &QListWidget::itemClicked, this, [=](QListWidgetItem* item) {
|
||||
select_entry(item->data(1).toInt());
|
||||
});
|
||||
QObject::connect(_picker_listview, &QListWidget::itemSelectionChanged, [this]()
|
||||
{
|
||||
QListWidgetItem* const item = _picker_listview->currentItem();
|
||||
if (item)
|
||||
{
|
||||
select_entry(item->data(Qt::UserRole).toInt());
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
connect(select_entry_btn, &QPushButton::clicked, [=]() {
|
||||
// auto selection = _picker_listview->selectedItems();
|
||||
@@ -219,20 +225,20 @@ namespace Noggit
|
||||
if (selected_item == nullptr)
|
||||
return;
|
||||
|
||||
button->setProperty("id", selected_item->data(1).toInt());
|
||||
button->setText(selected_item->text());
|
||||
this->close();
|
||||
});
|
||||
button->setProperty("id", selected_item->data(Qt::UserRole).toInt());
|
||||
button->setText(selected_item->text());
|
||||
this->close();
|
||||
});
|
||||
|
||||
connect(select_entry_none_btn, &QPushButton::clicked, [=]() {
|
||||
button->setText("-NONE-");
|
||||
button->setProperty("id", 0);
|
||||
this->close();
|
||||
});
|
||||
});
|
||||
|
||||
connect(save_music_entry_btn, &QPushButton::clicked, [=]() {
|
||||
save_entry(_entry_id);
|
||||
});
|
||||
});
|
||||
|
||||
connect(add_file_button, &QPushButton::clicked, [=]() {
|
||||
|
||||
@@ -265,7 +271,7 @@ namespace Noggit
|
||||
|
||||
// add new tree item
|
||||
auto item = new QListWidgetItem();
|
||||
item->setData(1, new_id);
|
||||
item->setData(Qt::UserRole, new_id);
|
||||
std::stringstream ss;
|
||||
|
||||
_picker_listview->addItem(item);
|
||||
@@ -286,7 +292,7 @@ namespace Noggit
|
||||
continue;
|
||||
|
||||
auto item = new QListWidgetItem();
|
||||
item->setData(1, i->getInt(SoundEntriesDB::ID));
|
||||
item->setData(Qt::UserRole, i->getInt(SoundEntriesDB::ID));
|
||||
|
||||
std::stringstream ss;
|
||||
ss << i->getInt(SoundEntriesDB::ID) << "-" << i->getString(SoundEntriesDB::Name);
|
||||
|
||||
@@ -121,24 +121,30 @@ namespace Noggit
|
||||
// unhide all
|
||||
}
|
||||
|
||||
// hide all items
|
||||
for (int i = 0; i < _picker_listview->count(); i++)
|
||||
{
|
||||
auto item = _picker_listview->item(i);
|
||||
item->setHidden(true);
|
||||
}
|
||||
// unhide matching items
|
||||
auto matching_items = _picker_listview->findItems(obj, Qt::MatchContains);
|
||||
// hide all items
|
||||
for (int i = 0; i < _picker_listview->count(); i++)
|
||||
{
|
||||
auto item = _picker_listview->item(i);
|
||||
item->setHidden(true);
|
||||
}
|
||||
// unhide matching items
|
||||
auto matching_items = _picker_listview->findItems(obj, Qt::MatchContains);
|
||||
|
||||
for (auto item : matching_items)
|
||||
{
|
||||
item->setHidden(false);
|
||||
}
|
||||
});
|
||||
for (auto item : matching_items)
|
||||
{
|
||||
item->setHidden(false);
|
||||
}
|
||||
});
|
||||
|
||||
connect(_picker_listview, &QListWidget::itemClicked, this, [=](QListWidgetItem* item) {
|
||||
select_entry(item->data(1).toInt());
|
||||
});
|
||||
QObject::connect(_picker_listview, &QListWidget::itemSelectionChanged, [this]()
|
||||
{
|
||||
QListWidgetItem* const item = _picker_listview->currentItem();
|
||||
if (item)
|
||||
{
|
||||
select_entry(item->data(Qt::UserRole).toInt());
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
connect(select_entry_btn, &QPushButton::clicked, [=]() {
|
||||
// auto selection = _picker_listview->selectedItems();
|
||||
|
||||
@@ -58,7 +58,7 @@ namespace Noggit
|
||||
for (DBCFile::Iterator i = gZoneMusicDB.begin(); i != gZoneMusicDB.end(); ++i)
|
||||
{
|
||||
auto item = new QListWidgetItem();
|
||||
item->setData(1, i->getInt(ZoneMusicDB::ID));
|
||||
item->setData(Qt::UserRole, i->getInt(ZoneMusicDB::ID));
|
||||
|
||||
std::stringstream ss;
|
||||
ss << i->getInt(ZoneMusicDB::ID) << "-" << i->getString(ZoneMusicDB::Name);
|
||||
@@ -180,9 +180,15 @@ namespace Noggit
|
||||
}
|
||||
});
|
||||
|
||||
connect(_picker_listview, &QListWidget::itemClicked, this, [=](QListWidgetItem* item) {
|
||||
select_entry(item->data(1).toInt());
|
||||
});
|
||||
QObject::connect(_picker_listview, &QListWidget::itemSelectionChanged, [this]()
|
||||
{
|
||||
QListWidgetItem* const item = _picker_listview->currentItem();
|
||||
if (item)
|
||||
{
|
||||
select_entry(item->data(Qt::UserRole).toInt());
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
connect(select_entry_btn, &QPushButton::clicked, [=]() {
|
||||
// auto selection = _picker_listview->selectedItems();
|
||||
@@ -190,7 +196,7 @@ namespace Noggit
|
||||
if (selected_item == nullptr)
|
||||
return;
|
||||
|
||||
button->setProperty("id", selected_item->data(1).toInt());
|
||||
button->setProperty("id", selected_item->data(Qt::UserRole).toInt());
|
||||
button->setText(selected_item->text());
|
||||
this->close();
|
||||
});
|
||||
@@ -236,7 +242,7 @@ namespace Noggit
|
||||
|
||||
// add new tree item
|
||||
auto item = new QListWidgetItem();
|
||||
item->setData(1, new_id);
|
||||
item->setData(Qt::UserRole, new_id);
|
||||
std::stringstream ss;
|
||||
|
||||
_picker_listview->addItem(item);
|
||||
|
||||
@@ -92,9 +92,15 @@ namespace Noggit
|
||||
_files_listview->setSelectionMode(QListWidget::SingleSelection);
|
||||
layout->addWidget(_files_listview);
|
||||
|
||||
connect(_files_listview, &QListWidget::itemClicked, this, [=](QListWidgetItem* item) {
|
||||
play_selected_sound();
|
||||
});
|
||||
QObject::connect(_files_listview, &QListWidget::itemSelectionChanged, [this]()
|
||||
{
|
||||
QListWidgetItem* const item = _files_listview->currentItem();
|
||||
if (item)
|
||||
{
|
||||
play_selected_sound();
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
// connect volume
|
||||
connect(_volume_slider, &QSlider::valueChanged, [&](int v) {
|
||||
|
||||
@@ -307,10 +307,17 @@ namespace Noggit::Ui::Windows
|
||||
layout->setAlignment(Qt::AlignLeft);
|
||||
QListWidget* bookmarks_table(new QListWidget(widget));
|
||||
_continents_table = new QListWidget(widget);
|
||||
QObject::connect(_continents_table, &QListWidget::itemClicked, [this](QListWidgetItem* item)
|
||||
{
|
||||
loadMap(item->data(Qt::UserRole).toInt());
|
||||
}
|
||||
_continents_table->setSelectionMode(QAbstractItemView::SelectionMode::SingleSelection);
|
||||
_continents_table->setSelectionBehavior(QAbstractItemView::SelectItems);
|
||||
|
||||
QObject::connect(_continents_table, &QListWidget::itemSelectionChanged, [this]()
|
||||
{
|
||||
QListWidgetItem* const item = _continents_table->currentItem();
|
||||
if (item)
|
||||
{
|
||||
loadMap(item->data(Qt::UserRole).toInt());
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user