diff options
Diffstat (limited to 'demos/sqlbrowser/connectionwidget.cpp')
-rw-r--r-- | demos/sqlbrowser/connectionwidget.cpp | 165 |
1 files changed, 0 insertions, 165 deletions
diff --git a/demos/sqlbrowser/connectionwidget.cpp b/demos/sqlbrowser/connectionwidget.cpp deleted file mode 100644 index 936f32f29f..0000000000 --- a/demos/sqlbrowser/connectionwidget.cpp +++ /dev/null @@ -1,165 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the demonstration applications of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "connectionwidget.h" - -#include <QtGui> -#include <QtSql> - -ConnectionWidget::ConnectionWidget(QWidget *parent) - : QWidget(parent) -{ - QVBoxLayout *layout = new QVBoxLayout(this); - tree = new QTreeWidget(this); - tree->setObjectName(QLatin1String("tree")); - tree->setHeaderLabels(QStringList(tr("database"))); - tree->header()->setResizeMode(QHeaderView::Stretch); - QAction *refreshAction = new QAction(tr("Refresh"), tree); - metaDataAction = new QAction(tr("Show Schema"), tree); - connect(refreshAction, SIGNAL(triggered()), SLOT(refresh())); - connect(metaDataAction, SIGNAL(triggered()), SLOT(showMetaData())); - tree->addAction(refreshAction); - tree->addAction(metaDataAction); - tree->setContextMenuPolicy(Qt::ActionsContextMenu); - - layout->addWidget(tree); - - QMetaObject::connectSlotsByName(this); -} - -ConnectionWidget::~ConnectionWidget() -{ -} - -static QString qDBCaption(const QSqlDatabase &db) -{ - QString nm = db.driverName(); - nm.append(QLatin1Char(':')); - if (!db.userName().isEmpty()) - nm.append(db.userName()).append(QLatin1Char('@')); - nm.append(db.databaseName()); - return nm; -} - -void ConnectionWidget::refresh() -{ - tree->clear(); - QStringList connectionNames = QSqlDatabase::connectionNames(); - - bool gotActiveDb = false; - for (int i = 0; i < connectionNames.count(); ++i) { - QTreeWidgetItem *root = new QTreeWidgetItem(tree); - QSqlDatabase db = QSqlDatabase::database(connectionNames.at(i), false); - root->setText(0, qDBCaption(db)); - if (connectionNames.at(i) == activeDb) { - gotActiveDb = true; - setActive(root); - } - if (db.isOpen()) { - QStringList tables = db.tables(); - for (int t = 0; t < tables.count(); ++t) { - QTreeWidgetItem *table = new QTreeWidgetItem(root); - table->setText(0, tables.at(t)); - } - } - } - if (!gotActiveDb) { - activeDb = connectionNames.value(0); - setActive(tree->topLevelItem(0)); - } - - tree->doItemsLayout(); // HACK -} - -QSqlDatabase ConnectionWidget::currentDatabase() const -{ - return QSqlDatabase::database(activeDb); -} - -static void qSetBold(QTreeWidgetItem *item, bool bold) -{ - QFont font = item->font(0); - font.setBold(bold); - item->setFont(0, font); -} - -void ConnectionWidget::setActive(QTreeWidgetItem *item) -{ - for (int i = 0; i < tree->topLevelItemCount(); ++i) { - if (tree->topLevelItem(i)->font(0).bold()) - qSetBold(tree->topLevelItem(i), false); - } - - if (!item) - return; - - qSetBold(item, true); - activeDb = QSqlDatabase::connectionNames().value(tree->indexOfTopLevelItem(item)); -} - -void ConnectionWidget::on_tree_itemActivated(QTreeWidgetItem *item, int /* column */) -{ - - if (!item) - return; - - if (!item->parent()) { - setActive(item); - } else { - setActive(item->parent()); - emit tableActivated(item->text(0)); - } -} - -void ConnectionWidget::showMetaData() -{ - QTreeWidgetItem *cItem = tree->currentItem(); - if (!cItem || !cItem->parent()) - return; - setActive(cItem->parent()); - emit metaDataRequested(cItem->text(0)); -} - -void ConnectionWidget::on_tree_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *) -{ - metaDataAction->setEnabled(current && current->parent()); -} - |