From be3b47d0d504a3409ce66bd77bb8c0acff87c4f5 Mon Sep 17 00:00:00 2001 From: kh1 Date: Thu, 15 Mar 2012 14:53:47 +0100 Subject: Reorganize the tree, have better ifw.pri. Shadow build support. Change-Id: I01fb12537f863ed0744979973c7e4153889cc5cb Reviewed-by: Tim Jenssen --- src/sdk/settingsdialog.h | 172 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 172 insertions(+) create mode 100644 src/sdk/settingsdialog.h (limited to 'src/sdk/settingsdialog.h') diff --git a/src/sdk/settingsdialog.h b/src/sdk/settingsdialog.h new file mode 100644 index 000000000..a222ecf87 --- /dev/null +++ b/src/sdk/settingsdialog.h @@ -0,0 +1,172 @@ +/************************************************************************** +** +** This file is part of Installer Framework +** +** Copyright (c) 2011-2012 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** +** GNU Lesser General Public License Usage +** +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this file. +** Please review the following information to ensure the GNU Lesser General +** Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** Other Usage +** +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +**************************************************************************/ +#ifndef SETTINGSDIALOG_H +#define SETTINGSDIALOG_H + +#include +#include + +#include + +#include +#include +#include + +QT_BEGIN_NAMESPACE +class QLocale; +class QVariant; +QT_END_NAMESPACE + +namespace KDUpdater { + class FileDownloader; +} + +namespace QInstaller { + class PackageManagerCore; +} + +namespace Ui { + class SettingsDialog; +} + + +// -- TestRepositoryJob + +class TestRepository : public KDJob +{ + Q_OBJECT + +public: + + TestRepository(QObject *parent = 0); + ~TestRepository(); + + void setRepository(const QInstaller::Repository &repository); + +private: + void doStart(); + void doCancel(); + +private Q_SLOTS: + void downloadCompleted(); + void downloadAborted(const QString &reason); + +private: + QInstaller::Repository m_repository; + KDUpdater::FileDownloader *m_downloader; +}; + + +// -- PasswordDelegate + +class PasswordDelegate : public QStyledItemDelegate +{ + Q_OBJECT + +public: + PasswordDelegate(QWidget *parent = 0) + : QStyledItemDelegate(parent) + , m_showPasswords(true) + , m_disabledEditor(true) + {} + + void showPasswords(bool show); + void disableEditing(bool disable); + +protected: + QString displayText(const QVariant &value, const QLocale &locale) const; + QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &, const QModelIndex &) const; + +private: + bool m_showPasswords; + bool m_disabledEditor; +}; + + +// -- RepositoryItem + +class RepositoryItem : public QTreeWidgetItem +{ +public: + RepositoryItem(const QString &label); + RepositoryItem(const QInstaller::Repository &repo); + + QVariant data(int column, int role) const; + void setData(int column, int role, const QVariant &value); + + QSet repositories() const; + QInstaller::Repository repository() const { return m_repo; } + void setRepository(const QInstaller::Repository &repo) { m_repo = repo; } + +private: + QInstaller::Repository m_repo; +}; + + +// -- SettingsDialog + +class SettingsDialog : public QDialog +{ + Q_OBJECT + +public: + SettingsDialog(QInstaller::PackageManagerCore *core, QWidget *parent = 0); + +public slots: + void accept(); + +signals: + void networkSettingsChanged(const QInstaller::Settings &settings); + +private slots: + void addRepository(); + void testRepository(); + void updatePasswords(); + void removeRepository(); + void useTmpRepositoriesOnly(bool use); + void currentRepositoryChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous); + +private: + void setupRepositoriesTreeWidget(); + void insertRepositories(const QSet repos, QTreeWidgetItem *rootItem); + +private: + Ui::SettingsDialog *m_ui; + PasswordDelegate *m_delegate; + QInstaller::PackageManagerCore *m_core; + + bool m_showPasswords; + TestRepository m_testRepository; + QList m_rootItems; +}; + +#endif // SETTINGSDIALOG_H -- cgit v1.2.3