Canorus  0.0
Public Member Functions | Protected Member Functions | Private Attributes | List of all members
CAFile Class Referenceabstract

File import/export base class. More...

#include <file.h>

Inheritance diagram for CAFile:
Inheritance graph
[legend]

Public Member Functions

 CAFile ()
 
virtual ~CAFile ()
 
const int status ()
 
const int progress ()
 
virtual const QString readableStatus ()=0
 
void setStreamFromFile (const QString filename)
 
void setStreamToFile (const QString filename)
 
void setStreamFromDevice (QIODevice *device)
 
void setStreamToDevice (QIODevice *device)
 
void setStreamToString ()
 
QString getStreamAsString ()
 

Protected Member Functions

void setStatus (const int status)
 
void setProgress (const int progress)
 
QTextStream * stream ()
 
virtual void setStream (QTextStream *stream)
 
QFile * file ()
 
void setFile (QFile *file)
 

Private Attributes

int _status
 
int _progress
 
QTextStream * _stream
 
QFile * _file
 
bool _deleteStream
 

Detailed Description

File import/export base class.

Copyright (c) 2007, Matevž Jekovec, Canorus development team All Rights Reserved. See AUTHORS for a complete list of authors.

Licensed under the GNU GENERAL PUBLIC LICENSE. See LICENSE.GPL for details.

This class brings tools for manipulating with files and streams (most notably import and export). Classes CAImport and CAExport inherit this class and implement specific methods for import and export.

All file operations are done in a separate thread. While the file operations are in progress user can poll the status by calling status(), progress() and readableStatus() for human-readable status defined by the filter. Waiting for the thread to be finished can be implemented by calling QThread::wait() or by catching the signals emitted by children import and export classes.

See also
CAImport, CAExport

Constructor & Destructor Documentation

◆ CAFile()

CAFile::CAFile ( )

References _deleteStream, setFile(), setProgress(), setStatus(), and setStream().

Here is the call graph for this function:

◆ ~CAFile()

CAFile::~CAFile ( )
virtual

Destructor. Also destroys the created stream and file, if set.

References _deleteStream, file(), and stream().

Here is the call graph for this function:

Member Function Documentation

◆ file()

QFile* CAFile::file ( )
inlineprotected

◆ getStreamAsString()

QString CAFile::getStreamAsString ( )

This function is provided for convenience when QTextStream/QIODevice API is not available (eg. when writing external Python plugins).

It returns the exported value as UTF-8 encoded string. To use this function first initialize the export filter using setStreamToString().

See also
setStreamToString()

References stream().

Here is the call graph for this function:

◆ progress()

const int CAFile::progress ( )
inline

References _progress.

Referenced by CAMainWinProgressCtl::on_updateTimer_timeout(), and setProgress().

Here is the caller graph for this function:

◆ readableStatus()

virtual const QString CAFile::readableStatus ( )
pure virtual

Implemented in CAMusicXmlImport, CAMidiImport, CALilyPondImport, CAImport, and CAExport.

Referenced by CAMainWinProgressCtl::on_updateTimer_timeout().

Here is the caller graph for this function:

◆ setFile()

void CAFile::setFile ( QFile *  file)
inlineprotected

References _file, and file().

Referenced by CAFile(), setStreamFromFile(), and setStreamToFile().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setProgress()

void CAFile::setProgress ( const int  progress)
inlineprotected

References _progress, and progress().

Referenced by CAFile(), CACanorusMLExport::exportDocumentImpl(), and CAMidiImport::writeMidiFileEventsToScore_New().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setStatus()

void CAFile::setStatus ( const int  status)
inlineprotected

◆ setStream()

virtual void CAFile::setStream ( QTextStream *  stream)
inlineprotectedvirtual

References _stream, and stream().

Referenced by CAExport::CAExport(), CAFile(), CAImport::CAImport(), setStreamFromDevice(), setStreamFromFile(), setStreamToDevice(), and setStreamToFile().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setStreamFromDevice()

void CAFile::setStreamFromDevice ( QIODevice *  device)

Creates and sets the stream from the given device. Read-only if the device is not already open.

References _deleteStream, setStream(), and stream().

Here is the call graph for this function:

◆ setStreamFromFile()

void CAFile::setStreamFromFile ( const QString  filename)

Creates and sets the stream from the file named filename. Stream is Read-only. This method is usually called from the main window when opening a document. This method is also very important for python developers as they cannot directly access QTextStream class, so they call this wrapper instead with a simple string as parameter.

References _deleteStream, file(), setFile(), setStream(), and stream().

Referenced by CAImport::setStreamFromFile().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setStreamToDevice()

void CAFile::setStreamToDevice ( QIODevice *  device)

Creates and sets the stream from the given device. Read-write if the given device is not already open.

References _deleteStream, setStream(), and stream().

Referenced by CATypesetCtl::exportDocument(), CACanExport::exportDocumentImpl(), CATypesetCtl::exportSheet(), and setStreamToString().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setStreamToFile()

void CAFile::setStreamToFile ( const QString  filename)

Creates and sets the stream from the file named filename. Stream is Read-Write. This method is usually called from the main window when saving the document. This method is also very important for python developers as they cannot directly access QTextStream class, so they call this wrapper instead with a simple string as parameter.

References _deleteStream, file(), setFile(), setStream(), and stream().

Referenced by CAExport::setStreamToFile().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setStreamToString()

void CAFile::setStreamToString ( )

Creates and sets a new virtual IO device usually used for exporting document to a string when QTextStream/QIODevice API is not available (eg. when writing external Python plugins).

See also
getStreamAsString()

References setStreamToDevice().

Here is the call graph for this function:

◆ status()

const int CAFile::status ( )
inline

◆ stream()

QTextStream* CAFile::stream ( )
inlineprotected

Member Data Documentation

◆ _deleteStream

bool CAFile::_deleteStream
private

◆ _file

QFile* CAFile::_file
private

Referenced by file(), and setFile().

◆ _progress

int CAFile::_progress
private

Referenced by progress(), and setProgress().

◆ _status

int CAFile::_status
private

Referenced by setStatus(), and status().

◆ _stream

QTextStream* CAFile::_stream
private

Referenced by setStream(), and stream().


The documentation for this class was generated from the following files: