Skip to content

Commit

Permalink
[systemsettings] initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
rburchell committed May 11, 2013
0 parents commit 1d2f366
Show file tree
Hide file tree
Showing 19 changed files with 2,172 additions and 0 deletions.
87 changes: 87 additions & 0 deletions src/aboutsettings.cpp
@@ -0,0 +1,87 @@
/*
* Copyright (C) 2013 Jolla Ltd. <pekka.vuorela@jollamobile.com>
*
* You may use this file under the terms of the BSD license as follows:
*
* "Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* * Neither the name of Nemo Mobile nor the names of its contributors
* may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
*/

#include <QDebug>
#include <QStringList>
#include "aboutsettings.h"

AboutSettings::AboutSettings(QObject *parent)
: QObject(parent),
m_sysinfo(new QSystemStorageInfo(this)),
m_netinfo(new QSystemNetworkInfo(this)),
m_devinfo(new QSystemDeviceInfo(this))
{
qDebug() << "Drives:" << m_sysinfo->logicalDrives();
}

AboutSettings::~AboutSettings()
{
}

qlonglong AboutSettings::totalDiskSpace() const
{
return m_sysinfo->totalDiskSpace("/");
}

qlonglong AboutSettings::availableDiskSpace() const
{
return m_sysinfo->availableDiskSpace("/");
}

const QString AboutSettings::bluetoothAddress() const
{
return m_netinfo->macAddress(QSystemNetworkInfo::BluetoothMode);
}

const QString AboutSettings::wlanMacAddress() const
{
return m_netinfo->macAddress(QSystemNetworkInfo::WlanMode);
}

const QString AboutSettings::imei() const
{
return m_devinfo->imei();
}

const QString AboutSettings::manufacturer() const
{
return m_devinfo->manufacturer();
}

const QString AboutSettings::productName() const
{
return m_devinfo->productName();
}

const QString AboutSettings::model() const
{
return m_devinfo->model();
}
72 changes: 72 additions & 0 deletions src/aboutsettings.h
@@ -0,0 +1,72 @@
/*
* Copyright (C) 2013 Jolla Ltd. <pekka.vuorela@jollamobile.com>
*
* You may use this file under the terms of the BSD license as follows:
*
* "Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* * Neither the name of Nemo Mobile nor the names of its contributors
* may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
*/

#ifndef ABOUTSETTINGS_H
#define ABOUTSETTINGS_H

#include <QSystemStorageInfo>
#include <QSystemNetworkInfo>
#include <QSystemDeviceInfo>

QTM_USE_NAMESPACE

class AboutSettings: public QObject
{
Q_OBJECT

Q_PROPERTY(QString bluetoothAddress READ bluetoothAddress CONSTANT)
Q_PROPERTY(QString wlanMacAddress READ wlanMacAddress CONSTANT)
Q_PROPERTY(QString imei READ imei CONSTANT)
Q_PROPERTY(QString manufacturer READ manufacturer CONSTANT)
Q_PROPERTY(QString productName READ productName CONSTANT)
Q_PROPERTY(QString model READ model CONSTANT)

public:
explicit AboutSettings(QObject *parent = 0);
virtual ~AboutSettings();

Q_INVOKABLE qlonglong totalDiskSpace() const;
Q_INVOKABLE qlonglong availableDiskSpace() const;

const QString bluetoothAddress() const;
const QString wlanMacAddress() const;
const QString imei() const;
const QString manufacturer() const;
const QString productName() const;
const QString model() const;

private:
QSystemStorageInfo *m_sysinfo;
QSystemNetworkInfo *m_netinfo;
QSystemDeviceInfo *m_devinfo;
};

#endif
80 changes: 80 additions & 0 deletions src/alarmtonemodel.cpp
@@ -0,0 +1,80 @@
/*
* Copyright (C) 2013 Jolla Ltd. <pekka.vuorela@jollamobile.com>
*
* You may use this file under the terms of the BSD license as follows:
*
* "Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* * Neither the name of Nemo Mobile nor the names of its contributors
* may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
*/

#include "alarmtonemodel.h"

#include <QDir>
#include <QDebug>

const char * const AlarmToneDir = "/usr/share/sounds/jolla-ringtones/stereo/";


AlarmToneModel::AlarmToneModel(QObject *parent)
: QAbstractListModel(parent)
{
QHash<int, QByteArray> roles;
roles[FilenameRole] = "filename";
roles[TitleRole] = "title";
setRoleNames(roles);

QDir ringtoneDir(AlarmToneDir);
QStringList filters;
filters << "*.wav" << "*.mp3" << "*.ogg"; // TODO: need more?
m_fileInfoList = ringtoneDir.entryInfoList(filters, QDir::Files, QDir::Name);
}

AlarmToneModel::~AlarmToneModel()
{
}

int AlarmToneModel::rowCount(const QModelIndex &parent) const
{
Q_UNUSED(parent);
return m_fileInfoList.count();
}

QVariant AlarmToneModel::data(const QModelIndex &index, int role) const
{
int row = index.row();
if (row < 0 || row > m_fileInfoList.count()) {
return QVariant();
}

switch (role) {
case FilenameRole:
return m_fileInfoList.at(row).absoluteFilePath();
case TitleRole:
// for now just strip extension
return m_fileInfoList.at(row).baseName();
default:
return QVariant();
}
}
62 changes: 62 additions & 0 deletions src/alarmtonemodel.h
@@ -0,0 +1,62 @@
/*
* Copyright (C) 2013 Jolla Ltd. <pekka.vuorela@jollamobile.com>
*
* You may use this file under the terms of the BSD license as follows:
*
* "Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* * Neither the name of Nemo Mobile nor the names of its contributors
* may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
*/

#ifndef ALARMTONEMODEL_H
#define ALARMTONEMODEL_H

#include <QAbstractListModel>
#include <QFileInfo>

class AlarmToneModel : public QAbstractListModel
{
Q_OBJECT

public:
enum ApplicationRoles {
FilenameRole = Qt::UserRole + 1,
TitleRole
};

explicit AlarmToneModel(QObject *parent = 0);
virtual ~AlarmToneModel();

virtual int rowCount(const QModelIndex &parent = QModelIndex()) const;
virtual QVariant data(const QModelIndex &index, int role) const;

signals:
void selectedFileChanged();
void currentIndexChanged();

private:
QFileInfoList m_fileInfoList;
};

#endif

0 comments on commit 1d2f366

Please sign in to comment.