Remove this line
[kdeaccessibility.git] / kttsd / libkttsd / selectlanguagedlg.cpp
bloba5f0ba94d4fbe38b4114b4d78605c0614c2674af
1 /***************************************************** vim:set ts=4 sw=4 sts=4:
2 Description:
3 A dialog for user to select one or more languages from the list
4 of KDE global languages.
6 Copyright:
7 (C) 2006 by Gary Cramblitt <garycramblitt@comcast.net>
8 -------------------
9 Original author: Gary Cramblitt <garycramblitt@comcast.net>
11 This program is free software; you can redistribute it and/or modify
12 it under the terms of the GNU General Public License as published by
13 the Free Software Foundation; either version 2 of the License, or
14 (at your option) any later version.
16 This program is distributed in the hope that it will be useful,
17 but WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 GNU General Public License for more details.
21 You should have received a copy of the GNU General Public License
22 along with this program; if not, write to the Free Software
23 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
24 ******************************************************************************/
26 #include "selectlanguagedlg.h"
28 // Qt includes.
29 #include <QtGui/QTableWidget>
30 #include <QtGui/QHeaderView>
32 // KDE includes.
33 #include <kdialog.h>
34 #include <kdebug.h>
35 #include <kglobal.h>
37 // KTTS includes.
38 #include "talkercode.h"
39 #include "selectlanguagedlg.moc"
41 SelectLanguageDlg::SelectLanguageDlg(
42 QWidget* parent,
43 const QString& caption,
44 const QStringList& languageCodes,
45 bool selectMode,
46 bool blankMode) :
48 KDialog(parent)
50 setCaption(caption);
51 setButtons(KDialog::Help|KDialog::Ok|KDialog::Cancel);
52 // Create a QTableWidget and fill with all known languages.
53 m_langList = new QTableWidget( this );
54 m_langList->setColumnCount(2);
55 m_langList->verticalHeader()->hide();
56 m_langList->setHorizontalHeaderItem(0, new QTableWidgetItem(i18n("Language")));
57 m_langList->setHorizontalHeaderItem(1, new QTableWidgetItem(i18n("Code")));
58 m_langList->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
59 m_langList->setSelectionBehavior(QAbstractItemView::SelectRows);
60 if (selectMode == MultipleSelect)
61 m_langList->setSelectionMode(QAbstractItemView::ExtendedSelection);
62 else
63 m_langList->setSelectionMode(QAbstractItemView::SingleSelection);
64 QStringList allLocales = KGlobal::locale()->allLanguagesList();
65 QString locale;
66 QString language;
67 const int allLocalesCount = allLocales.count();
68 for (int ndx=0; ndx < allLocalesCount; ++ndx)
70 locale = allLocales[ndx];
71 language = TalkerCode::languageCodeToLanguage(locale);
72 if (!language.isEmpty()) {
73 int row = m_langList->rowCount();
74 m_langList->setRowCount(row + 1);
75 m_langList->setItem(row, 0, new QTableWidgetItem(language));
76 m_langList->setItem(row, 1, new QTableWidgetItem(locale));
77 if (languageCodes.contains(locale)) m_langList->selectRow(row);
80 // Sort by language.
81 m_langList->sortItems(0);
82 // If blank is allowed, add to top of the list.
83 if (blankMode == BlankAllowed) {
84 m_langList->insertRow(0);
85 m_langList->setItem(0, 0, new QTableWidgetItem(""));
86 m_langList->setItem(0, 1, new QTableWidgetItem(""));
88 setMainWidget(m_langList);
89 setHelp("select-language", "kttsd");
90 QSize size = m_langList->minimumSize();
91 size.setHeight(500);
92 m_langList->setMinimumSize(size);
95 QString SelectLanguageDlg::selectedLanguage()
97 return firstSelectedItem(0);
100 QString SelectLanguageDlg::selectedLanguageCode()
102 return firstSelectedItem(1);
105 QStringList SelectLanguageDlg::selectedLanguages()
107 return allSelectedItems(0);
110 QStringList SelectLanguageDlg::selectedLanguageCodes()
112 return allSelectedItems(1);
115 QString SelectLanguageDlg::firstSelectedItem(int col)
117 QString s;
118 for (int row = 0; row < m_langList->rowCount(); ++row) {
119 if (m_langList->isItemSelected(m_langList->item(row, col)))
120 return m_langList->item(row, col)->text();
122 return QString();
125 QStringList SelectLanguageDlg::allSelectedItems(int col)
127 QStringList sl;
128 for (int row = 0; row < m_langList->rowCount(); ++row) {
129 if (m_langList->isItemSelected(m_langList->item(row, col)))
130 sl.append(m_langList->item(row, col)->text());
132 return sl;