~ubuntu-branches/ubuntu/utopic/psi/utopic

« back to all changes in this revision

Viewing changes to src/options/opt_appearance.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Jan Niehusmann
  • Date: 2008-08-28 18:46:52 UTC
  • mfrom: (1.2.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20080828184652-iiik12dl91nq7cdi
Tags: 0.12-2
Uploading to unstable (Closes: Bug#494352)

Show diffs side-by-side

added added

removed removed

Lines of Context:
86
86
: OptionsTab(parent, "appearance_misc", "", tr("Misc."), tr("Miscellaneous Settings"))
87
87
{
88
88
        w = 0;
89
 
        o = new Options;
90
89
}
91
90
 
92
91
OptionsTabAppearanceMisc::~OptionsTabAppearanceMisc()
93
92
{
94
 
        delete o;
95
93
}
96
94
 
97
95
QWidget *OptionsTabAppearanceMisc::widget()
104
102
        return w;
105
103
}
106
104
 
107
 
void OptionsTabAppearanceMisc::applyOptions(Options *opt)
 
105
void OptionsTabAppearanceMisc::applyOptions()
108
106
{
109
107
        if ( !w )
110
108
                return;
111
109
 
112
110
        OptAppearanceMiscUI *d = (OptAppearanceMiscUI *)w;
113
111
 
114
 
        opt->clNewHeadings = d->ck_newHeadings->isChecked();    
115
 
        opt->outlineHeadings = d->ck_outlineHeadings->isChecked();      
 
112
        PsiOptions::instance()->setOption("options.ui.look.contactlist.use-slim-group-headings", d->ck_newHeadings->isChecked());
 
113
        PsiOptions::instance()->setOption("options.ui.look.contactlist.use-outlined-group-headings", d->ck_outlineHeadings->isChecked());
116
114
        PsiOptions::instance()->setOption("options.ui.contactlist.opacity", d->sl_rosterop->value());
117
115
        PsiOptions::instance()->setOption("options.ui.chat.opacity", d->sl_chatdlgop->value());
118
116
}
119
117
 
120
 
void OptionsTabAppearanceMisc::restoreOptions(const Options *opt)
 
118
void OptionsTabAppearanceMisc::restoreOptions()
121
119
{
122
120
        if ( !w )
123
121
                return;
124
122
 
125
123
        OptAppearanceMiscUI *d = (OptAppearanceMiscUI *)w;
126
124
 
127
 
        d->ck_newHeadings->setChecked( opt->clNewHeadings );
128
 
        d->ck_outlineHeadings->setChecked( opt->outlineHeadings );
 
125
        d->ck_newHeadings->setChecked(PsiOptions::instance()->getOption("options.ui.look.contactlist.use-slim-group-headings").toBool());
 
126
        d->ck_outlineHeadings->setChecked(PsiOptions::instance()->getOption("options.ui.look.contactlist.use-outlined-group-headings").toBool());
129
127
        
130
 
        d->sl_rosterop->setValue( PsiOptions::instance()->getOption("options.ui.contactlist.opacity").toInt() );
131
 
        d->sl_chatdlgop->setValue( PsiOptions::instance()->getOption("options.ui.chat.opacity").toInt() );
 
128
        d->sl_rosterop->setValue(PsiOptions::instance()->getOption("options.ui.contactlist.opacity").toInt());
 
129
        d->sl_chatdlgop->setValue(PsiOptions::instance()->getOption("options.ui.chat.opacity").toInt());
132
130
}
133
131
 
134
132
void OptionsTabAppearanceMisc::setData(PsiCon *, QWidget *parentDialog)
146
144
        w = 0;
147
145
        bg_font = 0;
148
146
        bg_color = 0;
149
 
        o = new Options;
150
147
}
151
148
 
152
149
OptionsTabAppearanceGeneral::~OptionsTabAppearanceGeneral()
155
152
                delete bg_font;
156
153
        if ( bg_color )
157
154
                delete bg_color;
158
 
        delete o;
159
155
}
160
156
 
161
 
static QPixmap name2color(QString name) // taken from opt_general.cpp
 
157
static QPixmap color2pixmap(QColor c) // taken from opt_general.cpp
162
158
{
163
 
        QColor c(name);
164
159
        QPixmap pix(16, 16);
165
160
        QPainter p(&pix);
166
161
 
256
251
        return w;
257
252
}
258
253
 
