void LibraryWidget::setLibraryManager(LibraryManager *lm) { m_libraryManager = lm; connect(lm, SIGNAL(libraryAdded(Library*)), this, SLOT(addLibrary(Library*))); connect(lm, SIGNAL(libraryRemoved(QUrl)), this, SLOT(closeLibrary(QUrl))); }
void LibraryListEditorWidget::btnRemoveClicked() noexcept { QListWidgetItem* item = mUi->listWidget->currentItem(); tl::optional<Uuid> uuid = item ? Uuid::tryFromString(item->data(Qt::UserRole).toString()) : tl::nullopt; if (item && uuid) { mUuids.remove(*uuid); delete item; // Emit signals *after* removing the item to avoid critical issues if a // signal handler modifies the UUID list befor removing was finished. emit libraryRemoved(*uuid); emit edited(); } }