void ProfileBox::LoadProfiles() { // get all profiles std::vector<Profile> profiles; LoadProfilesFromDir(&profiles, GetApplicationSystemDir(m_type), false); LoadProfilesFromDir(&profiles, GetApplicationUserDir(m_type), true); // sort and remove duplicates std::sort(profiles.begin(), profiles.end()); m_profiles.clear(); for(const Profile& p : profiles) { if(!m_profiles.empty() && m_profiles.back().m_name == p.m_name) { if(p.m_can_delete) m_profiles.back().m_can_delete = true; } else { m_profiles.push_back(p); } } // add profiles to combobox m_combobox_profiles->clear(); m_combobox_profiles->addItem(tr("(none)")); for(unsigned int i = 0; i < m_profiles.size(); ++i) { m_combobox_profiles->addItem(QByteArray::fromPercentEncoding(m_profiles[i].m_name.toAscii())); } }
void MainWindow::LoadSettings() { QSettings settings(GetApplicationUserDir() + "/settings.conf", QSettings::IniFormat); SetNVidiaDisableFlipping(StringToEnum(settings.value("global/nvidia_disable_flipping", QString()).toString(), NVIDIA_DISABLE_FLIPPING_ASK)); m_page_input->LoadSettings(&settings); m_page_output->LoadSettings(&settings); m_page_record->LoadSettings(&settings); }
void ProfileBox::OnProfileDelete() { QString name = GetProfileName(); if(name.isEmpty()) return; QString filename = GetApplicationUserDir(m_type) + "/" + name + ".conf"; if(MessageBox(QMessageBox::Warning, this, MainWindow::WINDOW_CAPTION, tr("Are you sure that you want to delete this profile?"), BUTTON_YES | BUTTON_NO, BUTTON_YES) == BUTTON_YES) { QFile(filename).remove(); LoadProfiles(); UpdateProfileFields(); } }
void MainWindow::SaveSettings() { QSettings settings(GetApplicationUserDir() + "/settings.conf", QSettings::IniFormat); settings.clear(); settings.setValue("global/nvidia_disable_flipping", EnumToString(GetNVidiaDisableFlipping())); m_page_input->SaveSettings(&settings); m_page_output->SaveSettings(&settings); m_page_record->SaveSettings(&settings); }
void ProfileBox::OnProfileSave() { QString name = GetProfileName(); if(name.isEmpty()) return; QString filename = GetApplicationUserDir(m_type) + "/" + name + ".conf"; if(MessageBox(QMessageBox::Warning, this, MainWindow::WINDOW_CAPTION, tr("Are you sure that you want to overwrite this profile?"), BUTTON_YES | BUTTON_NO, BUTTON_YES) == BUTTON_YES) { { QSettings settings(filename, QSettings::IniFormat); m_save_callback(&settings, m_userdata); } LoadProfiles(); SetProfile(FindProfile(name)); UpdateProfileFields(); } }
void ProfileBox::OnProfileNew() { QString name = InputBox(this, MainWindow::WINDOW_CAPTION, tr("Enter a name for the new profile:"), ""); if(name.isEmpty()) return; name = name.toAscii().toPercentEncoding(); QString filename = GetApplicationUserDir(m_type) + "/" + name + ".conf"; if(!QFileInfo(filename).exists() || MessageBox(QMessageBox::Warning, this, MainWindow::WINDOW_CAPTION, tr("A profile with the same name already exists. Are you sure that you want to replace it?"), BUTTON_YES | BUTTON_NO, BUTTON_YES) == BUTTON_YES) { { QSettings settings(filename, QSettings::IniFormat); m_save_callback(&settings, m_userdata); } LoadProfiles(); SetProfile(FindProfile(name)); UpdateProfileFields(); } }
void ProfileBox::OnProfileChange() { UpdateProfileFields(); QString name = GetProfileName(); if(name.isEmpty()) return; QString filename = GetApplicationUserDir(m_type) + "/" + name + ".conf"; if(QFileInfo(filename).exists()) { QSettings settings(filename, QSettings::IniFormat); m_load_callback(&settings, m_userdata); return; } filename = GetApplicationSystemDir(m_type) + "/" + name + ".conf"; if(QFileInfo(filename).exists()) { QSettings settings(filename, QSettings::IniFormat); m_load_callback(&settings, m_userdata); return; } Logger::LogError("[ProfileBox::OnProfileChange] " + tr("Error: Can't load profile!")); }