AlbumShaper  1.0a3
Functions
fileTools.cpp File Reference
#include <fstream>
#include <qstring.h>
#include <qfile.h>
#include <qdir.h>
#include <qlibrary.h>
#include "fileTools.h"
Include dependency graph for fileTools.cpp:

Go to the source code of this file.

Functions

bool moveFile (QString oldName, QString newName)
bool copyFile (QString oldFilePath, QString newFilePath)
 Copies a file from one location to another.
QString fixFilename (QString filename)
 Replaces invalid characters in filenames with valid ones.

Function Documentation

bool copyFile ( QString  oldFilePath,
QString  newFilePath 
)

Copies a file from one location to another.

Definition at line 61 of file fileTools.cpp.

References buffer.

Referenced by Album::exportCompressedWebAlbum(), Album::exportLargeImages(), Album::exportSubalbumImages(), Album::exportThemeResources(), moveFile(), Photo::setImage(), and setWallpaper().

{
  //same file, no need to copy
  if(oldFilePath.compare(newFilePath) == 0)
    return true;

  //load both files
  QFile oldFile(oldFilePath);
  QFile newFile(newFilePath);
  bool openOld = oldFile.open( IO_ReadOnly );
  bool openNew = newFile.open( IO_WriteOnly );

  //if either file fails to open bail
  if(!openOld || !openNew) { return false; }

  //copy contents
  uint BUFFER_SIZE = 16000;
  char* buffer = new char[BUFFER_SIZE];
  while(!oldFile.atEnd())
  {
    Q_ULONG len = oldFile.readBlock( buffer, BUFFER_SIZE );
    newFile.writeBlock( buffer, len );
  }

  //deallocate buffer
  delete[] buffer;
  buffer = NULL;
  return true;
}
QString fixFilename ( QString  filename)

Replaces invalid characters in filenames with valid ones.

Definition at line 137 of file fileTools.cpp.

Referenced by TitleWidget::exportLargeImages(), and TitleWidget::exportSmallWebGallery().

{ 
  filename.replace( QChar(' '), "_" );
  filename.replace( "<", "" );
  filename.replace( ">", "" );
  filename.replace( "&", "and" );
  filename.replace( "\"", "" );
  filename.replace( "\'", "" );
  filename.replace( "?", "" );
  return filename;
}
bool moveFile ( QString  oldName,
QString  newName 
)

Definition at line 40 of file fileTools.cpp.

References copyFile().

Referenced by Photo::applyTransformation(), Album::exportSubalbumImages(), and Album::reorderSubalbumImages().

{
  QDir rootDir;
  
  //attempt to rename file
  if(!rootDir.rename( oldName, newName))
  {
    //move failed, copy file and remove original
    
    //copy failed! sound alert and do not remove original!!!
    if(!copyFile(oldName, newName))
      return false;

    //copy succeded, remove original and return
    rootDir.remove(oldName);
  }
  
  //move succeeded either directly or via copying and removing original file
  return true;
}