Home | All Classes | Main Classes | Annotated | Grouped Classes | Functions

chart/chartform_files.cpp Example File

#include "canvasview.h"
#include "chartform.h"

#include <qfile.h>
#include <qfiledialog.h>
#include <qpainter.h>
#include <qprinter.h>
#include <qstatusbar.h>


void ChartForm::load( const QString& filename )
{
    QFile file( filename );
    if ( !file.open( IO_ReadOnly ) ) {
        statusBar()->message( QString( "Failed to load \'%1\'" ).
                                arg( filename ), 2000 );
        return;
    }

    init(); // Make sure we have colours
    m_filename = filename;
    QTextStream ts( &file );
    Element element;
    int errors = 0;
    int i = 0;
    while ( !ts.eof() ) {
        ts >> element;
        if ( element.isValid() )
            m_elements[i++] = element;
        else
            errors++;
        if ( i == MAX_ELEMENTS ) {
            statusBar()->message(
                QString( "Read maximum number of elements (%1)"
                         " discarding others" ).arg( i ), 2000 );
            break;
        }
    }

    file.close();

    QString bad = "";
    if ( errors ) {
        bad = QString( "; skipped " ) + QString::number( errors ) + " bad record";
        if ( errors > 1 )
            bad += "s";
    }
    statusBar()->message( QString( "Read %1 values from \'%2\'%3" ).
                          arg( i ).arg( filename ).arg( bad ), 3000 );

    setCaption( QString( "Chart -- %1" ).arg( filename ) );
    updateRecentFiles( filename );

    drawElements();
    m_changed = FALSE;
}


void ChartForm::fileSave()
{
    if ( m_filename.isEmpty() ) {
        fileSaveAs();
        return;
    }

    QFile file( m_filename );
    if ( !file.open( IO_WriteOnly ) ) {
        statusBar()->message( QString( "Failed to save \'%1\'" ).
                                arg( m_filename ), 2000 );
        return;
    }
    QTextStream ts( &file );
    for ( int i = 0; i < MAX_ELEMENTS; ++i )
        if ( m_elements[i].isValid() )
            ts << m_elements[i];

    file.close();

    setCaption( QString( "Chart -- %1" ).arg( m_filename ) );
    statusBar()->message( QString( "Saved \'%1\'" ).arg( m_filename ), 2000 );
    m_changed = FALSE;
}


void ChartForm::fileSaveAsPixmap()
{
    QString filename = QFileDialog::getSaveFileName(
                            QString::null, "Images (*.png *.xpm *.jpg)",
                            this, "file save as bitmap",
                            "Chart -- File Save As Bitmap" );
    if ( QPixmap::grabWidget( m_canvasView ).
            save( filename,
                  filename.mid( filename.findRev( '.' ) + 1 ).upper() ) )
        statusBar()->message( QString( "Wrote \'%1\'" ).arg( filename ), 2000 );
    else
        statusBar()->message( QString( "Failed to write \'%1\'" ).
                                arg( filename ), 2000 );
}

void ChartForm::filePrint()
{
    if ( !m_printer )
        m_printer = new QPrinter;
    if ( m_printer->setup() ) {
        QPainter painter( m_printer );
        m_canvas->drawArea( QRect( 0, 0, m_canvas->width(), m_canvas->height() ),
                            &painter, FALSE );
        if ( !m_printer->outputFileName().isEmpty() )
            statusBar()->message( QString( "Printed \'%1\'" ).
                                  arg( m_printer->outputFileName() ), 2000 );
    }
}


Copyright © 2007 TrolltechTrademarks
Qt 3.3.8