summaryrefslogtreecommitdiff
path: root/src/plugins/remotelinux/typespecificdeviceconfigurationlistmodel.cpp
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@nokia.com>2011-07-22 12:38:57 +0200
committerChristian Kandeler <christian.kandeler@nokia.com>2011-07-22 14:39:46 +0200
commit9d5f420f4dd4f95d810e33146dd6f5976c08694c (patch)
tree96cac362d4fff5af6e66cba8d1e655cb4d134827 /src/plugins/remotelinux/typespecificdeviceconfigurationlistmodel.cpp
parent4bf65fe47b266b88c4587f504c2947e35e0f9695 (diff)
downloadqt-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.cpp125
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