/*
* Copyright (C) 2011, Jamie Thompson
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public
* License along with this program; If not, see
* .
*/
#ifndef SETTINGS_H
#define SETTINGS_H
#include "EventTypes/eEventTypes.h"
#include
class Settings
{
public:
enum eAppMode
{
APPMODE_CONSOLE,
APPMODE_GUI
};
// Options for main mode - importing or exporting content
enum eMode
{
MODE_IMPORT,
MODE_EXPORT,
};
static const int kNumModes = MODE_EXPORT + 1;
// Options for targets - sent or recieved
enum eDirection
{
OUTGOING,
INCOMING,
};
static const int kNumTargets = INCOMING + 1;
private:
// The current UI mode of the application (Console/GUI)
eAppMode m_AppMode;
// Have the settings been confirmed by the user?
bool m_Confirmed;
// The current operation mode of the application (Import/Export)
eMode m_Mode;
// The current targets & event types being processed
bool m_ShouldProcess[kNumTargets][EventTypes::kNumEventTypes];
// The root directory to import or export from
QString m_Directory;
// The ITU code for this country
uint m_CountryCode;
// Is it OK to disable the cellular radio to prevent calls and messages?
bool m_DisableCellular;
// RtcomEventLogger path
QString m_DBPath;
void DBPath(QString dbPath) { m_DBPath = dbPath; }
public:
Settings();
eAppMode const AppMode() const { return m_AppMode; }
eAppMode const setAppMode(const eAppMode appMode) { return m_AppMode = appMode; }
bool const IsConfirmed() const { return m_Confirmed; }
bool const setConfirmed(const bool confirmed) { return m_Confirmed = confirmed; }
eMode const Mode() const { return m_Mode; }
eMode const setMode(const eMode mode) { return m_Mode = mode; }
bool const ShouldProcess(const eDirection target, const EventTypes::eEventTypes eventType) const { return m_ShouldProcess[target][eventType]; }
bool const setShouldProcess(const eDirection target, const EventTypes::eEventTypes eventType, const bool shouldProcess = true){ return m_ShouldProcess[target][eventType] = shouldProcess; }
bool const anyToProcess()
{
for(int targetIndex = 0; targetIndex < kNumTargets; ++targetIndex)
for(int eventTypeIndex = 0; eventTypeIndex < EventTypes::kNumEventTypes; ++eventTypeIndex)
if (m_ShouldProcess[targetIndex][eventTypeIndex])
return true;
return false;
}
QString const Directory() const{ return m_Directory; }
QString const setDirectory(const QString& directory){ return m_Directory = directory; }
uint const CountryCode() const { return m_CountryCode; }
uint const setCountryCode(const uint countryCode) { return m_CountryCode = countryCode; }
bool const DisableCellular() const { return m_DisableCellular; }
bool const setDisableCellular(const bool disableCellular) { return m_DisableCellular = disableCellular; }
const QString &DBPath() const { return m_DBPath; }
};
#endif // SETTINGS_H