Jump to content

Development/Tutorials/Plasma4/Ruby/SimplePasteAppletCompleted

From KDE TechBase
Revision as of 16:58, 22 December 2009 by Dennis p (talk | contribs) (This is the result the Ruby student gets when expanding SimplePasteApplet as instructed.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This is what the completed code for the Simple Paste Applet looks like:

require 'plasma_applet'

module RubyTest

 class Main < PlasmaScripting::Applet
   def initialize parent
     super parent
   end

   def init
     set_minimum_size 150, 150

     layout = Qt::GraphicsLinearLayout.new Qt::Vertical, self
     self.layout = layout
     
     # Three items being laid out:
     
     label = Plasma::Label.new self
     label.text = 'This plasmoid will copy the text you enter below to the clipboard.'
     layout.add_item label
     
     line_edit = Plasma::LineEdit.new self
     begin # only possible in Plasma 4.3 and up 
       line_edit.clear_button_shown = true
     rescue
     end
     layout.add_item line_edit
     
     button = Plasma::PushButton.new self
     button.text = 'Copy to clipboard'
     layout.add_item button
     
     # The layout is done now comes the action:
     
     button.connect(SIGNAL(:clicked)) do
       Qt::Application.clipboard.text = line_edit.text
     end
     
     line_edit.connect(SIGNAL(:returnPressed)) do
       Qt::Application.clipboard.text = line_edit.text
     end
   end
   
 end

end