File indexing completed on 2024-05-19 04:50:19
0001 /**************************************************************************************** 0002 * Copyright (c) 2007 Nikolaj Hald Nielsen <nhn@kde.org> * 0003 * * 0004 * This program is free software; you can redistribute it and/or modify it under * 0005 * the terms of the GNU General Public License as published by the Free Software * 0006 * Foundation; either version 2 of the License, or (at your option) version 3 or * 0007 * any later version accepted by the membership of KDE e.V. (or its successor approved * 0008 * by the membership of KDE e.V.), which shall act as a proxy defined in Section 14 of * 0009 * version 3 of the license. * 0010 * * 0011 * This program is distributed in the hope that it will be useful, but WITHOUT ANY * 0012 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A * 0013 * PARTICULAR PURPOSE. See the GNU General Public License for more details. * 0014 * * 0015 * You should have received a copy of the GNU General Public License along with * 0016 * this program. If not, see <http://www.gnu.org/licenses/>. * 0017 ****************************************************************************************/ 0018 0019 #include "MagnatuneSettingsModule.h" 0020 #include "MagnatuneMeta.h" 0021 #include "ui_MagnatuneConfigWidget.h" 0022 0023 #include <KPluginFactory> 0024 0025 0026 K_PLUGIN_FACTORY_WITH_JSON( MagnatuneSettingsModuleFactory, "amarok_service_magnatunestore_config.json", registerPlugin<MagnatuneSettingsModule>(); ) 0027 0028 MagnatuneSettingsModule::MagnatuneSettingsModule( QWidget *parent, const QVariantList &args ) 0029 : KCModule( parent, args ) 0030 { 0031 m_configDialog = new Ui::MagnatuneConfigWidget; 0032 m_configDialog->setupUi( this ); 0033 0034 m_configDialog->passwordEdit->setEchoMode( QLineEdit::Password ); 0035 connect ( m_configDialog->usernameEdit, &QLineEdit::textChanged, this, &MagnatuneSettingsModule::settingsChanged ); 0036 connect ( m_configDialog->passwordEdit, &QLineEdit::textChanged, this, &MagnatuneSettingsModule::settingsChanged ); 0037 connect ( m_configDialog->emailEdit, &QLineEdit::textChanged, this, &MagnatuneSettingsModule::settingsChanged ); 0038 connect ( m_configDialog->typeComboBox, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &MagnatuneSettingsModule::settingsChanged ); 0039 connect ( m_configDialog->isMemberCheckbox, &QCheckBox::stateChanged, this, &MagnatuneSettingsModule::settingsChanged ); 0040 connect ( m_configDialog->streamTypeComboBox, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &MagnatuneSettingsModule::settingsChanged ); 0041 connect ( m_configDialog->autoUpdateDatabase, &QCheckBox::stateChanged, this, &MagnatuneSettingsModule::settingsChanged ); 0042 0043 load(); 0044 } 0045 0046 0047 MagnatuneSettingsModule::~MagnatuneSettingsModule() 0048 { 0049 delete m_configDialog; 0050 } 0051 0052 void MagnatuneSettingsModule::save() 0053 { 0054 m_config.setIsMember( m_configDialog->isMemberCheckbox->checkState() == Qt::Checked ); 0055 m_config.setAutoUpdateDatabase( m_configDialog->autoUpdateDatabase->checkState() == Qt::Checked ); 0056 0057 0058 int typeIndex = m_configDialog->typeComboBox->currentIndex(); 0059 if( typeIndex == 0 ) 0060 m_config.setMembershipType( MagnatuneConfig::STREAM ); 0061 else 0062 m_config.setMembershipType( MagnatuneConfig::DOWNLOAD ); 0063 0064 m_config.setUsername( m_configDialog->usernameEdit->text() ); 0065 m_config.setPassword( m_configDialog->passwordEdit->text() ); 0066 m_config.setEmail( m_configDialog->emailEdit->text() ); 0067 0068 0069 m_config.setStreamType( m_configDialog->streamTypeComboBox->currentIndex() ); 0070 0071 m_config.save(); 0072 KCModule::save(); 0073 } 0074 0075 void MagnatuneSettingsModule::load() 0076 { 0077 if ( m_config.isMember() ) 0078 m_configDialog->isMemberCheckbox->setCheckState( Qt::Checked ); 0079 else 0080 m_configDialog->isMemberCheckbox->setCheckState( Qt::Unchecked ); 0081 0082 m_configDialog->autoUpdateDatabase->setCheckState( m_config.autoUpdateDatabase()? 0083 Qt::Checked : Qt::Unchecked ); 0084 0085 int index = 0; 0086 if ( m_config.membershipType() == MagnatuneConfig::STREAM ) index = 0; 0087 else if ( m_config.membershipType() == MagnatuneConfig::DOWNLOAD ) index = 1; 0088 0089 m_configDialog->typeComboBox->setCurrentIndex( index ); 0090 m_configDialog->usernameEdit->setText( m_config.username() ); 0091 m_configDialog->passwordEdit->setText( m_config.password() ); 0092 m_configDialog->emailEdit->setText( m_config.email() ); 0093 0094 m_configDialog->streamTypeComboBox->setCurrentIndex( m_config.streamType() ); 0095 0096 KCModule::load(); 0097 } 0098 0099 void MagnatuneSettingsModule::defaults() 0100 { 0101 } 0102 0103 void MagnatuneSettingsModule::settingsChanged() 0104 { 0105 Q_EMIT changed( true ); 0106 } 0107 0108 #include <MagnatuneSettingsModule.moc>