From 90825e2392b2d70e43c7a25b8a3752299a933894 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: 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 --- korundum/rubylib/tutorials/p7/p7.rb | 127 ++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 korundum/rubylib/tutorials/p7/p7.rb (limited to 'korundum/rubylib/tutorials/p7') diff --git a/korundum/rubylib/tutorials/p7/p7.rb b/korundum/rubylib/tutorials/p7/p7.rb new file mode 100644 index 00000000..650f4db5 --- /dev/null +++ b/korundum/rubylib/tutorials/p7/p7.rb @@ -0,0 +1,127 @@ +require 'Korundum' + +class Browser < KDE::MainWindow + k_dcop 'void setURL(QString)' + + slots 'fileSetDefaultPage()', + 'changeLocation()', + 'bookLocation()', + 'gotoPreviousPage()', + 'openURLRequest(const KURL&, const KParts::URLArgs&)' + + TOOLBAR_ID_ADDBOOKMARK = 1 + TOOLBAR_ID_BACK = 2 + TOOLBAR_ID_QUIT = 3 + + def initialize( name ) + super(nil, name) + setCaption("KDE Tutorial - p7") + @history = [] + + filemenu = Qt::PopupMenu.new + filemenu.insertItem( i18n( "&Set default page" ), + self, SLOT( 'fileSetDefaultPage()' ) ) + filemenu.insertItem(i18n( "&Quit" ), $kapp, SLOT( 'quit()' )) + about = + i18n("p7 1.0\n\n" + + "(C) 1999-2002 Antonio Larrosa Jimenez\n" + + "larrosa@kde.org\t\tantlarr@supercable.es\n" + + "Malaga (Spain)\n\n" + + "Simple KDE Tutorial\n" + + "This tutorial comes with ABSOLUTELY NO WARRANTY \n" + + "This is free software, and you are welcome to redistribute it\n" + + "under certain conditions\n"); + + helpmenu = helpMenu(about) + menu = menuBar() + menu.insertItem( i18n( "&File" ), filemenu) + menu.insertSeparator() + menu.insertItem(i18n("&Help"), helpmenu) + + toolbar = KDE::ToolBar.new(self) + + icons = KDE::IconLoader.new() + toolbar.insertButton(icons.loadIcon("reload", KDE::Icon::Toolbar), TOOLBAR_ID_ADDBOOKMARK, + SIGNAL('clicked(int)'),self,SLOT('bookLocation()'),true, + i18n("Add to Bookmarks")) + toolbar.insertButton(icons.loadIcon("back", KDE::Icon::Toolbar), TOOLBAR_ID_BACK, + SIGNAL('clicked(int)'),self,SLOT('gotoPreviousPage()'), + false, i18n("Back to previous page")) + toolbar.insertButton(icons.loadIcon("exit", KDE::Icon::Toolbar), TOOLBAR_ID_QUIT, + SIGNAL('clicked(int)'),$kapp,SLOT('quit()'),true, + i18n("Quit the application")) + addToolBar(toolbar) + + vbox = Qt::VBox.new( self ) + + @location = Qt::LineEdit.new( vbox ) + + config = $kapp.config() + config.setGroup("Settings") + @location.text = config.readEntry( "defaultPage", "http://localhost") + + connect( @location , SIGNAL( 'returnPressed()' ), + self, SLOT( 'changeLocation()' ) ) + + split = Qt::Splitter.new( vbox ) + split.setOpaqueResize() + + @browser = KDE::HTMLPart.new( split ) + @browser.openURL( KDE::URL.new(@location.text()) ) + + connect( @browser.browserExtension(), + SIGNAL( 'openURLRequest( const KURL&, const KParts::URLArgs& )' ), + self, SLOT( 'openURLRequest(const KURL&, const KParts::URLArgs& )' ) ) + setCentralWidget(vbox) + end + + def changeLocation() + @history.push( @browser.url().url() ); + toolBar().setItemEnabled( TOOLBAR_ID_BACK, true) + @browser.openURL( KDE::URL.new(@location.text()) ) + end + + def setURL( url ) + @location.text = url + changeLocation() + end + + def openURLRequest(url, part) + setURL( url.url() ) + end + + def gotoPreviousPage() + @location.text = @history.pop() + if @history.empty? + toolBar().setItemEnabled(TOOLBAR_ID_BACK, false) + end + @browser.openURL( KDE::URL.new(@location.text()) ) + end + + def bookLocation() + dcopRef = KDE::DCOPRef.new("p8", "BookMarkList") + if ! dcopRef.add(@location.text()) + qWarning("Error with DCOP\n") + end + end + + def fileSetDefaultPage() + config = $kapp.config() + + config.group = "Settings" + config.writeEntry( "defaultPage", @browser.url().url() ) + end +end + + about = KDE::AboutData.new("p7", "Tutorial - p7", "0.1") + KDE::CmdLineArgs.init(ARGV, about) + a = KDE::UniqueApplication.new() + + window = Browser.new( "Tutorial - p7" ) + window.resize( 300, 200 ) + + a.mainWidget = window + window.show + + a.exec + -- cgit v1.2.1