[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdegames/kpat
From: Parker Coates <parker.coates () kdemail ! net>
Date: 2012-02-15 4:45:45
Message-ID: 20120215044545.BEBCFAC895 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1280181 by coates:
Fix loading files via KIO.
I'm not sure how long this has been broken, but loading remote files now
works correctly.
M +13 -15 mainwindow.cpp
--- trunk/KDE/kdegames/kpat/mainwindow.cpp #1280180:1280181
@@ -64,7 +64,6 @@
#include <KFileDialog>
#include <KGlobal>
#include <KIcon>
-#include <KInputDialog>
#include <KLocale>
#include <KMessageBox>
#include <KRandom>
@@ -82,7 +81,6 @@
#include <QtCore/QTimer>
#include <QtCore/QXmlStreamReader>
#include <QtGui/QDesktopWidget>
-#include <QtGui/QStackedWidget>
namespace
@@ -809,28 +807,18 @@
bool MainWindow::loadGame( const KUrl & url, bool addToRecentFiles )
{
- // Some trickery to be able to use the same code to handle local and remote files.
- KTemporaryFile tempFile;
- QFile localFile;
- if ( url.isLocalFile() )
- {
- localFile.setFileName( url.toLocalFile() );
- }
- else
- {
- tempFile.open();
- QString fileName = tempFile.fileName();
+ QString fileName;
if( !KIO::NetAccess::download( url, fileName, this ) )
{
KMessageBox::error( this, i18n("Downloading file failed.") );
return false;
}
- }
- QFile & file = url.isLocalFile() ? localFile : tempFile;
+ QFile file( fileName );
if ( !file.open( QIODevice::ReadOnly ) )
{
KMessageBox::error( this, i18n("Opening file failed.") );
+ KIO::NetAccess::removeTempFile( fileName );
return false;
}
@@ -838,6 +826,7 @@
if ( !xml.readNextStartElement() )
{
KMessageBox::error( this, i18n("Error reading XML file: ") + xml.errorString() );
+ KIO::NetAccess::removeTempFile( fileName );
return false;
}
@@ -868,19 +857,24 @@
else
{
KMessageBox::error( this, i18n("XML file is not a KPat save.") );
+ KIO::NetAccess::removeTempFile( fileName );
return false;
}
if ( !m_dealer_map.contains( gameId ) )
{
KMessageBox::error( this, i18n("Unrecognized game id.") );
+ KIO::NetAccess::removeTempFile( fileName );
return false;
}
// Only bother the user to ask for permission after we've determined the
// save game file is at least somewhat valid.
if ( m_dealer && !m_dealer->allowedToStartNewGame() )
+ {
+ KIO::NetAccess::removeTempFile( fileName );
return false;
+ }
setGameType( gameId );
@@ -889,6 +883,10 @@
bool success = isLegacyFile ? m_dealer->loadLegacyFile( &file )
: m_dealer->loadFile( &file );
+
+ file.close();
+ KIO::NetAccess::removeTempFile( fileName );
+
if ( !success )
{
KMessageBox::error( this, i18n("Errors encountered while parsing file.") );
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic