-/***************************************************************************
- bc.cpp - description
- -------------------
- begin : Sun May 27 22:13:58 CEST 2001
- copyright : (C) 2001 by Michael Andreen
- email : whale@linux.nu
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-#include "../config.h"
-
-#include <qaccel.h>
#include "bs.h"
-#include "filesave.xpm"
-#include "fileopen.xpm"
-#include "filenew.xpm"
-
-BSApp::BSApp()
-{
- setCaption(tr("Bc " VERSION));
- ///////////////////////////////////////////////////////////////////
- // call inits to invoke all other construction parts
- initActions();
- initMenuBar();
- initToolBar();
- initStatusBar();
+//Own includes
+#include "bsview.h"
+#include "bsdoc.h"
- initDoc();
- initView();
-
- viewToolBar->setOn(true);
- viewStatusBar->setOn(true);
-}
-
-BSApp::~BSApp()
+/*
+ * Constructs a BSApp which is a child of 'parent', with the
+ * name 'name' and widget flags set to 'f'
+ */
+BSApp::BSApp( QWidget* parent, const char* name, WFlags fl )
+ : BSAppBase( parent, name, fl )
{
+ doc = new BSDoc();
+ view = new BSView(this,doc);
+ setCentralWidget(view);
}
-/** initializes all QActions of the application */
-void BSApp::initActions(){
-
- QPixmap openIcon, saveIcon, newIcon;
- newIcon = QPixmap(filenew);
- openIcon = QPixmap(fileopen);
- saveIcon = QPixmap(filesave);
-
-
- fileNew = new QAction(tr("New File"), newIcon, tr("&New"), QAccel::stringToKey(tr("Ctrl+N")), this);
- fileNew->setStatusTip(tr("Creates a new document"));
- fileNew->setWhatsThis(tr("New File\n\nCreates a new document"));
- connect(fileNew, SIGNAL(activated()), this, SLOT(slotFileNew()));
-
- fileOpen = new QAction(tr("Open File"), openIcon, tr("&Open..."), 0, this);
- fileOpen->setStatusTip(tr("Opens an existing document"));
- fileOpen->setWhatsThis(tr("Open File\n\nOpens an existing document"));
- connect(fileOpen, SIGNAL(activated()), this, SLOT(slotFileOpen()));
-
- fileSave = new QAction(tr("Save File"), saveIcon, tr("&Save"), QAccel::stringToKey(tr("Ctrl+S")), this);
- fileSave->setStatusTip(tr("Saves the actual document"));
- fileSave->setWhatsThis(tr("Save File.\n\nSaves the actual document"));
- connect(fileSave, SIGNAL(activated()), this, SLOT(slotFileSave()));
-
- fileSaveAs = new QAction(tr("Save File As"), tr("Save &as..."), 0, this);
- fileSaveAs->setStatusTip(tr("Saves the actual document under a new filename"));
- fileSaveAs->setWhatsThis(tr("Save As\n\nSaves the actual document under a new filename"));
- connect(fileSaveAs, SIGNAL(activated()), this, SLOT(slotFileSave()));
-
- fileClose = new QAction(tr("Close File"), tr("&Close"), QAccel::stringToKey(tr("Ctrl+W")), this);
- fileClose->setStatusTip(tr("Closes the actual document"));
- fileClose->setWhatsThis(tr("Close File\n\nCloses the actual document"));
- connect(fileClose, SIGNAL(activated()), this, SLOT(slotFileClose()));
-
- filePrint = new QAction(tr("Print File"), tr("&Print"), QAccel::stringToKey(tr("Ctrl+P")), this);
- filePrint->setStatusTip(tr("Prints out the actual document"));
- filePrint->setWhatsThis(tr("Print File\n\nPrints out the actual document"));
- connect(filePrint, SIGNAL(activated()), this, SLOT(slotFilePrint()));
-
- fileQuit = new QAction(tr("Exit"), tr("E&xit"), QAccel::stringToKey(tr("Ctrl+Q")), this);
- fileQuit->setStatusTip(tr("Quits the application"));
- fileQuit->setWhatsThis(tr("Exit\n\nQuits the application"));
- connect(fileQuit, SIGNAL(activated()), this, SLOT(slotFileQuit()));
-
- editCut = new QAction(tr("Cut"), tr("Cu&t"), QAccel::stringToKey(tr("Ctrl+X")), this);
- editCut->setStatusTip(tr("Cuts the selected section and puts it to the clipboard"));
- editCut->setWhatsThis(tr("Cut\n\nCuts the selected section and puts it to the clipboard"));
- connect(editCut, SIGNAL(activated()), this, SLOT(slotEditCut()));
-
- editCopy = new QAction(tr("Copy"), tr("&Copy"), QAccel::stringToKey(tr("Ctrl+C")), this);
- editCopy->setStatusTip(tr("Copies the selected section to the clipboard"));
- editCopy->setWhatsThis(tr("Copy\n\nCopies the selected section to the clipboard"));
- connect(editCopy, SIGNAL(activated()), this, SLOT(slotEditCopy()));
-
- editPaste = new QAction(tr("Paste"), tr("&Paste"), QAccel::stringToKey(tr("Ctrl+V")), this);
- editPaste->setStatusTip(tr("Pastes the clipboard contents to actual position"));
- editPaste->setWhatsThis(tr("Paste\n\nPastes the clipboard contents to actual position"));
- connect(editPaste, SIGNAL(activated()), this, SLOT(slotEditPaste()));
-
- viewToolBar = new QAction(tr("Toolbar"), tr("Tool&bar"), 0, this, 0, true);
- viewToolBar->setStatusTip(tr("Enables/disables the toolbar"));
- viewToolBar->setWhatsThis(tr("Toolbar\n\nEnables/disables the toolbar"));
- connect(viewToolBar, SIGNAL(toggled(bool)), this, SLOT(slotViewToolBar(bool)));
-
- viewStatusBar = new QAction(tr("Statusbar"), tr("&Statusbar"), 0, this, 0, true);
- viewStatusBar->setStatusTip(tr("Enables/disables the statusbar"));
- viewStatusBar->setWhatsThis(tr("Statusbar\n\nEnables/disables the statusbar"));
- connect(viewStatusBar, SIGNAL(toggled(bool)), this, SLOT(slotViewStatusBar(bool)));
-
- helpAboutApp = new QAction(tr("About"), tr("&About..."), 0, this);
- helpAboutApp->setStatusTip(tr("About the application"));
- helpAboutApp->setWhatsThis(tr("About\n\nAbout the application"));
- connect(helpAboutApp, SIGNAL(activated()), this, SLOT(slotHelpAbout()));
-
-}
-
-void BSApp::initMenuBar()
-{
- ///////////////////////////////////////////////////////////////////
- // MENUBAR
-
- ///////////////////////////////////////////////////////////////////
- // menuBar entry fileMenu
- fileMenu=new QPopupMenu();
- fileNew->addTo(fileMenu);
- fileOpen->addTo(fileMenu);
- fileClose->addTo(fileMenu);
- fileMenu->insertSeparator();
- fileSave->addTo(fileMenu);
- fileSaveAs->addTo(fileMenu);
- fileMenu->insertSeparator();
- filePrint->addTo(fileMenu);
- fileMenu->insertSeparator();
- fileQuit->addTo(fileMenu);
-
- ///////////////////////////////////////////////////////////////////
- // menuBar entry editMenu
- editMenu=new QPopupMenu();
- editCut->addTo(editMenu);
- editCopy->addTo(editMenu);
- editPaste->addTo(editMenu);
-
- ///////////////////////////////////////////////////////////////////
- // menuBar entry viewMenu
- viewMenu=new QPopupMenu();
- viewMenu->setCheckable(true);
- viewToolBar->addTo(viewMenu);
- viewStatusBar->addTo(viewMenu);
- ///////////////////////////////////////////////////////////////////
- // EDIT YOUR APPLICATION SPECIFIC MENUENTRIES HERE
-
- ///////////////////////////////////////////////////////////////////
- // menuBar entry helpMenu
- helpMenu=new QPopupMenu();
- helpAboutApp->addTo(helpMenu);
-
- ///////////////////////////////////////////////////////////////////
- // MENUBAR CONFIGURATION
- menuBar()->insertItem(tr("&File"), fileMenu);
- menuBar()->insertItem(tr("&Edit"), editMenu);
- menuBar()->insertItem(tr("&View"), viewMenu);
- menuBar()->insertSeparator();
- menuBar()->insertItem(tr("&Help"), helpMenu);
-
-}
-
-void BSApp::initToolBar()
+/*
+ * Destroys the object and frees any allocated resources
+ */
+BSApp::~BSApp()
{
- ///////////////////////////////////////////////////////////////////
- // TOOLBAR
- fileToolbar = new QToolBar(this, "file operations");
- fileNew->addTo(fileToolbar);
- fileOpen->addTo(fileToolbar);
- fileSave->addTo(fileToolbar);
- fileToolbar->addSeparator();
- QWhatsThis::whatsThisButton(fileToolbar);
-
+ // no need to delete child widgets, Qt does it all for us
}
-void BSApp::initStatusBar()
+/*
+ * public slot
+ */
+void BSApp::fileNew()
{
- ///////////////////////////////////////////////////////////////////
- //STATUSBAR
- statusBar()->message(tr("Ready."), 2000);
+ qWarning( "BSApp::fileNew() not yet implemented!" );
}
-void BSApp::initDoc()
+/*
+ * public slot
+ */
+void BSApp::fileOpen()
{
- doc=new BSDoc();
+ qWarning( "BSApp::fileOpen() not yet implemented!" );
}
-void BSApp::initView()
+/*
+ * public slot
+ */
+void BSApp::fileSave()
{
- ////////////////////////////////////////////////////////////////////
- // set the main widget here
- view=new BSView(this, doc);
- setCentralWidget(view);
+ qWarning( "BSApp::fileSave() not yet implemented!" );
}
-bool BSApp::queryExit()
+/*
+ * public slot
+ */
+void BSApp::fileSaveAs()
{
- int exit=QMessageBox::information(this, tr("Quit..."),
- tr("Do your really want to quit?"),
- QMessageBox::Ok, QMessageBox::Cancel);
-
- if (exit==1)
- {
-
- }
- else
- {
-
- };
-
- return (exit==1);
+ qWarning( "BSApp::fileSaveAs() not yet implemented!" );
}
-/////////////////////////////////////////////////////////////////////
-// SLOT IMPLEMENTATION
-/////////////////////////////////////////////////////////////////////
-
-
-void BSApp::slotFileNew()
+/*
+ * public slot
+ */
+void BSApp::filePrint()
{
- statusBar()->message(tr("Creating new file..."));
- doc->newDoc();
- statusBar()->message(tr("Ready."));
+ qWarning( "BSApp::filePrint() not yet implemented!" );
}
-void BSApp::slotFileOpen()
+/*
+ * public slot
+ */
+void BSApp::fileExit()
{
- statusBar()->message(tr("Opening file..."));
-
- QString fileName = QFileDialog::getOpenFileName(0,0,this);
- if (!fileName.isEmpty())
- {
- doc->load(fileName);
- setCaption(fileName);
- QString message=tr("Loaded document: ")+fileName;
- statusBar()->message(message, 2000);
- }
- else
- {
- statusBar()->message(tr("Opening aborted"), 2000);
- }
+ qWarning( "BSApp::fileExit() not yet implemented!" );
}
-
-void BSApp::slotFileSave()
+/*
+ * public slot
+ */
+void BSApp::editUndo()
{
- statusBar()->message(tr("Saving file..."));
- doc->save();
- statusBar()->message(tr("Ready."));
+ qWarning( "BSApp::editUndo() not yet implemented!" );
}
-void BSApp::slotFileSaveAs()
+/*
+ * public slot
+ */
+void BSApp::editRedo()
{
- statusBar()->message(tr("Saving file under new filename..."));
- QString fn = QFileDialog::getSaveFileName(0, 0, this);
- if (!fn.isEmpty())
- {
- doc->saveAs(fn);
- }
- else
- {
- statusBar()->message(tr("Saving aborted"), 2000);
- }
-
- statusBar()->message(tr("Ready."));
+ qWarning( "BSApp::editRedo() not yet implemented!" );
}
-void BSApp::slotFileClose()
+/*
+ * public slot
+ */
+void BSApp::editCut()
{
- statusBar()->message(tr("Closing file..."));
-
- statusBar()->message(tr("Ready."));
+ qWarning( "BSApp::editCut() not yet implemented!" );
}
-void BSApp::slotFilePrint()
+/*
+ * public slot
+ */
+void BSApp::editCopy()
{
- statusBar()->message(tr("Printing..."));
- QPrinter printer;
- if (printer.setup(this))
- {
- QPainter painter;
- painter.begin(&printer);
-
- ///////////////////////////////////////////////////////////////////
- // TODO: Define printing by using the QPainter methods here
-
- painter.end();
- };
-
- statusBar()->message(tr("Ready."));
+ qWarning( "BSApp::editCopy() not yet implemented!" );
}
-void BSApp::slotFileQuit()
+/*
+ * public slot
+ */
+void BSApp::editPaste()
{
- statusBar()->message(tr("Exiting application..."));
- ///////////////////////////////////////////////////////////////////
- // exits the Application
- if(doc->isModified())
- {
- if(queryExit())
- {
- qApp->quit();
- }
- else
- {
-
- };
- }
- else
- {
- qApp->quit();
- };
-
- statusBar()->message(tr("Ready."));
-}
-
-void BSApp::slotEditCut()
-{
- statusBar()->message(tr("Cutting selection..."));
-
- statusBar()->message(tr("Ready."));
-}
-
-void BSApp::slotEditCopy()
-{
- statusBar()->message(tr("Copying selection to clipboard..."));
-
- statusBar()->message(tr("Ready."));
+ qWarning( "BSApp::editPaste() not yet implemented!" );
}
-void BSApp::slotEditPaste()
+/*
+ * public slot
+ */
+void BSApp::editFind()
{
- statusBar()->message(tr("Inserting clipboard contents..."));
-
- statusBar()->message(tr("Ready."));
+ qWarning( "BSApp::editFind() not yet implemented!" );
}
-
-void BSApp::slotViewToolBar(bool toggle)
+/*
+ * public slot
+ */
+void BSApp::helpIndex()
{
- statusBar()->message(tr("Toggle toolbar..."));
- ///////////////////////////////////////////////////////////////////
- // turn Toolbar on or off
-
- if (toggle== false)
- {
- fileToolbar->hide();
- }
- else
- {
- fileToolbar->show();
- };
-
- statusBar()->message(tr("Ready."));
+ qWarning( "BSApp::helpIndex() not yet implemented!" );
}
-void BSApp::slotViewStatusBar(bool toggle)
+/*
+ * public slot
+ */
+void BSApp::helpContents()
{
- statusBar()->message(tr("Toggle statusbar..."));
- ///////////////////////////////////////////////////////////////////
- //turn Statusbar on or off
-
- if (toggle == false)
- {
- statusBar()->hide();
- }
- else
- {
- statusBar()->show();
- }
-
- statusBar()->message(tr("Ready."));
+ qWarning( "BSApp::helpContents() not yet implemented!" );
}
-void BSApp::slotHelpAbout()
+/*
+ * public slot
+ */
+void BSApp::helpAbout()
{
- QMessageBox::about(this,tr("About..."),
- tr("Bc\nVersion " VERSION "\n(c) 2001 by Michael Andreen") );
+ qWarning( "BSApp::helpAbout() not yet implemented!" );
}
-/***************************************************************************
- bc.h - description
- -------------------
- begin : Sun May 27 22:13:58 CEST 2001
- copyright : (C) 2001 by Michael Andreen
- email : whale@linux.nu
- ***************************************************************************/
+#ifndef BSAPP_H
+#define BSAPP_H
+#include "ui/bsappbase.h"
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
+//My own forwards
+class BSView;
+class BSDoc;
-#ifndef BC_H
-#define BC_H
+class BSApp : public BSAppBase
+{
+ Q_OBJECT
-// include files for QT
-#include <qapp.h>
-#include <qmainwindow.h>
-#include <qaction.h>
-#include <qmenubar.h>
-#include <qpopupmenu.h>
-#include <qtoolbar.h>
-#include <qtoolbutton.h>
-#include <qstatusbar.h>
-#include <qwhatsthis.h>
-#include <qstring.h>
-#include <qpixmap.h>
-#include <qmsgbox.h>
-#include <qfiledialog.h>
-#include <qprinter.h>
-#include <qpainter.h>
-
-// application specific includes
-#include "bsview.h"
-#include "bsdoc.h"
-
-/**
- * This Class is the base class for your application. It sets up the main
- * window and providing a menubar, toolbar
- * and statusbar. For the main view, an instance of class BcView is
- * created which creates your view.
- */
-class BSApp : public QMainWindow
-{
- Q_OBJECT
-
- public:
- /** construtor */
- BSApp();
- /** destructor */
+public:
+ BSApp( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
~BSApp();
- /** initializes all QActions of the application */
- void initActions();
- /** initMenuBar creates the menu_bar and inserts the menuitems */
- void initMenuBar();
- /** this creates the toolbars. Change the toobar look and add new toolbars in this
- * function */
- void initToolBar();
- /** setup the statusbar */
- void initStatusBar();
- /** setup the document*/
- void initDoc();
- /** setup the mainview*/
- void initView();
-
- /** overloaded for Message box on last window exit */
- bool queryExit();
-
- public slots:
-
- /** generate a new document in the actual view */
- void slotFileNew();
- /** open a document */
- void slotFileOpen();
- /** save a document */
- void slotFileSave();
- /** save a document under a different filename*/
- void slotFileSaveAs();
- /** close the actual file */
- void slotFileClose();
- /** print the actual file */
- void slotFilePrint();
- /** exits the application */
- void slotFileQuit();
- /** put the marked text/object into the clipboard and remove
- * it from the document */
- void slotEditCut();
- /** put the marked text/object into the clipboard*/
- void slotEditCopy();
- /** paste the clipboard into the document*/
- void slotEditPaste();
- /** toggle the toolbar*/
- void slotViewToolBar(bool toggle);
- /** toggle the statusbar*/
- void slotViewStatusBar(bool toggle);
-
- /** shows an about dlg*/
- void slotHelpAbout();
-
-
- private:
-
- /** view is the main widget which represents your working area. The View
- * class should handle all events of the view widget. It is kept empty so
- * you can create your view according to your application's needs by
- * changing the view class.
- */
- BSView* view;
- /** doc represents your actual document and is created only once. It keeps
- * information such as filename and does the serialization of your files.
- */
- BSDoc *doc;
-
- /** file_menu contains all items of the menubar entry "File" */
- QPopupMenu *fileMenu;
- /** edit_menu contains all items of the menubar entry "Edit" */
- QPopupMenu *editMenu;
- /** view_menu contains all items of the menubar entry "View" */
- QPopupMenu *viewMenu;
- /** view_menu contains all items of the menubar entry "Help" */
- QPopupMenu *helpMenu;
- /** the main toolbar */
- QToolBar *fileToolbar;
- /** actions for the application initialized in initActions() and used to en/disable them
- * according to your needs during the program */
- QAction *fileNew;
- QAction *fileOpen;
- QAction *fileSave;
- QAction *fileSaveAs;
- QAction *fileClose;
- QAction *filePrint;
- QAction *fileQuit;
-
- QAction *editCut;
- QAction *editCopy;
- QAction *editPaste;
- QAction *viewToolBar;
- QAction *viewStatusBar;
+public slots:
+ void fileNew();
+ void fileOpen();
+ void fileSave();
+ void fileSaveAs();
+ void filePrint();
+ void fileExit();
+ void editUndo();
+ void editRedo();
+ void editCut();
+ void editCopy();
+ void editPaste();
+ void editFind();
+ void helpIndex();
+ void helpContents();
+ void helpAbout();
+
+protected:
+ BSView* view;
+ BSDoc* doc;
- QAction *helpAboutApp;
};
-#endif
+#endif // BSAPP_H
--- /dev/null
+<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
+<class>BSAppBase</class>
+<widget class="QMainWindow">
+ <property name="name">
+ <cstring>BSAppBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>726</width>
+ <height>519</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>Form1</string>
+ </property>
+</widget>
+<menubar>
+ <property name="name">
+ <cstring>menubar</cstring>
+ </property>
+ <item text="&File" name="fileMenu">
+ <action name="fileNewAction"/>
+ <action name="fileOpenAction"/>
+ <action name="fileSaveAction"/>
+ <action name="fileSaveAsAction"/>
+ <action name="KulSak"/>
+ <separator/>
+ <action name="filePrintAction"/>
+ <separator/>
+ <action name="fileExitAction"/>
+ </item>
+ <item text="&Edit" name="editMenu">
+ <action name="editUndoAction"/>
+ <action name="editRedoAction"/>
+ <separator/>
+ <action name="editCutAction"/>
+ <action name="editCopyAction"/>
+ <action name="editPasteAction"/>
+ <separator/>
+ <action name="editFindAction"/>
+ </item>
+ <item text="&Help" name="helpMenu">
+ <action name="helpContentsAction"/>
+ <action name="helpIndexAction"/>
+ <separator/>
+ <action name="helpAboutAction"/>
+ </item>
+</menubar>
+<toolbars>
+ <toolbar dock="2">
+ <property name="name">
+ <cstring>toolBar</cstring>
+ </property>
+ <property name="label">
+ <string>Tools</string>
+ </property>
+ <action name="fileNewAction"/>
+ <action name="fileOpenAction"/>
+ <action name="fileSaveAction"/>
+ <action name="fileSaveAsAction"/>
+ </toolbar>
+</toolbars>
+<actions>
+ <action>
+ <property name="name">
+ <cstring>fileNewAction</cstring>
+ </property>
+ <property name="iconSet">
+ <iconset>image0</iconset>
+ </property>
+ <property name="text">
+ <string>New</string>
+ </property>
+ <property name="menuText">
+ <string>&New</string>
+ </property>
+ <property name="accel">
+ <number>4194382</number>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>fileOpenAction</cstring>
+ </property>
+ <property name="iconSet">
+ <iconset>image1</iconset>
+ </property>
+ <property name="text">
+ <string>Open</string>
+ </property>
+ <property name="menuText">
+ <string>&Open...</string>
+ </property>
+ <property name="accel">
+ <number>4194383</number>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>fileSaveAction</cstring>
+ </property>
+ <property name="iconSet">
+ <iconset>image2</iconset>
+ </property>
+ <property name="text">
+ <string>Save</string>
+ </property>
+ <property name="menuText">
+ <string>&Save</string>
+ </property>
+ <property name="accel">
+ <number>4194387</number>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>fileSaveAsAction</cstring>
+ </property>
+ <property name="text">
+ <string>Save As</string>
+ </property>
+ <property name="menuText">
+ <string>Save &As...</string>
+ </property>
+ <property name="accel">
+ <number>0</number>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>filePrintAction</cstring>
+ </property>
+ <property name="iconSet">
+ <iconset>image3</iconset>
+ </property>
+ <property name="text">
+ <string>Print</string>
+ </property>
+ <property name="menuText">
+ <string>&Print...</string>
+ </property>
+ <property name="accel">
+ <number>4194384</number>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>fileExitAction</cstring>
+ </property>
+ <property name="text">
+ <string>Exit</string>
+ </property>
+ <property name="menuText">
+ <string>E&xit</string>
+ </property>
+ <property name="accel">
+ <number>0</number>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>editUndoAction</cstring>
+ </property>
+ <property name="iconSet">
+ <iconset>image4</iconset>
+ </property>
+ <property name="text">
+ <string>Undo</string>
+ </property>
+ <property name="menuText">
+ <string>&Undo</string>
+ </property>
+ <property name="accel">
+ <number>4194394</number>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>editRedoAction</cstring>
+ </property>
+ <property name="iconSet">
+ <iconset>image5</iconset>
+ </property>
+ <property name="text">
+ <string>Redo</string>
+ </property>
+ <property name="menuText">
+ <string>&Redo</string>
+ </property>
+ <property name="accel">
+ <number>4194393</number>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>editCutAction</cstring>
+ </property>
+ <property name="iconSet">
+ <iconset>image6</iconset>
+ </property>
+ <property name="text">
+ <string>Cut</string>
+ </property>
+ <property name="menuText">
+ <string>&Cut</string>
+ </property>
+ <property name="accel">
+ <number>4194392</number>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>editCopyAction</cstring>
+ </property>
+ <property name="iconSet">
+ <iconset>image7</iconset>
+ </property>
+ <property name="text">
+ <string>Copy</string>
+ </property>
+ <property name="menuText">
+ <string>C&opy</string>
+ </property>
+ <property name="accel">
+ <number>4194371</number>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>editPasteAction</cstring>
+ </property>
+ <property name="iconSet">
+ <iconset>image8</iconset>
+ </property>
+ <property name="text">
+ <string>Paste</string>
+ </property>
+ <property name="menuText">
+ <string>&Paste</string>
+ </property>
+ <property name="accel">
+ <number>4194390</number>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>editFindAction</cstring>
+ </property>
+ <property name="iconSet">
+ <iconset>image9</iconset>
+ </property>
+ <property name="text">
+ <string>Find</string>
+ </property>
+ <property name="menuText">
+ <string>&Find...</string>
+ </property>
+ <property name="accel">
+ <number>4194374</number>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>helpContentsAction</cstring>
+ </property>
+ <property name="text">
+ <string>Contents</string>
+ </property>
+ <property name="menuText">
+ <string>&Contents...</string>
+ </property>
+ <property name="accel">
+ <number>0</number>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>helpIndexAction</cstring>
+ </property>
+ <property name="text">
+ <string>Index</string>
+ </property>
+ <property name="menuText">
+ <string>&Index...</string>
+ </property>
+ <property name="accel">
+ <number>0</number>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>helpAboutAction</cstring>
+ </property>
+ <property name="text">
+ <string>About</string>
+ </property>
+ <property name="menuText">
+ <string>&About...</string>
+ </property>
+ <property name="accel">
+ <number>0</number>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>KulSak</cstring>
+ </property>
+ <property name="text">
+ <string>Kul sak</string>
+ </property>
+ <property name="accel">
+ <number>0</number>
+ </property>
+ </action>
+</actions>
+<images>
+ <image name="image0">
+ <data format="XPM.GZ" length="721">789cedd2310ac23014c6f13da778245b11ab29c114f1088aa3200eaf2f151daaa07510f1eef64553ac696fe04787fcf90dc9d03481cd7a09492aae35d647023ae0051277abaafb76b77808a93534df0ca67224e4180856e753c967d59cd5c48fb3e0d4b9269d7312a741e30c723a4e9b596333ce92930c69329cc8b9f7f3b7f42e886a1709bea70a3524142812172892325024182892f681bff2f1bf74a5bb2f19fe0f7ae439172f13a0a94f</data>
+ </image>
+ <image name="image1">
+ <data format="XPM.GZ" length="691">789cad914d0ac2301085f739c5d0d905b1b62214c423282e05713189165d5441eb42c4bb9b9fa6a67644045f0299978f3713482a61b59c834cc5a5a6faa041efe90c727badaadb7a33bb8b24cfc1ec0964c9402443d0b0381d77b64653e3c8c95a6d6d312e326fc9dad2c85b156c59ba3eacfe41d0c89defc4dfa2dd7c37fc44b025a179043c4152a4b055f4365414ad0e8901fd94c1ae5e19441da9211c68e7f44098d3074d86019e70a0210c089958df7ffb31154f9c7397a6</data>
+ </image>
+ <image name="image2">
+ <data format="XPM.GZ" length="691">789cd3d7528808f055d0d2e72a2e492cc94c5648ce482c52d04a29cdcdad8c8eb5ade6523232520022530543251d2e253d856405bffcbc54105b19c856360003103711c4b530b63084709340dc64d364a36453103719cc4d49324b0173f5b002b08c32160095494c544e4202400e6932c9406174d39293617a807c226510f6d04e2611d9ff892832688028196554e3b0c9e076010d65b04437341d604f21b5d65c008f8da445</data>
+ </image>
+ <image name="image3">
+ <data format="XPM.GZ" length="2509">789c7d944973db381085effe152af7cd35d5a1242e604dcdc189b37a899d65e2646a0e240168b32cc992bc646afefb34ba1b509671f40c9a9fde43a349507c72d0bb3c3fed1d3cd95b6f9acda4eb75e3e6a67760b7f3f9c35f7ffff1cfdefe60d0a33f637a83fddff6f62f36bdae77b6b87601704000197f98df331bef3313186e03f7b3ccf4c5ff281cc47e9798f378ca6c22835336ea1f461e48bd93c0832c325c0907b1ff3571cdfe9cb94ebc5536cad791877d9eff4ed87bf5178187fde47f101e66c2b04ccc79fc22ecbdfa2be63afab051369a7f889c4b7e1d38ef47c685709ea93f666e7253f0e620f75f34455634ecdf28d7a5f8af853ba77e1bb86cca7ec98c4be55af93e723564fe2cecbdd6e3fb5d0d93cfd753b555bf6a99d7918df899b0f7ea737f6658d5ea6f13b30f23615308233f4fa6adea3a677f229cfcbbc8ea4f95adfa26b2f8c8cf439d478659e28ed90bd75a0f5789d9c737c25da9f32d73177d682237327fa6acf5f12cb2faaf843ba77c1cb8c9a30f9858e64f849b587f9858d607e62ee5ff148e3e5a65a73c8ddc4abd3a709b2706e1b654e6eb6b6deb5acb5c09db52997fdf5dd1955dc15c305b62f15b65a79c47b6927f11d816895f2696f7cf58d896ea3f4f2cfe85b0f7ea3f6576c9ef477625f34839d63f8aac7e19d89589bdb08bf39f2596f997c2deabff96d925df293be54f817d19c47ccecc1f79f9ee84800db6aa8ed4902c36d1ff29dfa0439fe458a35fe63b56ac2f6b748fe6813b08023dc2e3fd502d2bf552efe11c76891ff2bbba4d4aff3a0fa9aea4c3b08fe6bbef6aa72b79346fe9ae78ba7f3b8d694c48d31ff354678657d4cf98e6ec469833c76b5ce032ac13f3945ee10dae71f39db6788b77788f0ff8150f69ce44f25cfb293ec3233a3e57bdc097f80a5fe31b3ca6e409e9141fe4f78a67f816cf7fd205bec3f7345a5ae503d5ff8827f2bec04fff933ec74bfc8c5f30a3b33ef5768803cd0f69f51c0b1a63ee648425777644e715f5153c43dd0cf050debf58e394561902d2dce3f0c8e0844638030877c2400b5daa3fa7f454b2ac331e2c68c082c53bc98393f73757fc26473567922435388711b4a11f186b7dae9c52e93f555e916b6082f7d08143abf547f4cd1d4c694ce8cae46842926acff89b161c78d95f6ae62aec1fd011e6ac6b589096a41569c9e7fedbe7072ddcc09ab48125ed0d09b6b0a5f98e744bfb3bd3e7eddfdff7fe0305be5c9c</data>
+ </image>
+ <image name="image4">
+ <data format="XPM.GZ" length="661">789cd3d7528808f055d0d2e72a2e492cc94c5648ce482c52d04a29cdcdad8c8eb5ade6523232520022630543251d2e253d856405bffcbc54105b19c8563600020b63103711c4b530b6308470f5b082019251068344848c32b23808206494a1e23015890819653db8b81e44255c0659025d460fa70c6e3d78ec814b21b90d052422fb070540f50ebaf84196a9b5e6020008a373c8</data>
+ </image>
+ <image name="image5">
+ <data format="XPM.GZ" length="661">789cd3d7528808f055d0d2e72a2e492cc94c5648ce482c52d04a29cdcdad8c8eb5ade6523232520022630543251d2e253d856405bffcbc54103b11c8563600020b63105719c4b530b6308470f5b0027acb28278201a64c221c4084136132ca7011885c225c06c91890542256193d98a198327a386570ea49449581bb4d2f114d0624a08c230c50fd4f5cb80da04cad351700eee4866e</data>
+ </image>
+ <image name="image6">
+ <data format="XPM.GZ" length="661">789cd3d7528808f055d0d2e72a2e492cc94c5648ce482c52d04a29cdcdad8c8eb5ade6523232520022630543251d2e253d856405bffcbc54105b19c856360003103711c6b53006abc40a90649491482ac92863955146d6822ca387474619c9301419a03842825819245bd064129513b1cb242602512216994430d44bc4904984c8c1a5e032897a3019a8144c26518f800c92715864d0ec81ab4dc4701b924fb0850e8a4cad351700fe117ccc</data>
+ </image>
+ <image name="image7">
+ <data format="XPM.GZ" length="706">789c9d92cb0ac2301045f7f98aa1d915b1da82b4889fa0b814c4c54c6ad14515b42e44fc773b79d057ace04da073399c5042a21076db358491b857589d15a813de20cc1f65f9dc1f562f11c431d47b01f36022822928d85c2f479e653dcb990e5772354db82aae4996a8a2e09a734d29cd4c45ae858e3ed69b71226d3c04757ac81036b05edf1ceca0b643364387ccd7a2c69148c625453d079d936be47350239f637ec3e318ec733aa4edd8f997633374dc4d0d9d86fce1b433f60ede4bf101a375a557</data>
+ </image>
+ <image name="image8">
+ <data format="XPM.GZ" length="736">789c7d92d10a82301486ef7d8ae1ee24321561103d42d165105dcce3465d54507611d1bbb7736cbaadd93f85fd7efb183af38cedb66b96e5c9bd93dd09181ce58d65ede37c7eee0fab57929625339760453a4bd23903b6b95e14ceb999f30505abb255545801aba844d1d3c6d69eb658a186126aac12ab36e9176b5bb5a64da37108c784841e7229251f319101b8885e8837d018c2e9a6b925585a1b6a9640030ec1e63a6302c71faee38fd051434247f51f4c2bad4247936008a2b88368c23128ea50628e9e741ce23bdfcd9cf3e1bf8e3d5fe5e5cf1ff25e261ff1b8c16c</data>
+ </image>
+ <image name="image9">
+ <data format="XPM.GZ" length="2798">789cb5d5594f23471007f0773e8545bda1e8bfbe66ecd16a1fcc7d3ab017ec46799899ee010c0603365794ef9e9afe574f2201118a14350ffcd4d555d5c7c08795d6c9e1416be5c3d2dd3c9f9f97adf22cbf6dadb8c574faf4dbef9ffe585aee765bfad369a7adeef22f4bcb47f356d91a5f5ff91a325648b75d8fe0dde0ac3bec66c17bb57b596fd8a30f6af73bfd76bf531bd3da499e64491ee66fe94127a54774e686bde0d5da6937eda4a1198ccd99c56fd1cdfa7b3af7c322783b388ff128e94167c0fcebe68cc665e3b01ec7f43031cfcd8e96473a4bacdf073af7593fc42f6a0f7ab11eeecdb1de6963e65fa787b67f0ce826bf6bccfacfb41e68193ca38b94f5e5daec398f22b868eafd4a0f63fe9c8efdcb4d63e63fa7353ff325e6385f44e75c7f4697162f4fd19cc7b0f6b017eba31f5d70fe8cce9cf57345e749cefadfcdb1de061dfb93cd689b9f9863fc9c8efdc8a5d95b7ee62bf43e78dea7d1850b163ab37e654ae7dee64b3ad6c73eadf598ffabd9ea49156dfb0ff791f5b3c4ded315dddcf722ba0cf5704117b1ff03baa997465bfe5573acd7a15d9c5f6bccfc99d9f687f0bd676596b824d8999dbd8f07bab0fc8268c6cb1d5dc67cdd68db4f9b6eea7da17dece76774c9fadf6ae77a5e8e7faff6697d2fdccf882e52cea317ede91d3ad6970bda79cb7f4737f5c27de5651ecf7b37daf27da69b7ae77419f31dd22ee69b98637d4f6b3dee37bcb742fbb5fbd9367bcb7f44bbe85bdadb7923e42b5c11cff3992ed32a0d7ea25d5a55c127b44f6dfd8d39e6ff4157b63f09e7572665dccf23edbce59fd155ea8325bcaf52ebd9feb6ccdeea5fd35565e719be67975415f31dcddf3ffe7b3c04390a943a0a38f87f8f4785539ce11c131d17b8d435f276bc464f71856b1d33dce016779863f15a0dde1feef1a071333ce209cf1861156b58c7c61bf14e3bd9d4f82d6c6347c72ef6b08f038c5ff6c4ff0738d44e8ef059f37ec157cdff0ddff5f763b857e34f71821ff8a9a38d0ebae8a18f04290618be113fd13db691a123404f447229a414f746fc3d0ec56be68e5418c9291239937399683f2f76ccbfd79aeb4263f7e552a67225d732d37123b7a85e8dd7bb923b99eb286481bedccb838ec7d76ec0ee6b03737992423b7916a7b9473a56e1644d73f957e23d0a59970dd99489769eebc94cebb344a5aba6ffecaa793f5e6b8c655df7782c5bb2cd18d9d13cbbb2a773fee57bd617ea7426977dd9f93ba3ea40d75886f7bc7fadbd90b156c9dfffbde8def774cdf6fbbf2f48bdf7fffdfbfdf3e3d25f9a24cea0</data>
+ </image>
+</images>
+<connections>
+ <connection>
+ <sender>fileNewAction</sender>
+ <signal>activated()</signal>
+ <receiver>BSAppBase</receiver>
+ <slot>fileNew()</slot>
+ </connection>
+ <connection>
+ <sender>fileOpenAction</sender>
+ <signal>activated()</signal>
+ <receiver>BSAppBase</receiver>
+ <slot>fileOpen()</slot>
+ </connection>
+ <connection>
+ <sender>fileSaveAction</sender>
+ <signal>activated()</signal>
+ <receiver>BSAppBase</receiver>
+ <slot>fileSave()</slot>
+ </connection>
+ <connection>
+ <sender>fileSaveAsAction</sender>
+ <signal>activated()</signal>
+ <receiver>BSAppBase</receiver>
+ <slot>fileSaveAs()</slot>
+ </connection>
+ <connection>
+ <sender>filePrintAction</sender>
+ <signal>activated()</signal>
+ <receiver>BSAppBase</receiver>
+ <slot>filePrint()</slot>
+ </connection>
+ <connection>
+ <sender>fileExitAction</sender>
+ <signal>activated()</signal>
+ <receiver>BSAppBase</receiver>
+ <slot>fileExit()</slot>
+ </connection>
+ <connection>
+ <sender>editUndoAction</sender>
+ <signal>activated()</signal>
+ <receiver>BSAppBase</receiver>
+ <slot>editUndo()</slot>
+ </connection>
+ <connection>
+ <sender>editRedoAction</sender>
+ <signal>activated()</signal>
+ <receiver>BSAppBase</receiver>
+ <slot>editRedo()</slot>
+ </connection>
+ <connection>
+ <sender>editCutAction</sender>
+ <signal>activated()</signal>
+ <receiver>BSAppBase</receiver>
+ <slot>editCut()</slot>
+ </connection>
+ <connection>
+ <sender>editCopyAction</sender>
+ <signal>activated()</signal>
+ <receiver>BSAppBase</receiver>
+ <slot>editCopy()</slot>
+ </connection>
+ <connection>
+ <sender>editPasteAction</sender>
+ <signal>activated()</signal>
+ <receiver>BSAppBase</receiver>
+ <slot>editPaste()</slot>
+ </connection>
+ <connection>
+ <sender>editFindAction</sender>
+ <signal>activated()</signal>
+ <receiver>BSAppBase</receiver>
+ <slot>editFind()</slot>
+ </connection>
+ <connection>
+ <sender>helpIndexAction</sender>
+ <signal>activated()</signal>
+ <receiver>BSAppBase</receiver>
+ <slot>helpIndex()</slot>
+ </connection>
+ <connection>
+ <sender>helpContentsAction</sender>
+ <signal>activated()</signal>
+ <receiver>BSAppBase</receiver>
+ <slot>helpContents()</slot>
+ </connection>
+ <connection>
+ <sender>helpAboutAction</sender>
+ <signal>activated()</signal>
+ <receiver>BSAppBase</receiver>
+ <slot>helpAbout()</slot>
+ </connection>
+</connections>
+<includes>
+ <include location="local" impldecl="in implementation">bsappbase.ui.h</include>
+</includes>
+<slots>
+ <slot>fileNew()</slot>
+ <slot>fileOpen()</slot>
+ <slot>fileSave()</slot>
+ <slot>fileSaveAs()</slot>
+ <slot>filePrint()</slot>
+ <slot>fileExit()</slot>
+ <slot>editUndo()</slot>
+ <slot>editRedo()</slot>
+ <slot>editCut()</slot>
+ <slot>editCopy()</slot>
+ <slot>editPaste()</slot>
+ <slot>editFind()</slot>
+ <slot>helpIndex()</slot>
+ <slot>helpContents()</slot>
+ <slot>helpAbout()</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
--- /dev/null
+/****************************************************************************
+** ui.h extension file, included from the uic-generated form implementation.
+**
+** If you wish to add, delete or rename slots use Qt Designer which will
+** update this file, preserving your code. Create an init() slot in place of
+** a constructor, and a destroy() slot in place of a destructor.
+*****************************************************************************/
+
+
+void BSAppBase::fileNew()
+{
+
+}
+
+void BSAppBase::fileOpen()
+{
+
+}
+
+void BSAppBase::fileSave()
+{
+
+}
+
+void BSAppBase::fileSaveAs()
+{
+
+}
+
+void BSAppBase::filePrint()
+{
+
+}
+
+void BSAppBase::fileExit()
+{
+
+}
+
+void BSAppBase::editUndo()
+{
+
+}
+
+void BSAppBase::editRedo()
+{
+
+}
+
+void BSAppBase::editCut()
+{
+
+}
+
+void BSAppBase::editCopy()
+{
+
+}
+
+void BSAppBase::editPaste()
+{
+
+}
+
+void BSAppBase::editFind()
+{
+
+}
+
+void BSAppBase::helpIndex()
+{
+
+}
+
+void BSAppBase::helpContents()
+{
+
+}
+
+void BSAppBase::helpAbout()
+{
+
+}
\ No newline at end of file