diff options
Diffstat (limited to 'kmymoney2/dialogs/kselectdatabasedlg.cpp')
-rw-r--r-- | kmymoney2/dialogs/kselectdatabasedlg.cpp | 232 |
1 files changed, 0 insertions, 232 deletions
diff --git a/kmymoney2/dialogs/kselectdatabasedlg.cpp b/kmymoney2/dialogs/kselectdatabasedlg.cpp deleted file mode 100644 index 607abbc..0000000 --- a/kmymoney2/dialogs/kselectdatabasedlg.cpp +++ /dev/null @@ -1,232 +0,0 @@ -/*************************************************************************** - kselectdatabasedlg.cpp - ------------------- - copyright : (C) 2005 by Tony Bloomfield - author : Tony Bloomfield - email : tonybloom@users.sourceforge.net - ***************************************************************************/ - -/*************************************************************************** - * * - * 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 <unistd.h> -#include <sys/types.h> -#include <pwd.h> - -// ---------------------------------------------------------------------------- -// QT Includes - -#include <tqlayout.h> -#include <tqpushbutton.h> -#include <tqapplication.h> -#include <tqsqldatabase.h> -#include <tqfiledialog.h> -#include <tqstatusbar.h> -#include <tqcheckbox.h> -#include <tqcolor.h> - -// ---------------------------------------------------------------------------- -// KDE Includes - -#include <kapplication.h> -#include <kurlrequester.h> -#include <ktextbrowser.h> -#include <klocale.h> -#include <kmessagebox.h> - -// ---------------------------------------------------------------------------- -// Project Includes - -#include "kselectdatabasedlg.h" - -TDESelectDatabaseDlg::TDESelectDatabaseDlg(TQWidget *parent, const char *name) - : TDESelectDatabaseDlgDecl(parent, name) { - listDrivers->clear(); - // list drivers supported by KMM - TQMap<TQString, TQString> map = m_map.driverMap(); - // list drivers installed on system - TQStringList list = TQSqlDatabase::drivers(); - if (list.count() == 0) { - KMessageBox::error (0, i18n("There are no TQt SQL drivers installed in your system.\n" - "Please consult documentation for your distro, or visit the TQt web site (www.trolltech.com)" - " and search for SQL drivers."), - ""); - setError(); - } else { - TQStringList::Iterator it = list.begin(); - while(it != list.end()) { - TQString dname = *it; - if (map.keys().contains(dname)) { // only display if driver is supported - dname = dname + " - " + map[dname]; - listDrivers->insertItem (dname); - } - it++; - } - textDbName->setText ("KMyMoney"); - textHostName->setText ("localhost"); - textUserName->setText(""); - struct passwd * pwd = getpwuid(geteuid()); - if (pwd != 0) - textUserName->setText (TQString(pwd->pw_name)); - textPassword->setText (""); - m_requiredFields = new kMandatoryFieldGroup(TQT_TQOBJECT(this)); - m_requiredFields->setOkButton(buttonOK); - m_requiredFields->add(listDrivers); - m_requiredFields->add(textDbName); - connect (listDrivers, TQT_SIGNAL(clicked(TQListBoxItem *)), - this, TQT_SLOT(slotDriverSelected(TQListBoxItem *))); - connect (buttonSQL, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotGenerateSQL())); - connect (buttonOK, TQT_SIGNAL(clicked()), this, TQT_SLOT(accept())); - checkPreLoad->setChecked(false); - buttonSQL->setEnabled(true); - } - connect (buttonHelp, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotHelp())); - // ensure a driver gets selected; pre-select if only one - listDrivers->clearSelection(); - if (listDrivers->count() == 1) { - listDrivers->setSelected(0, true); - slotDriverSelected(listDrivers->item(0)); - } -} - -TDESelectDatabaseDlg::TDESelectDatabaseDlg(KURL openURL, TQWidget *parent, const char *name) - : TDESelectDatabaseDlgDecl(parent, name) { - // here we are re-opening a database from a URL - // probably taken from the last-used or recent file list - listDrivers->clear(); - // check that the SQL driver is still available - TQString driverName = openURL.queryItem("driver"); - // list drivers installed on system - TQStringList list = TQSqlDatabase::drivers(); - // list drivers supported by KMM - TQMap<TQString, TQString> map = m_map.driverMap(); - if (!list.contains(driverName)) { - KMessageBox::error (0, i18n("TQt SQL driver %1 is no longer installed on your system").arg(driverName), - ""); - setError(); - } else if (!map.contains(driverName)) { - KMessageBox::error (0, i18n("TQt SQL driver %1 is not suported").arg(driverName), - ""); - setError(); - } else { - // fill in the fixed data from the URL - listDrivers->insertItem (TQString(driverName + " - " + map[driverName])); - listDrivers->setSelected(0,true); - TQString dbName = openURL.path().right(openURL.path().length() - 1); // remove separator slash - textDbName->setText (dbName); - textHostName->setText (openURL.host()); - textUserName->setText(openURL.user()); - // disable all but the password field, coz that's why we're here - textDbName->setEnabled(false); - listDrivers->setEnabled(false); - textHostName->setEnabled(false); - textUserName->setEnabled(false); - textPassword->setEnabled(true); - textPassword->setFocus(); - buttonSQL->setEnabled(false); - // set password as required - m_requiredFields = new kMandatoryFieldGroup(TQT_TQOBJECT(this)); - m_requiredFields->add(textPassword); - m_requiredFields->setOkButton(buttonOK); - - connect (buttonOK, TQT_SIGNAL(clicked()), this, TQT_SLOT(accept())); - checkPreLoad->setChecked(false); - } - connect (buttonHelp, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotHelp())); - -} - -TDESelectDatabaseDlg::~TDESelectDatabaseDlg() { - if (m_requiredFields != 0) delete m_requiredFields; -} - -void TDESelectDatabaseDlg::setMode (int openMode) { - m_mode = openMode; - checkPreLoad->setEnabled (openMode == IO_ReadWrite); -} - -const KURL TDESelectDatabaseDlg::selectedURL() { - KURL url; - url.setProtocol("sql"); - url.setUser(textUserName->text()); - url.setPass(textPassword->text()); - url.setHost(textHostName->text()); - url.setPath("/" + textDbName->text()); - TQString qs = TQString("driver=%1") - .arg(listDrivers->currentText().section (' ', 0, 0)); - if (checkPreLoad->isChecked()) qs.append("&options=loadAll"); - if (!textPassword->text().isEmpty()) qs.append("&secure=yes"); - url.setQuery(qs); - return (url); -} - -void TDESelectDatabaseDlg::slotDriverSelected (TQListBoxItem *driver) { - databaseTypeE dbType = m_map.driverToType(driver->text().section(' ', 0, 0)); - if (!m_map.isTested(dbType)) { - int rc = KMessageBox::warningContinueCancel (0, - i18n("TQt SQL driver %1 has not been fully tested in a KMyMoney environment. Please make sure you have adequate backups of your data. Please report any problems to the developer mailing list at kmymoney2-developer@lists.sourceforge.net") - .arg(driver->text()), - ""); - if (rc == KMessageBox::Cancel) { - listDrivers->clearSelection(); - return; - } - } - - if (dbType == Sqlite3){ - TQString dbName = TQFileDialog::getOpenFileName( - "", - i18n("SQLite files (*.sql);; All files (*.*)"), - this, - "", - i18n("Select SQLite file")); - if (dbName.isNull()) { - listDrivers->setSelected(driver, false); - return; - } else { - textDbName->setText(dbName); - } - // sql databases do not react to host/user/password; file system permissions must be used - textHostName->setEnabled (false); - textUserName->setEnabled (false); - textPassword->setEnabled(false); - } else { - textUserName->setEnabled (true); // but not host - textHostName->setEnabled (true); - textPassword->setEnabled(true); - } -} - -void TDESelectDatabaseDlg::slotGenerateSQL () { - TQString fileName = TQFileDialog::getSaveFileName( - "", - i18n("All files (*.*)"), - this, - "", - i18n("Select output file")); - if (fileName == "") return; - TQFile out(fileName); - if (!out.open(IO_WriteOnly)) return; - TQTextStream s(&out); - MyMoneyDbDef db; - s << db.generateSQL(listDrivers->currentText().section (' ', 0, 0)); - out.close(); -} - -void TDESelectDatabaseDlg::slotHelp(void) { - kapp->invokeHelp("details.database.selectdatabase"); -} - -void TDESelectDatabaseDlg::setError() { - buttonOK->setEnabled(false); - buttonSQL->setEnabled(false); - m_requiredFields = 0; -} - -#include "kselectdatabasedlg.moc" |