4a46996922
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27451 a1c6a512-1295-4272-9138-f99709370657
157 lines
4.5 KiB
C++
157 lines
4.5 KiB
C++
/***************************************************************************
|
|
* __________ __ ___.
|
|
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
|
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
|
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
|
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
|
* \/ \/ \/ \/ \/
|
|
* $Id$
|
|
*
|
|
* Copyright (C) 2010 Robert Bieber
|
|
*
|
|
* 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 2
|
|
* of the License, or (at your option) any later version.
|
|
*
|
|
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
* KIND, either express or implied.
|
|
*
|
|
****************************************************************************/
|
|
|
|
#include "newprojectdialog.h"
|
|
#include "ui_newprojectdialog.h"
|
|
#include "targetdata.h"
|
|
|
|
#include <QSettings>
|
|
#include <QFileDialog>
|
|
#include <QDir>
|
|
|
|
NewProjectDialog::NewProjectDialog(QWidget *parent) :
|
|
QDialog(parent),
|
|
ui(new Ui::NewProjectDialog)
|
|
{
|
|
ui->setupUi(this);
|
|
|
|
/* Getting the default directory from the application settings */
|
|
QSettings settings;
|
|
settings.beginGroup("NewProjectDialog");
|
|
|
|
ui->locationBox->setText(settings.value("defaultDir",
|
|
QDir::home().absolutePath())
|
|
.toString());
|
|
|
|
settings.endGroup();
|
|
|
|
/* Populating the target box */
|
|
TargetData targets;
|
|
for(int i = 0; i < targets.count(); i++)
|
|
{
|
|
ui->targetBox->insertItem(i, QIcon(), targets.name(i), targets.id(i));
|
|
}
|
|
targetChange(0);
|
|
|
|
/* Connecting the browse button and target box */
|
|
QObject::connect(ui->browseButton, SIGNAL(clicked()),
|
|
this, SLOT(browse()));
|
|
QObject::connect(ui->targetBox, SIGNAL(currentIndexChanged(int)),
|
|
this, SLOT(targetChange(int)));
|
|
}
|
|
|
|
NewProjectDialog::~NewProjectDialog()
|
|
{
|
|
delete ui;
|
|
}
|
|
|
|
void NewProjectDialog::accept()
|
|
{
|
|
status.name = ui->nameBox->text();
|
|
status.path = ui->locationBox->text();
|
|
status.target = ui->targetBox->itemData(ui->targetBox->currentIndex())
|
|
.toString();
|
|
status.sbs = ui->sbsBox->isChecked();
|
|
status.wps = ui->wpsBox->isChecked();
|
|
status.fms = ui->fmsBox->isChecked();
|
|
status.rsbs = ui->rsbsBox->isChecked();
|
|
status.rwps = ui->rwpsBox->isChecked();
|
|
status.rfms = ui->rfmsBox->isChecked();
|
|
|
|
QSettings settings;
|
|
settings.beginGroup("NewProjectDialog");
|
|
|
|
settings.setValue("defaultDir", ui->locationBox->text());
|
|
|
|
settings.endGroup();
|
|
|
|
QDialog::accept();
|
|
}
|
|
|
|
void NewProjectDialog::reject()
|
|
{
|
|
ui->nameBox->setText(status.name);
|
|
ui->locationBox->setText(status.path);
|
|
ui->targetBox->setCurrentIndex(0);
|
|
ui->sbsBox->setChecked(status.sbs);
|
|
ui->wpsBox->setChecked(status.wps);
|
|
ui->fmsBox->setChecked(status.fms);
|
|
ui->rsbsBox->setChecked(status.rsbs);
|
|
ui->rwpsBox->setChecked(status.rwps);
|
|
ui->rfmsBox->setChecked(status.rfms);
|
|
|
|
QSettings settings;
|
|
settings.beginGroup("NewProjectDialog");
|
|
|
|
ui->locationBox->setText(settings.value("defaultDir",
|
|
QDir::home().absolutePath())
|
|
.toString());
|
|
|
|
settings.endGroup();
|
|
|
|
QDialog::reject();
|
|
}
|
|
|
|
void NewProjectDialog::browse()
|
|
{
|
|
QString path;
|
|
path = QFileDialog::getExistingDirectory(this, "New Project Location",
|
|
ui->locationBox->text());
|
|
ui->locationBox->setText(path);
|
|
}
|
|
|
|
void NewProjectDialog::targetChange(int target)
|
|
{
|
|
TargetData targets;
|
|
|
|
if(targets.fm(target))
|
|
{
|
|
ui->fmsBox->setEnabled(true);
|
|
ui->rfmsBox->setEnabled(true);
|
|
}
|
|
else
|
|
{
|
|
ui->fmsBox->setChecked(false);
|
|
ui->rfmsBox->setChecked(false);
|
|
|
|
ui->fmsBox->setEnabled(false);
|
|
ui->rfmsBox->setEnabled(false);
|
|
}
|
|
|
|
if(targets.remoteDepth(target) == TargetData::None)
|
|
{
|
|
ui->rwpsBox->setChecked(false);
|
|
ui->rsbsBox->setChecked(false);
|
|
ui->rfmsBox->setChecked(false);
|
|
|
|
ui->rsbsBox->setEnabled(false);
|
|
ui->rwpsBox->setEnabled(false);
|
|
ui->rfmsBox->setEnabled(false);
|
|
}
|
|
else
|
|
{
|
|
ui->rsbsBox->setEnabled(true);
|
|
ui->rwpsBox->setEnabled(true);
|
|
if(targets.fm(target))
|
|
ui->rfmsBox->setEnabled(true);
|
|
}
|
|
|
|
}
|