Example #1
0
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;
	}
}
Example #2
0
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
	}
}
Example #3
0
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();
  });
}
Example #4
0
void AbstractGameList::RemoveGames(QList<GameFile*> items)
{
    for (GameFile* o : items)
        RemoveGame(o);
}