259
 
void OptionsTabAppearanceGeneral::applyOptions(Options *opt)
260
 
{
261
 
        if ( !w )
262
 
                return;
263
 
 
264
 
        //OptAppearanceUI *d = (OptAppearanceUI *)w;
265
 
        //opt->avatarsChatdlgEnabled = d->ck_avatarsChatdlg->isChecked(); // Avatars
266
 
 
267
 
        int n;
268
 
        for (n = 0; n < 4; ++n)
269
 
                opt->font[n] = le_font[n]->fontName();
270
 
 
271
 
        for (n = 0; n < cNumColors; ++n)
272
 
                opt->color[n] = o->color[n];
273
 
}
274
 
 
275
 
void OptionsTabAppearanceGeneral::restoreOptions(const Options *opt)
276
 
{
277
 
        if ( !w )
278
 
                return;
279
 
 
280
 
        //OptAppearanceUI *d = (OptAppearanceUI *)w;
281
 
        //d->ck_avatarsChatdlg->setChecked( opt->avatarsChatdlgEnabled ); // Avatars
282
 
 
283
 
        int n;
284
 
        for (n = 0; n < 4; ++n)
285
 
                le_font[n]->setFont(opt->font[n]);
286
 
 
287
 
        for (n = 0; n < cNumColors; ++n) {
288
 
                o->color[n] = opt->color[n];
289
 
                ((QPushButton*) (bg_color->buttons()[n]))->setPixmap(name2color(opt->color[n].name()));
290
 
        }
 
254
 
 
255
static QColor getColor(QToolButton *button)
 
256
{
 
257
        return button->property("psi_color").value<QColor>();
 
258
}
 
259
 
 
260
void OptionsTabAppearanceGeneral::applyOptions()
 
261
{
 
262
        if ( !w )
 
263
                return;
 
264
 
 
265
        OptAppearanceUI *d = (OptAppearanceUI *)w;
 
266
        //LEGOPTS.avatarsChatdlgEnabled = d->ck_avatarsChatdlg->isChecked(); // Avatars
 
267
 
 
268
        PsiOptions::instance()->setOption("options.ui.look.font.contactlist", d->le_fRoster->fontName());
 
269
        PsiOptions::instance()->setOption("options.ui.look.font.message", d->le_fMessage->fontName());
 
270
        PsiOptions::instance()->setOption("options.ui.look.font.chat", d->le_fChat->fontName());
 
271
        PsiOptions::instance()->setOption("options.ui.look.font.passive-popup", d->le_fPopup->fontName());
 
272
 
 
273
        PsiOptions::instance()->setOption("options.ui.look.colors.contactlist.status.online", getColor(d->pb_cOnline));
 
274
        PsiOptions::instance()->setOption("options.ui.look.colors.contactlist.status.offline", getColor(d->pb_cOffline));
 
275
        PsiOptions::instance()->setOption("options.ui.look.colors.contactlist.status.away", getColor(d->pb_cAway));
 
276
        PsiOptions::instance()->setOption("options.ui.look.colors.contactlist.status.do-not-disturb", getColor(d->pb_cDND));
 
277
        PsiOptions::instance()->setOption("options.ui.look.colors.contactlist.profile.header-foreground", getColor(d->pb_cProfileFore));
 
278
        PsiOptions::instance()->setOption("options.ui.look.colors.contactlist.profile.header-background", getColor(d->pb_cProfileBack));
 
279
        PsiOptions::instance()->setOption("options.ui.look.colors.contactlist.grouping.header-foreground", getColor(d->pb_cGroupFore));
 
280
        PsiOptions::instance()->setOption("options.ui.look.colors.contactlist.grouping.header-background", getColor(d->pb_cGroupBack));
 
281
        PsiOptions::instance()->setOption("options.ui.look.colors.contactlist.background", getColor(d->pb_cListBack));
 
282
        PsiOptions::instance()->setOption("options.ui.look.contactlist.status-change-animation.color1", getColor(d->pb_cAnimFront));
 
283
        PsiOptions::instance()->setOption("options.ui.look.contactlist.status-change-animation.color2", getColor(d->pb_cAnimBack));
 
284
        PsiOptions::instance()->setOption("options.ui.look.colors.contactlist.status-messages", getColor(d->pb_cStatus));
 
285
}
 
286
 
 
287
static void restoreColor(QToolButton *button, QColor c)
 
288
{
 
289
        button->setProperty("psi_color", c);
 
290
        button->setPixmap(color2pixmap(c));
 
291
}
 
292
 
 
293
void OptionsTabAppearanceGeneral::restoreOptions()
 
294
{
 
295
        if ( !w )
 
296
                return;
 
297
 
 
298
        OptAppearanceUI *d = (OptAppearanceUI *)w;
 
299
        //d->ck_avatarsChatdlg->setChecked( LEGOPTS.avatarsChatdlgEnabled ); // Avatars
 
300
 
 
301
        d->le_fRoster->setFont(PsiOptions::instance()->getOption("options.ui.look.font.contactlist").toString());
 
302
        d->le_fMessage->setFont(PsiOptions::instance()->getOption("options.ui.look.font.message").toString());
 
303
        d->le_fChat->setFont(PsiOptions::instance()->getOption("options.ui.look.font.chat").toString());
 
304
        d->le_fPopup->setFont(PsiOptions::instance()->getOption("options.ui.look.font.passive-popup").toString());
 
305
 
 
306
        restoreColor(d->pb_cOnline, PsiOptions::instance()->getOption("options.ui.look.colors.contactlist.status.online").value<QColor>());
 
307
        restoreColor(d->pb_cOffline, PsiOptions::instance()->getOption("options.ui.look.colors.contactlist.status.offline").value<QColor>());
 
308
        restoreColor(d->pb_cAway, PsiOptions::instance()->getOption("options.ui.look.colors.contactlist.status.away").value<QColor>());
 
309
        restoreColor(d->pb_cDND, PsiOptions::instance()->getOption("options.ui.look.colors.contactlist.status.do-not-disturb").value<QColor>());
 
310
        restoreColor(d->pb_cProfileFore, PsiOptions::instance()->getOption("options.ui.look.colors.contactlist.profile.header-foreground").value<QColor>());
 
311
        restoreColor(d->pb_cProfileBack, PsiOptions::instance()->getOption("options.ui.look.colors.contactlist.profile.header-background").value<QColor>());
 
312
        restoreColor(d->pb_cGroupFore, PsiOptions::instance()->getOption("options.ui.look.colors.contactlist.grouping.header-foreground").value<QColor>());
 
313
        restoreColor(d->pb_cGroupBack, PsiOptions::instance()->getOption("options.ui.look.colors.contactlist.grouping.header-background").value<QColor>());
 
314
        restoreColor(d->pb_cListBack, PsiOptions::instance()->getOption("options.ui.look.colors.contactlist.background").value<QColor>());
 
315
        restoreColor(d->pb_cAnimFront, PsiOptions::instance()->getOption("options.ui.look.contactlist.status-change-animation.color1").value<QColor>());
 
316
        restoreColor(d->pb_cAnimBack, PsiOptions::instance()->getOption("options.ui.look.contactlist.status-change-animation.color2").value<QColor>());
 
317
        restoreColor(d->pb_cStatus, PsiOptions::instance()->getOption("options.ui.look.colors.contactlist.status-messages").value<QColor>());
291
318
}
292
319
 
293
320
void OptionsTabAppearanceGeneral::setData(PsiCon *, QWidget *parentDialog)
312
339
void OptionsTabAppearanceGeneral::chooseColor(QAbstractButton* button)
313
340
{
314
341
        QColor c;
315
 
        int x = (bg_color->buttons()).indexOf(button);
 
342
        //int x = (bg_color->buttons()).indexOf(button);
316
343
 
317
 
        c = o->color[x];
 
344
        c = button->property("psi_color").value<QColor>();
318
345
 
319
346
        c = QColorDialog::getColor(c, parentWidget);
320
347
        if(c.isValid()) {
321
 
                o->color[x] = c;
322
 
                ((QPushButton*) bg_color->buttons()[x])->setPixmap(name2color(o->color[x].name()));
 
348
                button->setProperty("psi_color", c);
 
349
                //((QPushButton*) bg_color->buttons()[x])->setPixmap(name2color(o->color[x].name()));
 
350
                button->setPixmap(color2pixmap(c));
323
351
 
324
352
                emit dataChanged();
325
353
        }