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