diff -r 27e940e8e5f3 -r d64aaa7d146f as_gui.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/as_gui.cpp Fri Nov 28 11:21:08 2008 +0100 @@ -0,0 +1,100 @@ +// +// OSSP asgui - Accounting system graphical user interface +// Copyright (c) 2002-2004 The OSSP Project (http://www.ossp.org/) +// Copyright (c) 2002-2004 Ralf S. Engelschall +// Copyright (c) 2002-2004 Michael Schloh von Bennewitz +// Copyright (c) 2002-2004 Cable & Wireless Telecommunications Services GmbH +// +// This file is part of OSSP asgui, an accounting system graphical user +// interface which can be found at http://www.ossp.org/pkg/tool/asgui/. +// +// Permission to use, copy, modify, and distribute this software for +// any purpose with or without fee is hereby granted, provided that +// the above copyright notice and this permission notice appear in all +// copies. +// +// THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +// USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// as_gui.cpp: ISO C++ implementation +// + +// User interface +#include "as_gui.h" // Main classes +#include "as_except.h" // Exception classes +#include "as_table.h" // Class TiTable +#include "as_const.h" // Application constants +#include "as_pref.h" // Class Preferences + + +// +// Construct a Titraqform which is a child of 'pParent', with the +// name 'kszName' and widget flags set to 'Flags' +// +Titraqform::Titraqform(QWidget *pParent, const char *kszName, WFlags Flags) : + QMainWindow(pParent, kszName, Flags) +{ + // Early initializations + m_pFiletools = NULL; + m_pEdittools = NULL; + m_pViewtools = NULL; + m_pWhatstools = NULL; + m_szFilename = NULL; + + // Atenzione! Order is very important in the following sequence. + // FIXME: Reorganize this procedural mess into self contained objects + try { + setupPrefs(); // Load general preferences + setupActions(); // Create and initialize actions + setupMenubar(); // Create and initialize menu bar + setupToolbars(); // Create and initialize tool bars + setupCentralwidget(); // Format the layout of related widgets + setupStatusbar(); // Create and initialize status bar + setupTable(); // Create and initialize table and cells + setupEditlay(); // Create and initialize edit controls + setupColumns(); // Prepare columns for viewing, sorting + enableIface(false); // Start things off in a empty state + } + catch (Genexcept& Genex) { + Genex.reportErr(); + exit(1); + } + + // Postsetup manipulations + m_pMaintable->setDirty(false); + if (!kszName) + this->setName(trUtf8("ASGuiapp")); + this->resize(m_pPrefs->getNumber(TITRAQ_PREFFRAMEWIDTH, TITRAQ_DEFFRAMEWIDTH), + m_pPrefs->getNumber(TITRAQ_PREFFRAMEHEIGHT, TITRAQ_DEFFRAMEHEIGHT)); + connect(qApp, SIGNAL(aboutToQuit()), this, SLOT(savePrefs())); + this->setCaption(QString(TITRAQ_APPTITLE) + ' ' + asgui_version.v_short); + + // Rehydrate main window layout and doc positions + QString Laystring = m_pPrefs->getString(TITRAQ_PREFFRAMELAY, NULL); // FIXME: Handle first case better + QTextStream Laystream(&Laystring, IO_ReadOnly); + Laystream >> *this; + +// // Lock down window size +// setSizePolicy(QSizePolicy((QSizePolicy::SizeType)0, +// (QSizePolicy::SizeType)0, 0, 0, sizePolicy().hasHeightForWidth())); +} + +// +// Destroy the object and free any allocated resources +// +Titraqform::~Titraqform(void) +{ + // Qt deletes child widgets for us + m_pPrefs->flush(); + delete m_pPrefs; +}