From kde-commits Fri Feb 29 23:50:19 2008 From: Jeremy Paul Whiting Date: Fri, 29 Feb 2008 23:50:19 +0000 To: kde-commits Subject: playground/games/kpicross/src Message-Id: <1204329019.048514.22025.nullmailer () svn ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=120432903118829 SVN commit 780784 by whiting: reload list of boards on save signal from create window, also store boards in a map by their title M +3 -0 createwindow.cpp M +4 -0 createwindow.h M +8 -7 levels.cpp M +4 -2 levels.h M +3 -3 mainwindow.cpp --- trunk/playground/games/kpicross/src/createwindow.cpp #780783:780784 @@ -2,6 +2,7 @@ * createwindow.cpp * * Copyright (C) 2004 Zack Rusin + * Copyright (C) 2008 Jeremy Whiting (jeremy@scitools.com) * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -105,6 +106,8 @@ saveBoard->save( str ); file.close(); delete saveBoard; + + emit boardSaved(); } void CreateWindow::slotChangeSize( int i ) --- trunk/playground/games/kpicross/src/createwindow.h #780783:780784 @@ -2,6 +2,7 @@ * createwindow.h * * Copyright (C) 2004 Zack Rusin + * Copyright (C) 2008 Jeremy Whiting (jeremy@scitools.com) * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -41,6 +42,9 @@ void slotTitleChanged( const QString& title ); void slotChangeSize( int i ); +signals: + void boardSaved(); + private: BoardView *m_view; }; --- trunk/playground/games/kpicross/src/levels.cpp #780783:780784 @@ -2,6 +2,7 @@ * levels.cpp * * Copyright (C) 2004 Zack Rusin + * Copyright (C) 2008 Jeremy Whiting (jeremy@scitools.com) * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -53,16 +54,18 @@ board->save( str ); file.close(); } - m_boards.append( board ); + m_boards.insert( board->title(), board ); } QList Levels::boards() const { - return m_boards; + return m_boards.values(); } void Levels::load() { + m_boards.clear(); + QStringList datafiles = KGlobal::dirs()->findAllResources( "data", "kpicross/*.pic" ); for (int i = 0; i < datafiles.size(); ++i) @@ -73,17 +76,15 @@ QDataStream str( &file ); Board *board = new Board( "new", this ); board->load( str ); - m_boards.append( board ); + m_boards.insert( board->title(), board ); } } } Board * Levels::board( const QString& title ) const { - for ( QList::const_iterator it = m_boards.begin(); it != m_boards.end(); ++it ) { - Board *board = *it; - if ( board->title() == title ) - return board; + if (m_boards.contains(title)) { + return m_boards[title]; } return 0; } --- trunk/playground/games/kpicross/src/levels.h #780783:780784 @@ -2,6 +2,7 @@ * levels.h * * Copyright (C) 2004 Zack Rusin + * Copyright (C) 2008 Jeremy Whiting (jeremy@scitools.com) * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -23,7 +24,8 @@ #include -#include +#include +#include class Board; class KURL; @@ -43,7 +45,7 @@ void load(); private: - QList m_boards; + QMap m_boards; }; #endif --- trunk/playground/games/kpicross/src/mainwindow.cpp #780783:780784 @@ -2,6 +2,7 @@ * mainwindow.cpp * * Copyright (C) 2004 Zack Rusin + * Copyright (C) 2008 Jeremy Whiting (jeremy@scitools.com) * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -35,7 +36,7 @@ #include MainWindow::MainWindow( QWidget *parent ) - : KXmlGuiWindow( parent ), m_view(NULL) + : KXmlGuiWindow( parent ), m_view(NULL), m_createWindow(NULL) { statusBar()->showMessage( i18n( "Picross" ) ); @@ -52,8 +53,6 @@ setCentralWidget( mainFrame ); setupGUI( Default, "kpicross.rc" ); - - m_createWindow = new CreateWindow(this); } void MainWindow::changeBoard( Board *board ) @@ -69,6 +68,7 @@ if (m_createWindow == NULL) { m_createWindow = new CreateWindow(this); + connect(m_createWindow, SIGNAL(boardSaved()), m_levels, SLOT(load())); } m_createWindow->show(); }