summaryrefslogtreecommitdiff
path: root/client/widgets/dbwidget.cc
diff options
context:
space:
mode:
Diffstat (limited to 'client/widgets/dbwidget.cc')
-rw-r--r--client/widgets/dbwidget.cc193
1 files changed, 0 insertions, 193 deletions
diff --git a/client/widgets/dbwidget.cc b/client/widgets/dbwidget.cc
deleted file mode 100644
index 0708304..0000000
--- a/client/widgets/dbwidget.cc
+++ /dev/null
@@ -1,193 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/***************************************************************************
- * dbwidget.cc
- *
- * Mon Sep 1 16:23:54 CEST 2008
- * Copyright 2008 Bent Bisballe Nyeng
- * deva@aasimon.org
- ****************************************************************************/
-
-/*
- * This file is part of Pracro.
- *
- * Pracro 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.
- *
- * Pracro is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Pracro; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
- */
-#include "dbwidget.h"
-
-#include <QDomNodeList>
-#include <QCompleter>
-#include <QRegExpValidator>
-#include <QRegExp>
-#include <QStringListModel>
-#include <QSqlQuery>
-#include <QSqlError>
-#include <QLineEdit>
-#include <QComboBox>
-
-#include "common.h"
-
-#define EMPTY_STRING "Write something in the searchfield"
-
-DBWidget::DBWidget(QDomNode &node, MacroWindow *macrowindow)
- : Widget(node, macrowindow)
-{
- combobox = new QComboBox();
- widget = combobox;
-
- changedByUser = true;
-
- QDomElement elem = node.toElement();
-
- if(!elem.hasAttribute("driver") ||
- !elem.hasAttribute("server") ||
- !elem.hasAttribute("user") ||
- !elem.hasAttribute("database") ||
- !elem.hasAttribute("select") ||
- !elem.hasAttribute("from") ||
- !elem.hasAttribute("where") ||
- !elem.hasAttribute("format")) {
- printf("Error: missing tag!\n");
- }
-
- select = elem.attribute("select");
- from = elem.attribute("from");
- where = elem.attribute("where");
- format = elem.attribute("format");
-
- db = QSqlDatabase::addDatabase(elem.attribute("driver"));
- db.setHostName(elem.attribute("server"));
- if(elem.hasAttribute("port")) db.setPort(elem.attribute("port").toInt());
- db.setDatabaseName(elem.attribute("database"));
- db.setUserName(elem.attribute("user"));
- if(elem.hasAttribute("password")) db.setPassword(elem.attribute("password"));
- db.setConnectOptions("connect_timeout=2000");
- bool ok = db.open();
- if(!ok) {
- printf("DB connect failed!\n");
- }
-
- setCommonAttributes(combobox, node);
-
- combobox->setInsertPolicy(QComboBox::InsertAlphabetically);
- combobox->setEditable(true);
-
- // Make empty default selection.
- combobox->addItem(tr("EMPTY_STRING"));
- combobox->setCurrentIndex(-1);
-
- QStringListModel *strlst = new QStringListModel();
- QCompleter *completer = new QCompleter(this);
- completer->setCaseSensitivity(Qt::CaseInsensitive);
- completer->setCompletionMode(QCompleter::PopupCompletion);
- completer->setModel(strlst);
- combobox->setCompleter(completer);
-
- connect(combobox, SIGNAL(editTextChanged(QString)), this, SLOT(changed()));
- connect((QWidget*)combobox->lineEdit(), SIGNAL(textEdited(QString)),
- this, SLOT(update_list(QString)));
-
- changed();
-}
-
-DBWidget::~DBWidget()
-{
- db.close();
- db = QSqlDatabase();
- // delete combobox;
-}
-
-
-QString DBWidget::value()
-{
- QString value;
-
- value = combobox->currentText();
-
- return value;
-}
-
-void DBWidget::setValue(QString value, QString source)
-{
- changedByUser = false;
- if(isUserSource(source)) emit wasChanged();
-
- combobox->setEditText(value);
-
- // setInitialValue(value);
- changedByUser = true;
-}
-
-bool DBWidget::preValid()
-{
- return combobox->currentText() != tr(EMPTY_STRING) &&
- combobox->currentText() != "" &&
- combobox->findText(combobox->currentText()) != -1
- ;
-}
-
-void DBWidget::changed()
-{
- emit eventOnChange();
- if(changedByUser) emit wasChanged();
-}
-
-void DBWidget::update_list(QString prefix)
-{
- if(prefix == "") {
- combobox->clear();
- combobox->addItem(tr(EMPTY_STRING));
- combobox->setCurrentIndex(-1);
- return;
- }
-
- QSqlQuery query = db.exec("SELECT " + select +
- " FROM " + from +
- " WHERE LOWER(" + where + ")"
- " LIKE '" + prefix.toLower() + "%';");
-
- QStringList lst;
- while(query.next()) {
- // lst << format_parser(format, query);
- }
-
- lst.sort();
-
- QStringListModel *mdl = (QStringListModel *)combobox->completer()->model();
- if(mdl->stringList() != lst) {
- QString val = combobox->currentText();
- combobox->clear();
- if(lst.size() == 0) lst << "Søgningen passede ikke på noget.";
- combobox->addItems(lst);
- combobox->setEditText(val);
- mdl->setStringList(lst);
- //showPopup();
- }
-}
-
-void DBWidget::setWdgValid(bool valid)
-{
- QPalette palette;
-
- if(valid) {
- // valid string
- palette.setBrush(QPalette::Base, QBrush(QColor(255, 255, 255)));
- } else {
- // invalid string
- palette.setBrush(QPalette::Base, QBrush(QColor(230, 200, 200)));
- }
-
- combobox->lineEdit()->setPalette(palette);
- combobox->setPalette(palette);
-}