src/mainpanel.cpp
author viric@llimona
Thu, 18 May 2006 23:05:01 +0200
changeset 0 04114bce8fd0
permissions -rw-r--r--
Initial from sourceforge's cvs.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
     1
#include <qmainwindow.h>
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
     2
#include <qmessagebox.h>
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
     3
#include <qstatusbar.h>
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
     4
#include <qapplication.h>
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
     5
#include <qsqldatabase.h>
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
     6
#include <qmenubar.h>
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
     7
#include <qpopupmenu.h>
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
     8
#include <qapplication.h>
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
     9
#include <qvbox.h>
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    10
#include <qlabel.h>
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    11
#include <qlayout.h>
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    12
#include <qlineedit.h>
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    13
#include <qpushbutton.h>
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    14
#include <qworkspace.h>
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    15
#include <qdialog.h>
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    16
#include "mainpanel.h"
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    17
#include "chartwindow.h"
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    18
#include "dbconfigureform.h"
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    19
#include "infolabel.h"
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    20
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    21
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    22
MainPanel::MainPanel( QWidget *parent, const char *name )
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    23
	: QMainWindow( parent, name )
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    24
{
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    25
	// Initialize the Menu bar
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    26
	QPopupMenu *file = new QPopupMenu( this );
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    27
	QPopupMenu *actions = new QPopupMenu( this );
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    28
	QPopupMenu *database = new QPopupMenu( this );
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    29
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    30
	database->insertItem( tr("&Connect"), this,
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    31
		SLOT(dbConnect()));
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    32
	database->insertItem( tr("&Disconnect"), this,
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    33
		SLOT(dbDisconnect()));
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    34
	database->insertSeparator();
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    35
	database->insertItem( tr("Confi&gure"), this,
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    36
		SLOT(dbConfigure()));
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    37
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    38
	file->insertItem( tr("&Quit"), qApp,
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    39
		SLOT(quit()),
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    40
		tr("Ctrl+Q", "Quit"));
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    41
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    42
	actions->insertItem( tr("&Chart of Accounts"), this,
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    43
		SLOT(accountChart()),
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    44
		tr("Ctrl+C", "Action: Chart of Accounts"));
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    45
	actions->insertItem( tr("&Transactions"), this,
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    46
		SLOT(transactions()),
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    47
		tr("Ctrl+T", "Action: Transactions"));
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    48
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    49
	menuBar()->insertItem( tr("&File"), file );
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    50
	menuBar()->insertItem( tr("&Actions"), actions );
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    51
	menuBar()->insertItem( tr("&Data Base"), database );
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    52
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    53
	// Initialize the database configuration
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    54
	db_config.host = "localhost";
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    55
	db_config.username = "yagl_user";
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    56
	db_config.password = "prova";
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    57
	db_config.database = "yagl1";
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    58
	db_config.driver = "QMYSQL3";
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    59
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    60
	// Initialize this window (main)
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    61
	setCaption( tr("Yet Another GUI Ledger") );
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    62
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    63
	
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    64
	workspace = new QWorkspace( this );
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    65
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    66
	setCentralWidget(workspace);
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    67
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    68
	// Status Bar
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    69
	info_connected = new InfoLabel( tr("Database"),
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    70
			tr("disconnected"), this );
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    71
	statusBar()->addWidget( info_connected );
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    72
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    73
	// Database pointer
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    74
	our_database = NULL;
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    75
	
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    76
	// Dialog pointers
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    77
	chartW = NULL;
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    78
	
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    79
}
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    80
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    81
void MainPanel::transactions( )
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    82
{
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    83
	/*
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    84
	if (!transactionsD)
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    85
		transactionsD = new InfoLabel( tr("Prova"),
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    86
			tr("Transactions"), workspace);
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    87
	*/
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    88
}
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    89
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    90
void MainPanel::accountChart( )
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    91
{
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    92
	if (chartW==NULL)
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    93
	{
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    94
		chartW = new ChartWindow(workspace);
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    95
		chartW->show();
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    96
		connect(chartW, SIGNAL(destroyed()), this,
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    97
			SLOT(accountChartRemoved()));
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    98
	}
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
    99
	qDebug("end of try to opening chartW");
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   100
}
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   101
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   102
void MainPanel::accountChartRemoved( )
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   103
{
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   104
	chartW = NULL;
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   105
	qDebug("chartW to null.");
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   106
}
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   107
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   108
void MainPanel::dbConnect( )
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   109
{
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   110
	our_database = QSqlDatabase::addDatabase( db_config.driver );
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   111
	our_database->setDatabaseName( db_config.database );
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   112
	our_database->setUserName( db_config.username );
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   113
	our_database->setPassword( db_config.password );
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   114
	our_database->setHostName( db_config.host );
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   115
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   116
	/*
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   117
	// Do we really need that ??!??!!?
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   118
	if ( db_config.driver == "QMYSQL3" )
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   119
		our_database->setPort(3306);
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   120
	*/
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   121
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   122
	qWarning( "Opening database connection..." );
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   123
	
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   124
	if ( !our_database->open() )
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   125
	{
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   126
		QString error_text(
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   127
			tr("Database could not connect.\n  Driver: ",
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   128
				"db_connect_error_text")
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   129
			+ our_database->lastError().driverText()
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   130
			+ tr("\n  Database: ", "db_connect_errortext") +
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   131
			our_database->lastError().databaseText());
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   132
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   133
		qWarning( error_text );
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   134
		QMessageBox::warning( this, tr("Database connection error"),
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   135
				error_text,
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   136
				QMessageBox::Ok || QMessageBox::Default,
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   137
				QMessageBox::NoButton,
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   138
				QMessageBox::NoButton);
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   139
	}
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   140
	else
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   141
	{
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   142
		qWarning( "  connection opened." );
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   143
		// Let the status bar know
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   144
		info_connected->setValue("connected");
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   145
	}
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   146
	
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   147
}
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   148
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   149
void MainPanel::dbDisconnect( )
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   150
{
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   151
	if (our_database)
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   152
	{
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   153
		qWarning( "Closing database connection..." );
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   154
		our_database->close();
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   155
		qWarning( "  connection closed." );
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   156
		// Let the status bar know
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   157
		info_connected->setValue("disconnected");
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   158
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   159
	}
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   160
	else
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   161
		qWarning( "We're not connected" );
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   162
}
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   163
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   164
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   165
void MainPanel::dbConfigure( )
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   166
{
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   167
	DBConfigureForm form(&db_config, this );
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   168
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   169
	form.exec();
04114bce8fd0 Initial from sourceforge's cvs.
viric@llimona
parents:
diff changeset
   170
}