diff options
-rw-r--r-- | Swift/QtUI/Trellis/QtDynamicGridLayout.cpp | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/Swift/QtUI/Trellis/QtDynamicGridLayout.cpp b/Swift/QtUI/Trellis/QtDynamicGridLayout.cpp index 3f3e292..3b8adf8 100644 --- a/Swift/QtUI/Trellis/QtDynamicGridLayout.cpp +++ b/Swift/QtUI/Trellis/QtDynamicGridLayout.cpp @@ -8,73 +8,72 @@ #include <cassert> #include <QApplication> #include <QEvent> #include <QGridLayout> #include <QLayoutItem> #include <QtDebug> #include <Swiften/Base/Log.h> #include <Swift/QtUI/QtSwiftUtil.h> #include <Swift/QtUI/QtTabWidget.h> #include <Swift/QtUI/QtTabbable.h> #include <Swift/QtUI/Trellis/QtDNDTabBar.h> namespace Swift { QtDynamicGridLayout::QtDynamicGridLayout(QWidget* parent, bool enableDND) : QWidget(parent), dndEnabled_(enableDND), movingTab_(NULL) { gridLayout_ = new QGridLayout(this); setContentsMargins(0,0,0,0); setDimensions(QSize(1,1)); connect(qApp, SIGNAL(focusChanged(QWidget*, QWidget*)), this, SLOT(handleApplicationFocusChanged(QWidget*,QWidget*))); } QtDynamicGridLayout::~QtDynamicGridLayout() { } int QtDynamicGridLayout::addTab(QtTabbable* tab, const QString& title) { assert(gridLayout_->rowCount() > 0 && gridLayout_->columnCount() > 0); - int index = -1; QPoint lastPos(0,0); if (tabPositions_.contains(P2QSTRING(tab->getID()))) { lastPos = tabPositions_[P2QSTRING(tab->getID())]; } lastPos = QPoint(qMin(lastPos.x(), gridLayout_->columnCount() - 1), qMin(lastPos.y(), gridLayout_->rowCount() - 1)); QLayoutItem* item = gridLayout_->itemAtPosition(lastPos.y(), lastPos.x()); QtTabWidget* tabWidget = dynamic_cast<QtTabWidget*>(item ? item->widget() : 0); if (tabWidget) { - index = tabWidget->addTab(tab, title); + tabWidget->addTab(tab, title); } return tabWidget ? indexOf(tab) : -1; } int QtDynamicGridLayout::count() const { int count = 0; for (int y = 0; y < gridLayout_->rowCount(); y++) { for (int x = 0; x < gridLayout_->columnCount(); x++) { QLayoutItem* layoutItem = gridLayout_->itemAtPosition(y, x); QtTabWidget* tabWidget = dynamic_cast<QtTabWidget*>(layoutItem->widget()); if (tabWidget) { count += tabWidget->count(); } } } return count; } QWidget* QtDynamicGridLayout::widget(int index) const { QWidget* widgetAtIndex = NULL; for (int y = 0; y < gridLayout_->rowCount(); y++) { for (int x = 0; x < gridLayout_->columnCount(); x++) { QLayoutItem* layoutItem = gridLayout_->itemAtPosition(y, x); QtTabWidget* tabWidget = dynamic_cast<QtTabWidget*>(layoutItem->widget()); if (tabWidget) { if (index < tabWidget->count()) { widgetAtIndex = tabWidget->widget(index); return widgetAtIndex; } else { |