2009-07-20 10:17:30 +02:00
|
|
|
/**************************************************************************
|
|
|
|
|
**
|
|
|
|
|
** This file is part of Qt Creator
|
|
|
|
|
**
|
2010-03-05 11:25:49 +01:00
|
|
|
** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
|
2009-07-20 10:17:30 +02:00
|
|
|
**
|
|
|
|
|
** Contact: Nokia Corporation (qt-info@nokia.com)
|
|
|
|
|
**
|
|
|
|
|
** Commercial Usage
|
|
|
|
|
**
|
|
|
|
|
** Licensees holding valid Qt Commercial licenses may use this file in
|
|
|
|
|
** accordance with the Qt Commercial License Agreement provided with the
|
|
|
|
|
** Software or, alternatively, in accordance with the terms contained in
|
|
|
|
|
** a written agreement between you and Nokia.
|
|
|
|
|
**
|
|
|
|
|
** GNU Lesser General Public License Usage
|
|
|
|
|
**
|
|
|
|
|
** Alternatively, 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.
|
|
|
|
|
**
|
|
|
|
|
** If you are unsure which license is appropriate for your use, please
|
2009-08-14 09:30:56 +02:00
|
|
|
** contact the sales department at http://qt.nokia.com/contact.
|
2009-07-20 10:17:30 +02:00
|
|
|
**
|
|
|
|
|
**************************************************************************/
|
|
|
|
|
|
2009-05-26 15:31:29 +02:00
|
|
|
#ifndef S60DEVICESPREFERENCEPANE_H
|
|
|
|
|
#define S60DEVICESPREFERENCEPANE_H
|
|
|
|
|
|
2010-04-14 15:53:35 +02:00
|
|
|
#include "s60devices.h"
|
2009-05-26 15:31:29 +02:00
|
|
|
#include <coreplugin/dialogs/ioptionspage.h>
|
|
|
|
|
|
|
|
|
|
#include <QtCore/QPointer>
|
|
|
|
|
#include <QtGui/QWidget>
|
|
|
|
|
|
2010-04-14 15:53:35 +02:00
|
|
|
QT_BEGIN_NAMESPACE
|
|
|
|
|
class QStandardItem;
|
|
|
|
|
class QAbstractButton;
|
|
|
|
|
class QModelIndex;
|
|
|
|
|
QT_END_NAMESPACE
|
|
|
|
|
|
2009-05-26 15:31:29 +02:00
|
|
|
namespace Qt4ProjectManager {
|
|
|
|
|
namespace Internal {
|
2010-04-14 15:53:35 +02:00
|
|
|
class AutoDetectS60Devices;
|
|
|
|
|
class GnuPocS60Devices;
|
|
|
|
|
class S60DevicesModel;
|
2009-05-26 15:31:29 +02:00
|
|
|
|
2010-03-18 10:59:06 +01:00
|
|
|
namespace Ui {
|
2009-05-26 15:31:29 +02:00
|
|
|
class S60DevicesPreferencePane;
|
|
|
|
|
}
|
|
|
|
|
|
2010-04-14 15:53:35 +02:00
|
|
|
// Base pane listing Symbian SDKs with "Change Qt" version functionality.
|
|
|
|
|
class S60DevicesBaseWidget : public QWidget
|
2009-05-26 15:31:29 +02:00
|
|
|
{
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
public:
|
2010-04-14 15:53:35 +02:00
|
|
|
typedef QList<S60Devices::Device> DeviceList;
|
2009-05-26 15:31:29 +02:00
|
|
|
|
2010-04-14 15:53:35 +02:00
|
|
|
enum Flags { ShowAddButton = 0x1, ShowRemoveButton = 0x2,
|
|
|
|
|
ShowChangeQtButton =0x4, ShowRefreshButton = 0x8,
|
|
|
|
|
DeviceDefaultCheckable = 0x10 };
|
|
|
|
|
|
|
|
|
|
virtual ~S60DevicesBaseWidget();
|
|
|
|
|
|
|
|
|
|
DeviceList devices() const;
|
|
|
|
|
void setDevices(const DeviceList &dl, const QString &errorString = QString());
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
explicit S60DevicesBaseWidget(unsigned flags, QWidget *parent = 0);
|
2009-05-26 15:31:29 +02:00
|
|
|
|
2009-11-20 15:58:24 +01:00
|
|
|
void setErrorLabel(const QString&);
|
|
|
|
|
void clearErrorLabel();
|
|
|
|
|
|
2010-04-14 15:53:35 +02:00
|
|
|
QString promptDirectory(const QString &title);
|
|
|
|
|
void appendDevice(const S60Devices::Device &d);
|
|
|
|
|
int deviceCount() const;
|
|
|
|
|
|
|
|
|
|
QStandardItem *currentItem() const;
|
|
|
|
|
|
|
|
|
|
private slots:
|
|
|
|
|
void currentChanged(const QModelIndex ¤t, const QModelIndex &previous);
|
|
|
|
|
void changeQtVersion();
|
|
|
|
|
void removeDevice();
|
|
|
|
|
virtual void addDevice() {} // Default does nothing
|
|
|
|
|
virtual void refresh() {} // Default does nothing
|
|
|
|
|
|
|
|
|
|
private:
|
2009-05-26 15:31:29 +02:00
|
|
|
Ui::S60DevicesPreferencePane *m_ui;
|
2010-04-14 15:53:35 +02:00
|
|
|
S60DevicesModel *m_model;
|
2009-05-26 15:31:29 +02:00
|
|
|
};
|
|
|
|
|
|
2010-04-14 15:53:35 +02:00
|
|
|
// Widget for autodetected SDK's showing a refresh button.
|
|
|
|
|
class AutoDetectS60DevicesWidget : public S60DevicesBaseWidget
|
|
|
|
|
{
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
public:
|
|
|
|
|
explicit AutoDetectS60DevicesWidget(QWidget *parent,
|
|
|
|
|
AutoDetectS60Devices *devices,
|
|
|
|
|
bool changeQtVersionEnabled);
|
|
|
|
|
|
|
|
|
|
private slots:
|
|
|
|
|
virtual void refresh();
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
AutoDetectS60Devices *m_devices;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// Widget for manually configured SDK's showing a add/remove buttons.
|
|
|
|
|
class GnuPocS60DevicesWidget : public S60DevicesBaseWidget
|
|
|
|
|
{
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
public:
|
|
|
|
|
explicit GnuPocS60DevicesWidget(QWidget *parent = 0);
|
|
|
|
|
|
|
|
|
|
private slots:
|
|
|
|
|
virtual void addDevice();
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// Options Pane.
|
2010-03-26 17:34:10 +01:00
|
|
|
class S60DevicesPreferencePane : public Core::IOptionsPage
|
|
|
|
|
{
|
2009-05-26 15:31:29 +02:00
|
|
|
Q_OBJECT
|
|
|
|
|
public:
|
|
|
|
|
S60DevicesPreferencePane(S60Devices *devices, QObject *parent = 0);
|
|
|
|
|
~S60DevicesPreferencePane();
|
|
|
|
|
|
|
|
|
|
QString id() const;
|
2010-01-07 18:17:24 +01:00
|
|
|
QString displayName() const;
|
2009-05-26 15:31:29 +02:00
|
|
|
QString category() const;
|
2010-01-07 18:17:24 +01:00
|
|
|
QString displayCategory() const;
|
2010-03-26 17:34:10 +01:00
|
|
|
QIcon categoryIcon() const;
|
2009-05-26 15:31:29 +02:00
|
|
|
|
|
|
|
|
QWidget *createPage(QWidget *parent);
|
|
|
|
|
void apply();
|
|
|
|
|
void finish();
|
|
|
|
|
|
|
|
|
|
private:
|
2010-04-14 15:53:35 +02:00
|
|
|
S60DevicesBaseWidget *createWidget(QWidget *parent) const;
|
|
|
|
|
|
|
|
|
|
QPointer<S60DevicesBaseWidget> m_widget;
|
2009-05-26 15:31:29 +02:00
|
|
|
S60Devices *m_devices;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
} // namespace Internal
|
|
|
|
|
} // namespace Qt4ProjectManager
|
|
|
|
|
|
|
|
|
|
#endif // S60DEVICESPREFERENCEPANE_H
|