]> ruin.nu Git - hbs.git/commitdiff
Some small changes
authorMichael Andreen <harv@ruin.nu>
Fri, 14 Sep 2001 19:30:42 +0000 (19:30 +0000)
committerMichael Andreen <harv@ruin.nu>
Fri, 14 Sep 2001 19:30:42 +0000 (19:30 +0000)
bs/bs.cpp
bs/bs.h
bs/ui/bsappbase.ui [new file with mode: 0644]
bs/ui/bsappbase.ui.h [new file with mode: 0644]

index 42dc30a8d295b34eb3c8eda071facac9bba178dd..eeea37a1926ed07fe5497580b75af79cdd4bf513 100644 (file)
--- a/bs/bs.cpp
+++ b/bs/bs.cpp
-/***************************************************************************
-                          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!" ); 
 }
 
diff --git a/bs/bs.h b/bs/bs.h
index efdd22a9d703b5664d4ae6a115fa1735aaee0cf0..3ccaa42a8e702d74263d650a1f5820b23d8c7a08 100644 (file)
--- a/bs/bs.h
+++ b/bs/bs.h
-/***************************************************************************
-                          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
diff --git a/bs/ui/bsappbase.ui b/bs/ui/bsappbase.ui
new file mode 100644 (file)
index 0000000..0c34bec
--- /dev/null
@@ -0,0 +1,463 @@
+<!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="&amp;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="&amp;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="&amp;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>&amp;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>&amp;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>&amp;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 &amp;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>&amp;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&amp;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>&amp;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>&amp;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>&amp;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&amp;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>&amp;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>&amp;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>&amp;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>&amp;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>&amp;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>
diff --git a/bs/ui/bsappbase.ui.h b/bs/ui/bsappbase.ui.h
new file mode 100644 (file)
index 0000000..4d70a19
--- /dev/null
@@ -0,0 +1,83 @@
+/****************************************************************************
+** 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