00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
#include <qlabel.h>
00022
#include <qlayout.h>
00023
#include <qcheckbox.h>
00024
#include <qhgroupbox.h>
00025
#include <qtabwidget.h>
00026
00027
#include <kapplication.h>
00028
#include <kconfig.h>
00029
#include <klocale.h>
00030
#include <kiconloader.h>
00031
#include <kcolorbutton.h>
00032
#include <knuminput.h>
00033
#include <klineedit.h>
00034
#include <kfontrequester.h>
00035
#include <kwin.h>
00036
00037
#include "knote.h"
00038
#include "knoteconfigdlg.h"
00039
#include "knotesglobalconfig.h"
00040
#include "version.h"
00041
00042
00043 KNoteConfigDlg::KNoteConfigDlg( KNoteConfig *config,
const QString& title,
00044
QWidget *parent,
const char *name )
00045 : KConfigDialog( parent, name, config ? config : KNotesGlobalConfig::self(), IconList,
00046 config ? Default|Ok|Apply|Cancel : Default|Ok|Cancel, Ok )
00047 {
00048 setCaption( title );
00049 KWin::setIcons( winId(), kapp->icon(), kapp->miniIcon() );
00050
00051 setIconListAllVisible(
true );
00052 enableButtonSeparator(
true );
00053
00054
if ( config )
00055 {
00056 addPage( makeDisplayPage(
false ), i18n(
"Display"),
"knotes",
00057 i18n(
"Display Settings") );
00058 addPage( makeEditorPage(
false ), i18n(
"Editor"),
"edit",
00059 i18n(
"Editor Settings") );
00060 }
00061
else
00062 {
00063 config = KNotesGlobalConfig::self();
00064 addPage( makeDefaultsPage(), i18n(
"Defaults"),
"knotes",
00065 i18n(
"Default Settings for New Notes") );
00066 addPage( makeActionsPage(), i18n(
"Actions"),
"misc",
00067 i18n(
"Action Settings") );
00068 addPage( makeNetworkPage(), i18n(
"Network"),
"network",
00069 i18n(
"Network Settings") );
00070 }
00071
00072 config->setVersion( KNOTES_VERSION );
00073 }
00074
00075 KNoteConfigDlg::~KNoteConfigDlg()
00076 {
00077 }
00078
00079
void KNoteConfigDlg::slotUpdateCaption()
00080 {
00081 KNote *note = ::qt_cast<KNote *>(sender());
00082
if ( note )
00083 setCaption( note->name() );
00084 }
00085
00086
QWidget *KNoteConfigDlg::makeDisplayPage(
bool defaults )
00087 {
00088
QWidget *displayPage =
new QWidget();
00089
QGridLayout *layout =
new QGridLayout( displayPage, 2, 2,
00090 defaults ? marginHint() : 0, spacingHint() );
00091
00092
QLabel *label_FgColor =
new QLabel( i18n(
"&Text color:"), displayPage,
"label_FgColor" );
00093 layout->addWidget( label_FgColor, 0, 0 );
00094
00095 KColorButton *kcfg_FgColor =
new KColorButton( displayPage,
"kcfg_FgColor" );
00096 label_FgColor->setBuddy( kcfg_FgColor );
00097 layout->addWidget( kcfg_FgColor, 0, 1 );
00098
00099
QLabel *label_BgColor =
new QLabel( i18n(
"&Background color:"), displayPage,
"label_BgColor" );
00100 layout->addWidget( label_BgColor, 1, 0 );
00101
00102 KColorButton *kcfg_BgColor =
new KColorButton( displayPage,
"kcfg_BgColor" );
00103 label_BgColor->setBuddy( kcfg_BgColor );
00104 layout->addWidget( kcfg_BgColor, 1, 1 );
00105
00106
QCheckBox *kcfg_ShowInTaskbar =
new QCheckBox( i18n(
"&Show note in taskbar"),
00107 displayPage,
"kcfg_ShowInTaskbar" );
00108
00109
if ( defaults )
00110 {
00111
QLabel *label_Width =
new QLabel( i18n(
"Default &width:"), displayPage,
"label_Width" );
00112 layout->addWidget( label_Width, 2, 0 );
00113
00114 KIntNumInput *kcfg_Width =
new KIntNumInput( displayPage,
"kcfg_Width" );
00115 label_Width->setBuddy( kcfg_Width );
00116 kcfg_Width->setRange( 100, 2000, 10,
false );
00117 layout->addWidget( kcfg_Width, 2, 1 );
00118
00119
QLabel *label_Height =
new QLabel( i18n(
"Default &height:"), displayPage,
"label_Height" );
00120 layout->addWidget( label_Height, 3, 0 );
00121
00122 KIntNumInput *kcfg_Height =
new KIntNumInput( displayPage,
"kcfg_Height" );
00123 kcfg_Height->setRange( 100, 2000, 10,
false );
00124 label_Height->setBuddy( kcfg_Height );
00125 layout->addWidget( kcfg_Height, 3, 1 );
00126
00127 layout->addWidget( kcfg_ShowInTaskbar, 4, 0 );
00128 }
00129
else
00130 layout->addWidget( kcfg_ShowInTaskbar, 2, 0 );
00131
00132
return displayPage;
00133 }
00134
00135
QWidget *KNoteConfigDlg::makeEditorPage(
bool defaults )
00136 {
00137
QWidget *editorPage =
new QWidget();
00138
QGridLayout *layout =
new QGridLayout( editorPage, 4, 3,
00139 defaults ? marginHint() : 0, spacingHint() );
00140
00141
QLabel *label_TabSize =
new QLabel( i18n(
"&Tab size:" ), editorPage,
"label_TabSize" );
00142 layout->addMultiCellWidget( label_TabSize, 0, 0, 0, 1 );
00143
00144 KIntNumInput *kcfg_TabSize =
new KIntNumInput( editorPage,
"kcfg_TabSize" );
00145 kcfg_TabSize->setRange( 0, 40, 1,
false );
00146 label_TabSize->setBuddy( kcfg_TabSize );
00147 layout->addWidget( kcfg_TabSize, 0, 2 );
00148
00149
QCheckBox *kcfg_AutoIndent =
new QCheckBox( i18n(
"Auto &indent"), editorPage,
"kcfg_AutoIndent" );
00150 layout->addMultiCellWidget( kcfg_AutoIndent, 1, 1, 0, 1 );
00151
00152
QCheckBox *kcfg_RichText =
new QCheckBox( i18n(
"&Rich text"), editorPage,
"kcfg_RichText" );
00153 layout->addWidget( kcfg_RichText, 1, 2 );
00154
00155
QLabel *label_Font =
new QLabel( i18n(
"Text font:"), editorPage,
"label_Font" );
00156 layout->addWidget( label_Font, 3, 0 );
00157
00158 KFontRequester *kcfg_Font =
new KFontRequester( editorPage,
"kcfg_Font" );
00159 kcfg_Font->setSizePolicy(
QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Fixed ) );
00160 layout->addMultiCellWidget( kcfg_Font, 3, 3, 1, 2 );
00161
00162
QLabel *label_TitleFont =
new QLabel( i18n(
"Title font:"), editorPage,
"label_TitleFont" );
00163 layout->addWidget( label_TitleFont, 2, 0 );
00164
00165 KFontRequester *kcfg_TitleFont =
new KFontRequester( editorPage,
"kcfg_TitleFont" );
00166 kcfg_TitleFont->setSizePolicy(
QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Fixed ) );
00167 layout->addMultiCellWidget( kcfg_TitleFont, 2, 2, 1, 2 );
00168
00169
return editorPage;
00170 }
00171
00172
QWidget *KNoteConfigDlg::makeDefaultsPage()
00173 {
00174
QTabWidget *defaultsPage =
new QTabWidget();
00175 defaultsPage->addTab( makeDisplayPage(
true ), SmallIconSet(
"knotes" ), i18n(
"Displa&y") );
00176 defaultsPage->addTab( makeEditorPage(
true ), SmallIconSet(
"edit" ), i18n(
"&Editor") );
00177
00178
return defaultsPage;
00179 }
00180
00181
QWidget *KNoteConfigDlg::makeActionsPage()
00182 {
00183
QWidget *actionsPage =
new QWidget();
00184
QGridLayout *layout =
new QGridLayout( actionsPage, 2, 2, 0, spacingHint() );
00185
00186
QLabel *label_MailAction =
new QLabel( i18n(
"&Mail action:"), actionsPage,
"label_MailAction" );
00187 layout->addWidget( label_MailAction, 0, 0 );
00188
00189 KLineEdit *kcfg_MailAction =
new KLineEdit( actionsPage,
"kcfg_MailAction" );
00190 label_MailAction->setBuddy( kcfg_MailAction );
00191 layout->addWidget( kcfg_MailAction, 0, 1 );
00192
00193
return actionsPage;
00194 }
00195
00196
QWidget *KNoteConfigDlg::makeNetworkPage()
00197 {
00198
QWidget *networkPage =
new QWidget();
00199
QGridLayout *layout =
new QGridLayout( networkPage, 4, 2, 0, spacingHint() );
00200
00201
QGroupBox *incoming =
new QHGroupBox( i18n(
"Incoming Notes"), networkPage );
00202 layout->addMultiCellWidget( incoming, 0, 0, 0, 1 );
00203
00204
new QCheckBox( i18n(
"Accept incoming notes"), incoming,
"kcfg_ReceiveNotes" );
00205
00206
QGroupBox *outgoing =
new QHGroupBox( i18n(
"Outgoing Notes"), networkPage );
00207 layout->addMultiCellWidget( outgoing, 1, 1, 0, 1 );
00208
00209
QLabel *label_SenderID =
new QLabel( i18n(
"&Sender ID:"), outgoing,
"label_SenderID" );
00210 KLineEdit *kcfg_SenderID =
new KLineEdit( outgoing,
"kcfg_SenderID" );
00211 label_SenderID->setBuddy( kcfg_SenderID );
00212
00213
QLabel *label_Port =
new QLabel( i18n(
"&Port:"), networkPage,
"label_Port" );
00214 layout->addWidget( label_Port, 2, 0 );
00215
00216 KIntNumInput *kcfg_Port =
new KIntNumInput( networkPage,
"kcfg_Port" );
00217 kcfg_Port->setRange( 0, 65535, 1,
false );
00218 label_Port->setBuddy( kcfg_Port );
00219 layout->addWidget( kcfg_Port, 2, 1 );
00220
00221
return networkPage;
00222 }
00223
00224
00225
#include "knoteconfigdlg.moc"