summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Swift/QtUI/Trellis/QtDynamicGridLayout.cpp3
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 {