void Controller::GTKRemoveGameListItem( const char *str, void *byte ) { GtkListStore *store; GtkTreeModel *model; GtkTreeIter iter; GValue value = {0,}; char *cptr; model = gtk_tree_view_get_model( (GtkTreeView *)list ); gtk_tree_model_get_iter_first( model, &iter ); for( ; ; ) { gtk_tree_model_get_value( model, &iter, 0, &value ); cptr = (char *)g_value_get_string( &value ); if( strcmp( str, cptr ) == 0 ) { store = GTK_LIST_STORE( gtk_tree_view_get_model( GTK_TREE_VIEW( list ) ) ); gtk_list_store_remove( store, &iter ); g_value_unset( &value ); cptr = NULL; RemoveGame( str, byte ); break; } if( !gtk_tree_model_iter_next( model, &iter ) ) break; } }
void RemoveFromCustomFolder(LPTREEFOLDER lpFolder,int driver_index) { if ((lpFolder->m_dwFlags & F_CUSTOM) == 0) { MessageBox(GetMainWindow(),"Unable to remove game from non-custom folder", MAME32NAME,MB_OK | MB_ICONERROR); return; } if (TestBit(lpFolder->m_lpGameBits,driver_index) != 0) { RemoveGame(lpFolder,driver_index); if (TrySaveExtraFolder(lpFolder) == FALSE) AddGame(lpFolder,driver_index); // undo on error } }
GameListModel::GameListModel(QObject* parent) : QAbstractTableModel(parent) { connect(&m_tracker, &GameTracker::GameLoaded, this, &GameListModel::UpdateGame); connect(&m_tracker, &GameTracker::GameRemoved, this, [this](const QString& path) { RemoveGame(path.toStdString()); }); connect(&Settings::Instance(), &Settings::PathAdded, &m_tracker, &GameTracker::AddDirectory); connect(&Settings::Instance(), &Settings::PathRemoved, &m_tracker, &GameTracker::RemoveDirectory); connect(&Settings::Instance(), &Settings::PathReloadRequested, &m_tracker, &GameTracker::ReloadDirectory); for (const QString& dir : Settings::Instance().GetPaths()) m_tracker.AddDirectory(dir); connect(&Settings::Instance(), &Settings::ThemeChanged, [this] { // Tell the view to repaint. The signal 'dataChanged' also seems like it would work here, but // unfortunately it won't cause a repaint until the view is focused. emit layoutAboutToBeChanged(); emit layoutChanged(); }); }
void AbstractGameList::RemoveGames(QList<GameFile*> items) { for (GameFile* o : items) RemoveGame(o); }