forked from teamnwah/openmw-tes3coop
Implemented copy and delete profile functions
This commit is contained in:
parent
9e852a36bf
commit
4dbdc1cb26
2 changed files with 67 additions and 4 deletions
apps/launcher
|
@ -83,12 +83,14 @@ DataFilesPage::DataFilesPage(QWidget *parent) : QWidget(parent)
|
|||
|
||||
mNewProfileButton = new QPushButton(this);
|
||||
mNewProfileButton->setIcon(QIcon::fromTheme("document-new"));
|
||||
mNewProfileButton->setShortcut(QKeySequence(tr("Ctrl+N")));
|
||||
|
||||
mCopyProfileButton = new QPushButton(this);
|
||||
mCopyProfileButton->setIcon(QIcon::fromTheme("edit-copy"));
|
||||
|
||||
mDeleteProfileButton = new QPushButton(this);
|
||||
mDeleteProfileButton->setIcon(QIcon::fromTheme("document-close"));
|
||||
mDeleteProfileButton->setShortcut(QKeySequence(tr("Delete")));
|
||||
|
||||
QHBoxLayout *bottomLayout = new QHBoxLayout();
|
||||
|
||||
|
@ -122,6 +124,8 @@ DataFilesPage::DataFilesPage(QWidget *parent) : QWidget(parent)
|
|||
|
||||
|
||||
connect(mNewProfileButton, SIGNAL(pressed()), this, SLOT(newProfile()));
|
||||
connect(mCopyProfileButton, SIGNAL(pressed()), this, SLOT(copyProfile()));
|
||||
connect(mDeleteProfileButton, SIGNAL(pressed()), this, SLOT(deleteProfile()));
|
||||
|
||||
setupConfig();
|
||||
}
|
||||
|
@ -149,15 +153,73 @@ void DataFilesPage::newProfile()
|
|||
|
||||
}
|
||||
|
||||
void DataFilesPage::copyProfile()
|
||||
{
|
||||
QString profile = mProfilesComboBox->currentText();
|
||||
bool ok;
|
||||
|
||||
QString text = QInputDialog::getText(this, tr("Copy Profile"),
|
||||
tr("Profile Name:"), QLineEdit::Normal,
|
||||
tr("%0 Copy").arg(profile), &ok);
|
||||
if (ok && !text.isEmpty()) {
|
||||
if (mProfilesComboBox->findText(text) != -1)
|
||||
{
|
||||
QMessageBox::warning(this, tr("Profile already exists"),
|
||||
tr("the profile <b>%0</b> already exists.").arg(text),
|
||||
QMessageBox::Ok);
|
||||
} else {
|
||||
// Add the new profile to the combobox
|
||||
mProfilesComboBox->addItem(text);
|
||||
|
||||
// First write the current profile as the new profile
|
||||
writeConfig(text);
|
||||
mProfilesComboBox->setCurrentIndex(mProfilesComboBox->findText(text));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void DataFilesPage::deleteProfile()
|
||||
{
|
||||
QString profile = mProfilesComboBox->currentText();
|
||||
|
||||
|
||||
if (!profile.isEmpty()) {
|
||||
QMessageBox::warning(this, tr("Delete profile"),
|
||||
tr("Are you sure you want to remove <b>%0.</b>").arg(profile),
|
||||
QMessageBox::Ok);
|
||||
if (profile.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
QMessageBox deleteMessageBox(this);
|
||||
deleteMessageBox.setWindowTitle(tr("Delete Profile"));
|
||||
deleteMessageBox.setText(tr("Are you sure you want to delete <b>%0</b>?").arg(profile));
|
||||
deleteMessageBox.setIcon(QMessageBox::Warning);
|
||||
QAbstractButton *deleteButton =
|
||||
deleteMessageBox.addButton(tr("Delete"), QMessageBox::ActionRole);
|
||||
|
||||
deleteMessageBox.addButton(QMessageBox::Cancel);
|
||||
|
||||
deleteMessageBox.exec();
|
||||
|
||||
if (deleteMessageBox.clickedButton() == deleteButton) {
|
||||
|
||||
qDebug() << "Delete profile " << profile;
|
||||
|
||||
// Make sure we have no groups open
|
||||
while (!mLauncherConfig->group().isEmpty()) {
|
||||
mLauncherConfig->endGroup();
|
||||
}
|
||||
|
||||
mLauncherConfig->beginGroup("Profiles");
|
||||
|
||||
// Open the profile-name subgroup
|
||||
mLauncherConfig->beginGroup(profile);
|
||||
mLauncherConfig->remove(""); // Clear the subgroup
|
||||
mLauncherConfig->endGroup();
|
||||
mLauncherConfig->endGroup();
|
||||
|
||||
// Remove the profile from the combobox
|
||||
mProfilesComboBox->removeItem(mProfilesComboBox->findText(profile));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -39,6 +39,7 @@ public slots:
|
|||
void resizeRows();
|
||||
void profileChanged(const QString &previous, const QString ¤t);
|
||||
void newProfile();
|
||||
void copyProfile();
|
||||
void deleteProfile();
|
||||
|
||||
private:
|
||||
|
|
Loading…
Reference in a new issue