summaryrefslogtreecommitdiff
path: root/src/ui/preferencesdlg.cpp
blob: b6df12061b757385b8cdccc838c441738e43c7ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#include "preferencesdlg.h"

#include <tqlayout.h>
#include <tqcheckbox.h>
#include <tqspinbox.h>
#include <tqlabel.h>
#include <tqframe.h>
#include <tdeglobal.h>
#include <tdeconfig.h>
#include <tdelocale.h>

PreferencesDlg::PreferencesDlg( TQWidget *parent )
    : KDialogBase( Tabbed, i18n("Configure TMix"),
                   Ok | Apply | Cancel, Ok, parent )
{
    // ---- General -------------------------------------------------------------
    TQFrame *gen = addPage( i18n("General") );
    TQVBoxLayout *gl = new TQVBoxLayout( gen, marginHint(), spacingHint() );

    m_dockInTray = new TQCheckBox( i18n("Dock in system tray"), gen );
    gl->addWidget( m_dockInTray );

    m_showPopup = new TQCheckBox( i18n("Show mini volume popup on tray click"), gen );
    gl->addWidget( m_showPopup );

    m_showRecTray = new TQCheckBox( i18n("Show microphone-in-use icon in tray"), gen );
    gl->addWidget( m_showRecTray );

    m_confirmQuit = new TQCheckBox( i18n("Ask for confirmation before quitting"), gen );
    gl->addWidget( m_confirmQuit );


    gl->addSpacing( 8 );

    TQHBoxLayout *stepRow = new TQHBoxLayout( 0, 0, spacingHint() );
    stepRow->addWidget( new TQLabel( i18n("Scroll wheel volume step:"), gen ) );
    m_scrollStep = new TQSpinBox( 1, 20, 1, gen );
    m_scrollStep->setSuffix( i18n(" %") );
    stepRow->addWidget( m_scrollStep );
    stepRow->addStretch();
    gl->addLayout( stepRow );

    gl->addStretch();

    // ---- View ----------------------------------------------------------------
    TQFrame *view = addPage( i18n("View") );
    TQVBoxLayout *vl = new TQVBoxLayout( view, marginHint(), spacingHint() );

    m_noTabs = new TQCheckBox( i18n("Show all devices in one view (no tabs)"), view );
    vl->addWidget( m_noTabs );

    vl->addSpacing( 8 );
    vl->addWidget( new TQLabel( i18n("Show tabs:"), view ) );
    m_showOutput    = new TQCheckBox( i18n("Output"),    view );
    m_showInput     = new TQCheckBox( i18n("Input"),     view );
    m_showPlayback  = new TQCheckBox( i18n("Playback"),  view );
    m_showRecording = new TQCheckBox( i18n("Recording"), view );
    vl->addWidget( m_showOutput );
    vl->addWidget( m_showInput );
    vl->addWidget( m_showPlayback );
    vl->addWidget( m_showRecording );
    vl->addStretch();

    load();
}

void PreferencesDlg::load()
{
    TDEConfig *cfg = TDEGlobal::config();

    cfg->setGroup("General");
    m_dockInTray->setChecked( cfg->readBoolEntry("DockInTray",  true) );
    m_showPopup->setChecked(  cfg->readBoolEntry("ShowPopup",   true) );
    m_showRecTray->setChecked( cfg->readBoolEntry("ShowRecordingTray", true)  );
    m_confirmQuit->setChecked( cfg->readBoolEntry("ConfirmQuit", false) );
    m_scrollStep->setValue(    cfg->readNumEntry( "ScrollStep",        5)     );

    cfg->setGroup("View");
    m_noTabs->setChecked(        cfg->readBoolEntry("NoTabs",        false) );
    m_showOutput->setChecked(    cfg->readBoolEntry("ShowOutput",    true)  );
    m_showInput->setChecked(     cfg->readBoolEntry("ShowInput",     true)  );
    m_showPlayback->setChecked(  cfg->readBoolEntry("ShowPlayback",  true)  );
    m_showRecording->setChecked( cfg->readBoolEntry("ShowRecording", true)  );
}

void PreferencesDlg::save()
{
    TDEConfig *cfg = TDEGlobal::config();

    cfg->setGroup("General");
    cfg->writeEntry( "DockInTray",        m_dockInTray->isChecked()  );
    cfg->writeEntry( "ShowPopup",         m_showPopup->isChecked()   );
    cfg->writeEntry( "ShowRecordingTray", m_showRecTray->isChecked() );
    cfg->writeEntry( "ConfirmQuit", m_confirmQuit->isChecked() );
    cfg->writeEntry( "ScrollStep",        m_scrollStep->value()      );

    cfg->setGroup("View");
    cfg->writeEntry( "NoTabs",        m_noTabs->isChecked()        );
    cfg->writeEntry( "ShowOutput",    m_showOutput->isChecked()    );
    cfg->writeEntry( "ShowInput",     m_showInput->isChecked()     );
    cfg->writeEntry( "ShowPlayback",  m_showPlayback->isChecked()  );
    cfg->writeEntry( "ShowRecording", m_showRecording->isChecked() );

    cfg->sync();
    emit settingsChanged();
}

void PreferencesDlg::slotOk()    { save(); accept(); }
void PreferencesDlg::slotApply() { save(); }

#include "preferencesdlg.moc"