summaryrefslogtreecommitdiffstats
path: root/languages/ruby/app_templates/kxt/app.rb
diff options
context:
space:
mode:
Diffstat (limited to 'languages/ruby/app_templates/kxt/app.rb')
-rw-r--r--languages/ruby/app_templates/kxt/app.rb94
1 files changed, 94 insertions, 0 deletions
diff --git a/languages/ruby/app_templates/kxt/app.rb b/languages/ruby/app_templates/kxt/app.rb
new file mode 100644
index 00000000..39da5345
--- /dev/null
+++ b/languages/ruby/app_templates/kxt/app.rb
@@ -0,0 +1,94 @@
+=begin
+ This class serves as the main window for %{APPNAME}. It handles the
+ menus, toolbars, and status bars.
+
+ @short Main window class
+ @author %{AUTHOR} <%{EMAIL}>
+ @version %{VERSION}
+=end
+
+class %{APPNAMESC} < KDE::MainWindow
+
+ slots 'fileNew()',
+ 'optionsPreferences()',
+ 'newToolbarConfig()',
+ 'changeStatusbar(const QString&)',
+ 'changeCaption(const QString&)'
+
+ def initialize()
+ super( nil, "%{APPNAMESC}" )
+ Settings.instance.readConfig
+ @view = %{APPNAMESC}View.new(self)
+ @printer = nil
+
+ # accept dnd
+ setAcceptDrops(true)
+
+ # tell the KDE::MainWindow that this is indeed the main widget
+ setCentralWidget(@view)
+
+ # then, setup our actions
+ setupActions()
+
+ # and a status bar
+ statusBar().show()
+
+ # Apply the create the main window and ask the mainwindow to
+ # automatically save settings if changed: window size, toolbar
+ # position, icon size, etc. Also to add actions for the statusbar
+ # toolbar, and keybindings if necessary.
+ setupGUI();
+
+ # allow the view to change the statusbar and caption
+ connect(@view, SIGNAL('signalChangeStatusbar(const QString&)'),
+ self, SLOT('changeStatusbar(const QString&)'))
+ connect(@view, SIGNAL('signalChangeCaption(const QString&)'),
+ self, SLOT('changeCaption(const QString&)'))
+
+ end
+
+ def setupActions()
+ KDE::StdAction.openNew(self, SLOT('fileNew()'), actionCollection())
+ KDE::StdAction.quit($kapp, SLOT('quit()'), actionCollection())
+
+ KDE::StdAction.preferences(self, SLOT('optionsPreferences()'), actionCollection())
+
+ # this doesn't do anything useful. it's just here to illustrate
+ # how to insert a custom menu and menu item
+ custom = KDE::Action.new(i18n("Swi&tch Colors"), KDE::Shortcut.new(),
+ @view, SLOT('switchColors()'),
+ actionCollection(), "switch_action")
+ end
+
+ def fileNew()
+ # This slot is called whenever the File.New menu is selected,
+ # the New shortcut is pressed (usually CTRL+N) or the New toolbar
+ # button is clicked
+
+ # create a new window
+ %{APPNAMESC}.new.show()
+ end
+
+ def optionsPreferences()
+ # The preference dialog is derived from prefs-base.ui which is subclassed into Prefs
+ #
+ # compare the names of the widgets in the .ui file
+ # to the names of the variables in the .kcfg file
+ dialog = KDE::ConfigDialog.new(self, "settings", Settings.instance, KDE::DialogBase::Swallow)
+ dialog.addPage(Prefs.new(), i18n("General"), "package_settings")
+ connect(dialog, SIGNAL('settingsChanged()'), @view, SLOT('settingsChanged()'))
+ dialog.show()
+
+ end
+
+ def changeStatusbar(text)
+ # display the text on the statusbar
+ statusBar().message(text)
+ end
+
+ def changeCaption(text)
+ # display the text on the caption
+ setCaption(text)
+ end
+
+end