From 58da4ae2358b90a9a178ecebf7f33b7e9e0636ee Mon Sep 17 00:00:00 2001
From: Kevin Smith <git@kismith.co.uk>
Date: Fri, 22 Nov 2013 15:07:45 +0000
Subject: Use a combobox instead of tabs for mainwindow selection.

I'm told that currently Qt isn't correctly showing which tab is selected over MSAA. By providing a different widget it should make screen readers happier.

Change-Id: I1f14967fa2f314418417ac5891e9c79f60ac59ef

diff --git a/Swift/QtUI/QtMainWindow.cpp b/Swift/QtUI/QtMainWindow.cpp
index af38d68..879a54b 100644
--- a/Swift/QtUI/QtMainWindow.cpp
+++ b/Swift/QtUI/QtMainWindow.cpp
@@ -93,6 +93,20 @@ QtMainWindow::QtMainWindow(SettingsProvider* settings, UIEventStream* uiEventStr
 
 	connect(tabs_, SIGNAL(currentChanged(int)), this, SLOT(handleTabChanged(int)));
 
+	tabBarCombo_ = NULL;
+	if (settings_->getSetting(QtUISettingConstants::USE_SCREENREADER)) {
+		tabs_->tabBar()->hide();
+		tabBarCombo_ = new QComboBox(this);
+		tabBarCombo_->setAccessibleName("Current View");
+		tabBarCombo_->addItem(tr("Contacts"));
+		tabBarCombo_->addItem(tr("Chats"));
+		tabBarCombo_->addItem(tr("Notices"));
+		tabBarCombo_->setCurrentIndex(tabs_->currentIndex());
+		mainLayout->addWidget(tabBarCombo_);
+		connect(tabBarCombo_, SIGNAL(currentIndexChanged(int)), tabs_, SLOT(setCurrentIndex(int)));
+	}
+
+
 	this->setLayout(mainLayout);
 
 	QMenu* viewMenu = new QMenu(tr("&View"), this);
diff --git a/Swift/QtUI/QtMainWindow.h b/Swift/QtUI/QtMainWindow.h
index 627cc17..c489a9e 100644
--- a/Swift/QtUI/QtMainWindow.h
+++ b/Swift/QtUI/QtMainWindow.h
@@ -93,6 +93,7 @@ namespace Swift {
 			QAction* toggleRequestDeliveryReceipts_;
 			QMenu* serverAdHocMenu_;
 			QtTabWidget* tabs_;
+			QComboBox* tabBarCombo_;
 			QWidget* contactsTabWidget_;
 			QWidget* eventsTabWidget_;
 			QtEventWindow* eventWindow_;
-- 
cgit v0.10.2-6-g49f6