diff options
author | Christian Kandeler <christian.kandeler@nokia.com> | 2011-07-22 12:38:57 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@nokia.com> | 2011-07-22 14:39:46 +0200 |
commit | 9d5f420f4dd4f95d810e33146dd6f5976c08694c (patch) | |
tree | 96cac362d4fff5af6e66cba8d1e655cb4d134827 /src/plugins/remotelinux/typespecificdeviceconfigurationlistmodel.cpp | |
parent | 4bf65fe47b266b88c4587f504c2947e35e0f9695 (diff) | |
download | qt-creator-9d5f420f4dd4f95d810e33146dd6f5976c08694c.tar.gz |
RemoteLinux: Rename a bunch of classes.
They still had "Maemo" in their names, even though
they are not Maemo-specific (and will not move
to the respective plugin).
Change-Id: I5eec0de27db8340f2a987a6ed685b3ae46ec17b0
Reviewed-on: http://codereview.qt.nokia.com/2036
Reviewed-by: Christian Kandeler <christian.kandeler@nokia.com>
Diffstat (limited to 'src/plugins/remotelinux/typespecificdeviceconfigurationlistmodel.cpp')
-rw-r--r-- | src/plugins/remotelinux/typespecificdeviceconfigurationlistmodel.cpp | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/src/plugins/remotelinux/typespecificdeviceconfigurationlistmodel.cpp b/src/plugins/remotelinux/typespecificdeviceconfigurationlistmodel.cpp new file mode 100644 index 0000000000..8d30228af9 --- /dev/null +++ b/src/plugins/remotelinux/typespecificdeviceconfigurationlistmodel.cpp @@ -0,0 +1,125 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (info@qt.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 info@qt.nokia.com. +** +**************************************************************************/ +#include "typespecificdeviceconfigurationlistmodel.h" + +#include "linuxdeviceconfigurations.h" + +namespace RemoteLinux { +namespace Internal { + +TypeSpecificDeviceConfigurationListModel::TypeSpecificDeviceConfigurationListModel(QObject *parent, + const QString &osType) : QAbstractListModel(parent), m_targetOsType(osType) +{ + const LinuxDeviceConfigurations * const devConfs + = LinuxDeviceConfigurations::instance(); + connect(devConfs, SIGNAL(modelReset()), this, SIGNAL(modelReset())); + connect(devConfs, SIGNAL(updated()), this, SIGNAL(updated())); +} + +TypeSpecificDeviceConfigurationListModel::~TypeSpecificDeviceConfigurationListModel() +{ +} + +int TypeSpecificDeviceConfigurationListModel::rowCount(const QModelIndex &parent) const +{ + if (parent.isValid()) + return 0; + int count = 0; + const LinuxDeviceConfigurations * const devConfs + = LinuxDeviceConfigurations::instance(); + const int devConfsCount = devConfs->rowCount(); + if (m_targetOsType == LinuxDeviceConfiguration::GenericLinuxOsType) + return devConfsCount; + for (int i = 0; i < devConfsCount; ++i) { + if (devConfs->deviceAt(i)->osType() == m_targetOsType) + ++count; + } + return count; +} + +QVariant TypeSpecificDeviceConfigurationListModel::data(const QModelIndex &index, + int role) const +{ + if (!index.isValid() || index.row() >= rowCount() || role != Qt::DisplayRole) + return QVariant(); + const LinuxDeviceConfiguration::ConstPtr &devConf = deviceAt(index.row()); + Q_ASSERT(devConf); + QString displayedName = devConf->name(); + if (devConf->isDefault() && devConf->osType() == m_targetOsType) + displayedName += QLatin1Char(' ') + tr("(default)"); + return displayedName; +} + +LinuxDeviceConfiguration::ConstPtr TypeSpecificDeviceConfigurationListModel::deviceAt(int idx) const +{ + int currentRow = -1; + const LinuxDeviceConfigurations * const devConfs + = LinuxDeviceConfigurations::instance(); + if (m_targetOsType == LinuxDeviceConfiguration::GenericLinuxOsType) + return devConfs->deviceAt(idx); + const int devConfsCount = devConfs->rowCount(); + for (int i = 0; i < devConfsCount; ++i) { + if (devConfs->deviceAt(i)->osType() == m_targetOsType) { + if (++currentRow == idx) + return devConfs->deviceAt(i); + } + } + Q_ASSERT(false); + return LinuxDeviceConfiguration::ConstPtr(); +} + +LinuxDeviceConfiguration::ConstPtr TypeSpecificDeviceConfigurationListModel::defaultDeviceConfig() const +{ + return LinuxDeviceConfigurations::instance()->defaultDeviceConfig(m_targetOsType); +} + +LinuxDeviceConfiguration::ConstPtr TypeSpecificDeviceConfigurationListModel::find(LinuxDeviceConfiguration::Id id) const +{ + const LinuxDeviceConfiguration::ConstPtr &devConf + = LinuxDeviceConfigurations::instance()->find(id); + return devConf && (devConf->osType() == m_targetOsType + || m_targetOsType == LinuxDeviceConfiguration::GenericLinuxOsType) + ? devConf : defaultDeviceConfig(); +} + +int TypeSpecificDeviceConfigurationListModel::indexForInternalId(LinuxDeviceConfiguration::Id id) const +{ + const int count = rowCount(); + for (int i = 0; i < count; ++i) { + if (deviceAt(i)->internalId() == id) + return i; + } + return -1; +} + +} // namespace Internal +} // namespace RemoteLinux |