summaryrefslogtreecommitdiffstats
path: root/qtruby/rubylib/examples/qt-examples/chart/chartform_files.rb
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commit90825e2392b2d70e43c7a25b8a3752299a933894 (patch)
treee33aa27f02b74604afbfd0ea4f1cfca8833d882a /qtruby/rubylib/examples/qt-examples/chart/chartform_files.rb
downloadtdebindings-90825e2392b2d70e43c7a25b8a3752299a933894.tar.gz
tdebindings-90825e2392b2d70e43c7a25b8a3752299a933894.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebindings@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'qtruby/rubylib/examples/qt-examples/chart/chartform_files.rb')
-rw-r--r--qtruby/rubylib/examples/qt-examples/chart/chartform_files.rb102
1 files changed, 102 insertions, 0 deletions
diff --git a/qtruby/rubylib/examples/qt-examples/chart/chartform_files.rb b/qtruby/rubylib/examples/qt-examples/chart/chartform_files.rb
new file mode 100644
index 00000000..648aba62
--- /dev/null
+++ b/qtruby/rubylib/examples/qt-examples/chart/chartform_files.rb
@@ -0,0 +1,102 @@
+class ChartForm
+
+ def load( filename )
+ file = Qt::File.new( filename )
+ if !file.open( Qt::IO_ReadOnly )
+ statusBar().message( "Failed to load \'%s\'" % filename, 2000 )
+ return
+ end
+
+ init() # Make sure we have colours
+ @filename = filename
+ ts = Qt::TextStream.new( file )
+ errors = 0
+ i = 0
+ while !ts.eof()
+ element = Element.new
+ ts >> element
+ if element.isValid()
+ @elements[i] = element
+ i += 1
+ else
+ errors += 1
+ end
+ if i == MAX_ELEMENTS
+ statusBar().message("Read maximum number of elements (%d) discarding others" % i, 2000 )
+ break
+ end
+ end
+
+ file.close()
+
+ bad = ""
+ if errors > 0
+ bad = " skipped %d bad record" % errors
+ if errors > 1
+ bad += "s"
+ end
+ end
+ statusBar().message( "Read %d values from \'%s\'" % [i, filename], 3000 )
+
+ setCaption( "Chart -- %s" % filename )
+ updateRecentFiles( filename )
+
+ drawElements()
+ @changed = false
+ end
+
+
+ def fileSave()
+ if @filename.nil?
+ fileSaveAs()
+ return
+ end
+
+ file = Qt::File.new( @filename )
+ if !file.open( Qt::IO_WriteOnly )
+ statusBar().message( "Failed to save \'%s\'" % @filename, 2000 )
+ return
+ end
+ ts = Qt::TextStream.new( file )
+ for i in 0...MAX_ELEMENTS
+ if @elements[i].isValid()
+ ts << @elements[i]
+ end
+ end
+
+ file.close()
+
+ setCaption( "Chart -- %s" % @filename )
+ statusBar().message( "Saved \'%s\'" % @filename, 2000 )
+ @changed = false
+ end
+
+
+ def fileSaveAsPixmap()
+ filename = Qt::FileDialog.getSaveFileName(nil, "Images (*.png *.xpm *.jpg)",
+ self, "file save as bitmap",
+ "Chart -- File Save As Bitmap" )
+ if Qt::Pixmap.grabWidget( @canvasView ).save( filename,
+ filename.sub(/.*\.([^.]*)$/, '\1').upcase() )
+ statusBar().message( "Wrote \'%s\'" % filename, 2000 )
+ else
+ statusBar().message( "Failed to write \'%s\'" % filename, 2000 )
+ end
+ end
+
+ def filePrint()
+ if !@printer
+ @printer = Qt::Printer.new
+ end
+ if @printer.setup()
+ painter = Qt::Painter.new( @printer )
+ @canvas.drawArea( Qt::Rect.new( 0, 0, @canvas.width(), @canvas.height() ),
+ painter, false )
+ if !@printer.outputFileName().empty?
+ statusBar().message( "Printed \'%s\'" % @printer.outputFileName(), 2000 )
+ end
+ end
+ end
+
+end
+