summaryrefslogtreecommitdiffstats
path: root/examples/chart/chartform_files.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/chart/chartform_files.cpp')
-rw-r--r--examples/chart/chartform_files.cpp113
1 files changed, 113 insertions, 0 deletions
diff --git a/examples/chart/chartform_files.cpp b/examples/chart/chartform_files.cpp
new file mode 100644
index 000000000..742dbeaa1
--- /dev/null
+++ b/examples/chart/chartform_files.cpp
@@ -0,0 +1,113 @@
+#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 TQString& filename )
+{
+ TQFile file( filename );
+ if ( !file.open( IO_ReadOnly ) ) {
+ statusBar()->message( TQString( "Failed to load \'%1\'" ).
+ arg( filename ), 2000 );
+ return;
+ }
+
+ init(); // Make sure we have colours
+ m_filename = filename;
+ TQTextStream 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(
+ TQString( "Read maximum number of elements (%1)"
+ " discarding others" ).arg( i ), 2000 );
+ break;
+ }
+ }
+
+ file.close();
+
+ TQString bad = "";
+ if ( errors ) {
+ bad = TQString( "; skipped " ) + TQString::number( errors ) + " bad record";
+ if ( errors > 1 )
+ bad += "s";
+ }
+ statusBar()->message( TQString( "Read %1 values from \'%2\'%3" ).
+ arg( i ).arg( filename ).arg( bad ), 3000 );
+
+ setCaption( TQString( "Chart -- %1" ).arg( filename ) );
+ updateRecentFiles( filename );
+
+ drawElements();
+ m_changed = FALSE;
+}
+
+
+void ChartForm::fileSave()
+{
+ if ( m_filename.isEmpty() ) {
+ fileSaveAs();
+ return;
+ }
+
+ TQFile file( m_filename );
+ if ( !file.open( IO_WriteOnly ) ) {
+ statusBar()->message( TQString( "Failed to save \'%1\'" ).
+ arg( m_filename ), 2000 );
+ return;
+ }
+ TQTextStream ts( &file );
+ for ( int i = 0; i < MAX_ELEMENTS; ++i )
+ if ( m_elements[i].isValid() )
+ ts << m_elements[i];
+
+ file.close();
+
+ setCaption( TQString( "Chart -- %1" ).arg( m_filename ) );
+ statusBar()->message( TQString( "Saved \'%1\'" ).arg( m_filename ), 2000 );
+ m_changed = FALSE;
+}
+
+
+void ChartForm::fileSaveAsPixmap()
+{
+ TQString filename = TQFileDialog::getSaveFileName(
+ TQString::null, "Images (*.png *.xpm *.jpg)",
+ this, "file save as bitmap",
+ "Chart -- File Save As Bitmap" );
+ if ( TQPixmap::grabWidget( m_canvasView ).
+ save( filename,
+ filename.mid( filename.findRev( '.' ) + 1 ).upper() ) )
+ statusBar()->message( TQString( "Wrote \'%1\'" ).arg( filename ), 2000 );
+ else
+ statusBar()->message( TQString( "Failed to write \'%1\'" ).
+ arg( filename ), 2000 );
+}
+
+void ChartForm::filePrint()
+{
+ if ( !m_printer )
+ m_printer = new TQPrinter;
+ if ( m_printer->setup() ) {
+ TQPainter painter( m_printer );
+ m_canvas->drawArea( TQRect( 0, 0, m_canvas->width(), m_canvas->height() ),
+ &painter, FALSE );
+ if ( !m_printer->outputFileName().isEmpty() )
+ statusBar()->message( TQString( "Printed \'%1\'" ).
+ arg( m_printer->outputFileName() ), 2000 );
+ }
+}
+