as_gui.cpp

Fri, 28 Nov 2008 11:21:08 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Fri, 28 Nov 2008 11:21:08 +0100
changeset 1
d64aaa7d146f
child 3
c1941114ca88
permissions
-rw-r--r--

Fork project trunk at version 0.7.7 to maintain for future usage.
The original Cable & Wireless development team no longer exists.
The OSSP CVS repository is unavailable (cvs co ossp-pkg/as fails),
however http://cvs.ossp.org/dirview?d=ossp-pkg/as/as-gui is working.

michael@1 1 //
michael@1 2 // OSSP asgui - Accounting system graphical user interface
michael@1 3 // Copyright (c) 2002-2004 The OSSP Project (http://www.ossp.org/)
michael@1 4 // Copyright (c) 2002-2004 Ralf S. Engelschall <rse@engelschall.com>
michael@1 5 // Copyright (c) 2002-2004 Michael Schloh von Bennewitz <michael@schloh.com>
michael@1 6 // Copyright (c) 2002-2004 Cable & Wireless Telecommunications Services GmbH
michael@1 7 //
michael@1 8 // This file is part of OSSP asgui, an accounting system graphical user
michael@1 9 // interface which can be found at http://www.ossp.org/pkg/tool/asgui/.
michael@1 10 //
michael@1 11 // Permission to use, copy, modify, and distribute this software for
michael@1 12 // any purpose with or without fee is hereby granted, provided that
michael@1 13 // the above copyright notice and this permission notice appear in all
michael@1 14 // copies.
michael@1 15 //
michael@1 16 // THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
michael@1 17 // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
michael@1 18 // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
michael@1 19 // IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
michael@1 20 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
michael@1 21 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
michael@1 22 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
michael@1 23 // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
michael@1 24 // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
michael@1 25 // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
michael@1 26 // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
michael@1 27 // SUCH DAMAGE.
michael@1 28 //
michael@1 29 // as_gui.cpp: ISO C++ implementation
michael@1 30 //
michael@1 31
michael@1 32 // User interface
michael@1 33 #include "as_gui.h" // Main classes
michael@1 34 #include "as_except.h" // Exception classes
michael@1 35 #include "as_table.h" // Class TiTable
michael@1 36 #include "as_const.h" // Application constants
michael@1 37 #include "as_pref.h" // Class Preferences
michael@1 38
michael@1 39
michael@1 40 //
michael@1 41 // Construct a Titraqform which is a child of 'pParent', with the
michael@1 42 // name 'kszName' and widget flags set to 'Flags'
michael@1 43 //
michael@1 44 Titraqform::Titraqform(QWidget *pParent, const char *kszName, WFlags Flags) :
michael@1 45 QMainWindow(pParent, kszName, Flags)
michael@1 46 {
michael@1 47 // Early initializations
michael@1 48 m_pFiletools = NULL;
michael@1 49 m_pEdittools = NULL;
michael@1 50 m_pViewtools = NULL;
michael@1 51 m_pWhatstools = NULL;
michael@1 52 m_szFilename = NULL;
michael@1 53
michael@1 54 // Atenzione! Order is very important in the following sequence.
michael@1 55 // FIXME: Reorganize this procedural mess into self contained objects
michael@1 56 try {
michael@1 57 setupPrefs(); // Load general preferences
michael@1 58 setupActions(); // Create and initialize actions
michael@1 59 setupMenubar(); // Create and initialize menu bar
michael@1 60 setupToolbars(); // Create and initialize tool bars
michael@1 61 setupCentralwidget(); // Format the layout of related widgets
michael@1 62 setupStatusbar(); // Create and initialize status bar
michael@1 63 setupTable(); // Create and initialize table and cells
michael@1 64 setupEditlay(); // Create and initialize edit controls
michael@1 65 setupColumns(); // Prepare columns for viewing, sorting
michael@1 66 enableIface(false); // Start things off in a empty state
michael@1 67 }
michael@1 68 catch (Genexcept& Genex) {
michael@1 69 Genex.reportErr();
michael@1 70 exit(1);
michael@1 71 }
michael@1 72
michael@1 73 // Postsetup manipulations
michael@1 74 m_pMaintable->setDirty(false);
michael@1 75 if (!kszName)
michael@1 76 this->setName(trUtf8("ASGuiapp"));
michael@1 77 this->resize(m_pPrefs->getNumber(TITRAQ_PREFFRAMEWIDTH, TITRAQ_DEFFRAMEWIDTH),
michael@1 78 m_pPrefs->getNumber(TITRAQ_PREFFRAMEHEIGHT, TITRAQ_DEFFRAMEHEIGHT));
michael@1 79 connect(qApp, SIGNAL(aboutToQuit()), this, SLOT(savePrefs()));
michael@1 80 this->setCaption(QString(TITRAQ_APPTITLE) + ' ' + asgui_version.v_short);
michael@1 81
michael@1 82 // Rehydrate main window layout and doc positions
michael@1 83 QString Laystring = m_pPrefs->getString(TITRAQ_PREFFRAMELAY, NULL); // FIXME: Handle first case better
michael@1 84 QTextStream Laystream(&Laystring, IO_ReadOnly);
michael@1 85 Laystream >> *this;
michael@1 86
michael@1 87 // // Lock down window size
michael@1 88 // setSizePolicy(QSizePolicy((QSizePolicy::SizeType)0,
michael@1 89 // (QSizePolicy::SizeType)0, 0, 0, sizePolicy().hasHeightForWidth()));
michael@1 90 }
michael@1 91
michael@1 92 //
michael@1 93 // Destroy the object and free any allocated resources
michael@1 94 //
michael@1 95 Titraqform::~Titraqform(void)
michael@1 96 {
michael@1 97 // Qt deletes child widgets for us
michael@1 98 m_pPrefs->flush();
michael@1 99 delete m_pPrefs;
michael@1 100 }

mercurial