1 /* ============================================================ 2 * 3 * This file is a part of digiKam project 4 * https://www.digikam.org 5 * 6 * Date : 2021-07-24 7 * Description : MJPEG Stream configuration dialog - Settings methods 8 * 9 * Copyright (C) 2021 by Gilles Caulier <caulier dot gilles at gmail dot com> 10 * Copyright (C) 2021 by Quoc Hưng Tran <quochungtran1999 at gmail dot com> 11 * 12 * This program is free software; you can redistribute it 13 * and/or modify it under the terms of the GNU General 14 * Public License as published by the Free Software Foundation; 15 * either version 2, or (at your option) any later version. 16 * 17 * This program is distributed in the hope that it will be useful, 18 * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 * GNU General Public License for more details. 21 * 22 * ============================================================ */ 23 24 #include "mjpegstreamdlg_p.h" 25 26 namespace DigikamGenericMjpegStreamPlugin 27 { 28 readSettings()29void MjpegStreamDlg::readSettings() 30 { 31 KSharedConfig::Ptr config = KSharedConfig::openConfig(); 32 KConfigGroup group = config->group(d->mngr->configGroupName()); 33 34 d->startOnStartup->setChecked(group.readEntry(d->mngr->configStartServerOnStartupEntry(), false)); 35 d->settings.readSettings(group); 36 37 d->srvPort->blockSignals(true); 38 d->delay->blockSignals(true); 39 d->rate->blockSignals(true); 40 d->quality->blockSignals(true); 41 d->streamLoop->blockSignals(true); 42 d->typeVal->blockSignals(true); 43 d->effVal->blockSignals(true); 44 d->transVal->blockSignals(true); 45 d->showDate->blockSignals(true); 46 d->showApertureFocal->blockSignals(true); 47 d->showCapIfNoTitle->blockSignals(true); 48 d->showComment->blockSignals(true); 49 d->showExpoSensitivity->blockSignals(true); 50 d->showLensModel->blockSignals(true); 51 d->showMakeModel->blockSignals(true); 52 d->showName->blockSignals(true); 53 d->showTags->blockSignals(true); 54 d->showRating->blockSignals(true); 55 d->showTitle->blockSignals(true); 56 d->osdFont->blockSignals(true); 57 58 d->srvPort->setValue(d->settings.port); 59 d->delay->setValue(d->settings.delay); 60 d->rate->setValue(d->settings.rate); 61 d->quality->setValue(d->settings.quality); 62 d->streamLoop->setChecked(d->settings.loop); 63 d->typeVal->setCurrentIndex(d->settings.outSize); 64 d->effVal->setCurrentIndex(d->settings.effect); 65 d->transVal->setCurrentIndex(d->settings.transition); 66 d->showDate->setChecked(d->settings.printDate); 67 d->showApertureFocal->setChecked(d->settings.printApertureFocal); 68 d->showCapIfNoTitle->setChecked(d->settings.printCapIfNoTitle); 69 d->showComment->setChecked(d->settings.printComment); 70 d->showExpoSensitivity->setChecked(d->settings.printExpoSensitivity); 71 d->showLensModel->setChecked(d->settings.printLensModel); 72 d->showMakeModel->setChecked(d->settings.printMakeModel); 73 d->showName->setChecked(d->settings.printName); 74 d->showTags->setChecked(d->settings.printTags); 75 d->showRating->setChecked(d->settings.printRating); 76 d->showTitle->setChecked(d->settings.printTitle); 77 d->osdFont->setFont(d->settings.osdFont); 78 79 d->srvPort->blockSignals(false); 80 d->delay->blockSignals(false); 81 d->rate->blockSignals(false); 82 d->quality->blockSignals(false); 83 d->streamLoop->blockSignals(false); 84 d->typeVal->blockSignals(false); 85 d->effVal->blockSignals(false); 86 d->transVal->blockSignals(false); 87 d->showDate->blockSignals(false); 88 d->showApertureFocal->blockSignals(false); 89 d->showCapIfNoTitle->blockSignals(false); 90 d->showComment->blockSignals(false); 91 d->showExpoSensitivity->blockSignals(false); 92 d->showLensModel->blockSignals(false); 93 d->showMakeModel->blockSignals(false); 94 d->showName->blockSignals(false); 95 d->showTags->blockSignals(false); 96 d->showRating->blockSignals(false); 97 d->showTitle->blockSignals(false); 98 d->osdFont->blockSignals(false); 99 100 slotSettingsChanged(); 101 102 updateServerStatus(); 103 } 104 saveSettings()105void MjpegStreamDlg::saveSettings() 106 { 107 setMjpegServerContents(); 108 109 KSharedConfig::Ptr config = KSharedConfig::openConfig(); 110 KConfigGroup group = config->group(d->mngr->configGroupName()); 111 group.writeEntry(d->mngr->configStartServerOnStartupEntry(), d->startOnStartup->isChecked()); 112 d->settings.writeSettings(group); 113 config->sync(); 114 } 115 slotSettingsChanged()116void MjpegStreamDlg::slotSettingsChanged() 117 { 118 d->settings.port = d->srvPort->value(); 119 d->settings.delay = d->delay->value(); 120 d->settings.rate = d->rate->value(); 121 d->settings.quality = d->quality->value(); 122 d->settings.loop = d->streamLoop->isChecked(); 123 d->settings.outSize = d->typeVal->currentIndex(); 124 d->settings.effect = (EffectMngr::EffectType)d->effVal->currentIndex(); 125 d->settings.transition = (TransitionMngr::TransType)d->transVal->currentIndex(); 126 d->settings.printName = d->showName->isChecked(); 127 d->settings.printDate = d->showDate->isChecked(); 128 d->settings.printApertureFocal = d->showApertureFocal->isChecked(); 129 d->settings.printExpoSensitivity = d->showExpoSensitivity->isChecked(); 130 d->settings.printMakeModel = d->showMakeModel->isChecked(); 131 d->settings.printLensModel = d->showLensModel->isChecked(); 132 d->settings.printComment = d->showComment->isChecked(); 133 d->settings.printTitle = d->showTitle->isChecked(); 134 d->settings.printCapIfNoTitle = d->showCapIfNoTitle->isChecked(); 135 d->settings.printTags = d->showTags->isChecked(); 136 d->settings.printRating = d->showRating->isChecked(); 137 d->settings.osdFont = d->osdFont->font(); 138 139 d->effPreview->stopPreview(); 140 d->effPreview->startPreview(d->settings.effect); 141 d->transPreview->stopPreview(); 142 d->transPreview->startPreview(d->settings.transition); 143 } 144 145 } // namespace DigikamGenericMjpegStreamPlugin 146