Exemple #1
0
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();
  }
}