#include <connectionwidget.h>
Inheritance diagram for ConnectionWidget:


Definition at line 34 of file connectionwidget.h.
Public Slots | |
| void | refresh () |
| void | showMetaData () |
| void | on_tree_itemActivated (QTreeWidgetItem *item, int column) |
| void | on_tree_currentItemChanged (QTreeWidgetItem *current, QTreeWidgetItem *previous) |
Signals | |
| void | tableActivated (const QString &table) |
| void | metaDataRequested (const QString &tableName) |
Public Member Functions | |
| ConnectionWidget (QWidget *parent=0) | |
| virtual | ~ConnectionWidget () |
| QSqlDatabase | currentDatabase () const |
Private Member Functions | |
| void | setActive (QTreeWidgetItem *) |
Private Attributes | |
| QTreeWidget * | tree |
| QAction * | metaDataAction |
| QString | activeDb |
| ConnectionWidget::ConnectionWidget | ( | QWidget * | parent = 0 |
) |
Definition at line 29 of file connectionwidget.cpp.
References Qt::ActionsContextMenu, QWidget::addAction(), QLayout::addWidget(), QObject::connect(), QMetaObject::connectSlotsByName(), QTreeView::header(), QWidget::layout(), metaDataAction, refresh(), QWidget::setContextMenuPolicy(), QTreeWidget::setHeaderLabels(), QObject::setObjectName(), QHeaderView::setResizeMode(), showMetaData(), SIGNAL, SLOT, QHeaderView::Stretch, and tree.
00030 : QWidget(parent) 00031 { 00032 QVBoxLayout *layout = new QVBoxLayout(this); 00033 tree = new QTreeWidget(this); 00034 tree->setObjectName(QLatin1String("tree")); 00035 tree->setHeaderLabels(QStringList(tr("database"))); 00036 tree->header()->setResizeMode(QHeaderView::Stretch); 00037 QAction *refreshAction = new QAction(tr("Refresh"), tree); 00038 metaDataAction = new QAction(tr("Show Schema"), tree); 00039 connect(refreshAction, SIGNAL(triggered()), SLOT(refresh())); 00040 connect(metaDataAction, SIGNAL(triggered()), SLOT(showMetaData())); 00041 tree->addAction(refreshAction); 00042 tree->addAction(metaDataAction); 00043 tree->setContextMenuPolicy(Qt::ActionsContextMenu); 00044 00045 layout->addWidget(tree); 00046 00047 QMetaObject::connectSlotsByName(this); 00048 }
Here is the call graph for this function:

| ConnectionWidget::~ConnectionWidget | ( | ) | [virtual] |
| QSqlDatabase ConnectionWidget::currentDatabase | ( | ) | const |
Definition at line 94 of file connectionwidget.cpp.
References activeDb, and QSqlDatabase::database().
00095 { 00096 return QSqlDatabase::database(activeDb); 00097 }
Here is the call graph for this function:

| void ConnectionWidget::tableActivated | ( | const QString & | table | ) | [signal] |
Referenced by on_tree_itemActivated().
| void ConnectionWidget::metaDataRequested | ( | const QString & | tableName | ) | [signal] |
Referenced by showMetaData().
| void ConnectionWidget::refresh | ( | ) | [slot] |
Definition at line 64 of file connectionwidget.cpp.
References activeDb, QList< T >::at(), QTreeWidget::clear(), QSqlDatabase::connectionNames(), QList< T >::count(), QSqlDatabase::database(), QTreeView::doItemsLayout(), i, QSqlDatabase::isOpen(), qDBCaption(), setActive(), t, QSqlDatabase::tables(), QTreeWidget::topLevelItem(), tree, and QList< T >::value().
Referenced by ConnectionWidget().
00065 { 00066 tree->clear(); 00067 QStringList connectionNames = QSqlDatabase::connectionNames(); 00068 00069 bool gotActiveDb = false; 00070 for (int i = 0; i < connectionNames.count(); ++i) { 00071 QTreeWidgetItem *root = new QTreeWidgetItem(tree); 00072 QSqlDatabase db = QSqlDatabase::database(connectionNames.at(i), false); 00073 root->setText(0, qDBCaption(db)); 00074 if (connectionNames.at(i) == activeDb) { 00075 gotActiveDb = true; 00076 setActive(root); 00077 } 00078 if (db.isOpen()) { 00079 QStringList tables = db.tables(); 00080 for (int t = 0; t < tables.count(); ++t) { 00081 QTreeWidgetItem *table = new QTreeWidgetItem(root); 00082 table->setText(0, tables.at(t)); 00083 } 00084 } 00085 } 00086 if (!gotActiveDb) { 00087 activeDb = connectionNames.value(0); 00088 setActive(tree->topLevelItem(0)); 00089 } 00090 00091 tree->doItemsLayout(); // HACK 00092 }
| void ConnectionWidget::showMetaData | ( | ) | [slot] |
Definition at line 134 of file connectionwidget.cpp.
References QTreeWidget::currentItem(), emit, metaDataRequested(), QTreeWidgetItem::parent(), setActive(), QTreeWidgetItem::text(), and tree.
Referenced by ConnectionWidget().
00135 { 00136 QTreeWidgetItem *cItem = tree->currentItem(); 00137 if (!cItem || !cItem->parent()) 00138 return; 00139 setActive(cItem->parent()); 00140 emit metaDataRequested(cItem->text(0)); 00141 }
| void ConnectionWidget::on_tree_itemActivated | ( | QTreeWidgetItem * | item, | |
| int | column | |||
| ) | [slot] |
Definition at line 120 of file connectionwidget.cpp.
References emit, QTreeWidgetItem::parent(), setActive(), tableActivated(), and QTreeWidgetItem::text().
00121 { 00122 00123 if (!item) 00124 return; 00125 00126 if (!item->parent()) { 00127 setActive(item); 00128 } else { 00129 setActive(item->parent()); 00130 emit tableActivated(item->text(0)); 00131 } 00132 }
| void ConnectionWidget::on_tree_currentItemChanged | ( | QTreeWidgetItem * | current, | |
| QTreeWidgetItem * | previous | |||
| ) | [slot] |
Definition at line 143 of file connectionwidget.cpp.
References metaDataAction, QTreeWidgetItem::parent(), and QAction::setEnabled().
00144 { 00145 metaDataAction->setEnabled(current && current->parent()); 00146 }
| void ConnectionWidget::setActive | ( | QTreeWidgetItem * | ) | [private] |
Definition at line 106 of file connectionwidget.cpp.
References activeDb, QFont::bold(), QSqlDatabase::connectionNames(), QTreeWidgetItem::font(), i, QTreeWidget::indexOfTopLevelItem(), qSetBold(), QTreeWidget::topLevelItem(), QTreeWidget::topLevelItemCount(), tree, and QList< T >::value().
Referenced by on_tree_itemActivated(), refresh(), and showMetaData().
00107 { 00108 for (int i = 0; i < tree->topLevelItemCount(); ++i) { 00109 if (tree->topLevelItem(i)->font(0).bold()) 00110 qSetBold(tree->topLevelItem(i), false); 00111 } 00112 00113 if (!item) 00114 return; 00115 00116 qSetBold(item, true); 00117 activeDb = QSqlDatabase::connectionNames().value(tree->indexOfTopLevelItem(item)); 00118 }
Here is the call graph for this function:

QTreeWidget* ConnectionWidget::tree [private] |
Definition at line 56 of file connectionwidget.h.
Referenced by ConnectionWidget(), refresh(), setActive(), and showMetaData().
QAction* ConnectionWidget::metaDataAction [private] |
Definition at line 57 of file connectionwidget.h.
Referenced by ConnectionWidget(), and on_tree_currentItemChanged().
QString ConnectionWidget::activeDb [private] |
Definition at line 58 of file connectionwidget.h.
Referenced by currentDatabase(), refresh(), and setActive().
1.5.1