1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154
|
%{CPP_TEMPLATE}
#include "%{APPNAMELC}.h"
#include "settings.h"
#include "prefs.h"
#include <qdragobject.h>
#include <kprinter.h>
#include <qpainter.h>
#include <qpaintdevicemetrics.h>
#include <kconfigdialog.h>
#include <kglobal.h>
#include <klocale.h>
#include <kiconloader.h>
#include <kdeversion.h>
#include <kmenubar.h>
#include <kstatusbar.h>
#include <kkeydialog.h>
#include <kedittoolbar.h>
#include <kstdaccel.h>
#include <kaction.h>
#include <kstdaction.h>
%{APPNAME}::%{APPNAME}()
: KMainWindow( 0, "%{APPNAME}" ),
m_view(new %{APPNAME}View(this)),
m_printer(0)
{
// accept dnd
setAcceptDrops(true);
// tell the KMainWindow that this is indeed the main widget
setCentralWidget(m_view);
// then, setup our actions
setupActions();
// and a status bar
statusBar()->show();
// apply the saved mainwindow settings, if any, and ask the mainwindow
// to automatically save settings if changed: window size, toolbar
// position, icon size, etc.
setAutoSaveSettings();
// allow the view to change the statusbar and caption
connect(m_view, SIGNAL(signalChangeStatusbar(const QString&)),
this, SLOT(changeStatusbar(const QString&)));
connect(m_view, SIGNAL(signalChangeCaption(const QString&)),
this, SLOT(changeCaption(const QString&)));
}
%{APPNAME}::~%{APPNAME}()
{
}
void %{APPNAME}::setupActions()
{
KStdAction::openNew(this, SLOT(fileNew()), actionCollection());
KStdAction::quit(kapp, SLOT(quit()), actionCollection());
m_toolbarAction = KStdAction::showToolbar(this, SLOT(optionsShowToolbar()), actionCollection());
m_statusbarAction = KStdAction::showStatusbar(this, SLOT(optionsShowStatusbar()), actionCollection());
KStdAction::keyBindings(this, SLOT(optionsConfigureKeys()), actionCollection());
KStdAction::configureToolbars(this, SLOT(optionsConfigureToolbars()), actionCollection());
KStdAction::preferences(this, SLOT(optionsPreferences()), actionCollection());
// custom menu and menu item - the slot is in the class %{APPNAME}View
KAction *custom = new KAction(i18n("Swi&tch Colors"), 0,
m_view, SLOT(switchColors()),
actionCollection(), "switch_action");
createGUI();
}
void %{APPNAME}::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
(new %{APPNAME})->show();
}
void %{APPNAME}::optionsShowToolbar()
{
// this is all very cut and paste code for showing/hiding the
// toolbar
if (m_toolbarAction->isChecked())
toolBar()->show();
else
toolBar()->hide();
}
void %{APPNAME}::optionsShowStatusbar()
{
// show/hide the statusbar
if (m_statusbarAction->isChecked())
statusBar()->show();
else
statusBar()->hide();
}
void %{APPNAME}::optionsConfigureKeys()
{
KKeyDialog::configure(actionCollection());
}
void %{APPNAME}::optionsConfigureToolbars()
{
// use the standard toolbar editor
saveMainWindowSettings(KGlobal::config(), autoSaveGroup());
}
void %{APPNAME}::newToolbarConfig()
{
// this slot is called when user clicks "Ok" or "Apply" in the toolbar editor.
// recreate our GUI, and re-apply the settings (e.g. "text under icons", etc.)
createGUI();
applyMainWindowSettings(KGlobal::config(), autoSaveGroup());
}
void %{APPNAME}::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
KConfigDialog *dialog = new KConfigDialog(this, "settings", Settings::self(), KDialogBase::Swallow);
dialog->addPage(new Prefs(), i18n("General"), "package_settings");
connect(dialog, SIGNAL(settingsChanged()), m_view, SLOT(settingsChanged()));
dialog->show();
}
void %{APPNAME}::changeStatusbar(const QString& text)
{
// display the text on the statusbar
statusBar()->message(text, 2000);
}
void %{APPNAME}::changeCaption(const QString& text)
{
// display the text on the caption
setCaption(text);
}
#include "%{APPNAMELC}.moc"
|