1 /** \file TocThemesSettingsWidget.cpp
2 * \brief Implementation of TocThemesSettingsWidget class
4 * Tieto Open Communicator - Client for the Telepathy communications framework.
5 * Copyright (c) 2010, Tieto Corporation
8 * Redistribution and use in source and binary forms, with or without modification,
9 * are permitted provided that the following conditions are met:
11 * Redistributions of source code must retain the above copyright notice,
12 * this list of conditions and the following disclaimer.
13 * Redistributions in binary form must reproduce the above copyright notice,
14 * this list of conditions and the following disclaimer in the documentation
15 * and/or other materials provided with the distribution.
16 * Neither the name of the Tieto Corporation nor the names of its contributors
17 * may be used to endorse or promote products derived from this software without
18 * specific prior written permission.
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
23 * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
24 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
25 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
28 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 #include "TocThemesSettingsWidget"
33 #include "ui_TocThemesSettingsWidget.h"
36 #include <TocSettings>
37 #include <QListWidgetItem>
42 TocThemesSettingsWidget::TocThemesSettingsWidget(QWidget *parent, Qt::WindowFlags flags)
43 : QWidget(parent, flags) {
45 ui = new Ui_TocThemesSettingsWidgetClass();
47 setContentsMargins(-10, -10, -10, -10);
49 ui->applyThemeButton->setText(tr("Apply"));
50 ui->backThemeButton->setText(tr("Back"));
52 //TODO: functionality is not implemented. Add Theme button is hidden.
53 ui->addThemeButton->setVisible(false);
54 ui->addThemeButton->setText(tr("Add theme"));
57 #define ssPath QString("/usr/share/tietoopcom/stylesheets/")
59 #define ssPath QString("./data/stylesheets/")
64 QListWidgetItem* pItem = new QListWidgetItem("Default theme", ui->themesListWidget);
65 pItem->setToolTip(ssPath + "default.qss");
67 pItem = new QListWidgetItem("My theme", ui->themesListWidget);
68 pItem->setToolTip(ssPath + "my.qss");
70 CONNECT(ui->backThemeButton,SIGNAL(clicked()),this,SIGNAL(backClicked()));
71 CONNECT(ui->applyThemeButton,SIGNAL(clicked()),this,SLOT(saveThemesSettings()));
74 TocThemesSettingsWidget::~TocThemesSettingsWidget() {
78 void TocThemesSettingsWidget::showEvent( QShowEvent* event ) {
80 TocSettings* pSettings = TocSettings::getInstance();
81 for(int i = 0; i < ui->themesListWidget->count(); ++i)
82 if(ui->themesListWidget->item(i)->toolTip() == pSettings->currentTheme()) {
83 ui->themesListWidget->setCurrentRow(i);
88 void TocThemesSettingsWidget::saveThemesSettings() {
90 TocSettings* pSettings = TocSettings::getInstance();
92 QListWidgetItem* pThemesListItem = ui->themesListWidget->currentItem();
96 QString themeUrl = pThemesListItem->toolTip();
97 if(themeUrl == pSettings->currentTheme())
100 pSettings->setCurrentTheme(themeUrl);
101 emit currentThemeChanged();