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
|
/***************************************************************************
encodingdlg.cpp - description
-------------------
begin : Sun Mar 17 2002
copyright : (C) 2002 by Vladimir Shutoff
email : vovan@shutoff.ru
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#include "icons.h"
#include "encodingdlg.h"
#include "icqclient.h"
#include <qcombobox.h>
#include <qpixmap.h>
#include <qpushbutton.h>
using namespace SIM;
class ICQClient;
EncodingDlg::EncodingDlg(QWidget *parent, ICQClient *client)
: EncodingDlgBase(parent, NULL, true)
{
SET_WNDPROC("encoding")
setIcon(Pict("encoding"));
setButtonsPict(this);
setCaption(caption());
m_client = client;
connect(buttonOk, SIGNAL(clicked()), this, SLOT(apply()));
connect(cmbEncoding, SIGNAL(activated(int)), this, SLOT(changed(int)));
cmbEncoding->insertItem(QString::null);
const ENCODING *e = getContacts()->getEncodings();
for (e++; e->language; e++){
if (!e->bMain)
continue;
cmbEncoding->insertItem(i18n(e->language) + " (" + e->codec + ')');
}
for (e = getContacts()->getEncodings(); e->language; e++){
if (e->bMain)
continue;
cmbEncoding->insertItem(i18n(e->language) + " (" + e->codec + ')');
}
buttonOk->setEnabled(false);
}
void EncodingDlg::apply()
{
// Subtract 1 to account for the first menu item which is empty
int n = cmbEncoding->currentItem();
if (n == 0)
return; // User selected the empty menu item
const ENCODING *e;
for (e = getContacts()->getEncodings() + 1; e->language; e++){
if (!e->bMain)
continue;
--n;
if (n == 0){
getContacts()->owner()->setEncoding(e->codec);
return;
}
}
for (e = getContacts()->getEncodings(); e->language; e++){
if (!e->bMain)
continue;
--n;
if (n == 0){
getContacts()->owner()->setEncoding(e->codec);
return;
}
}
}
void EncodingDlg::changed(int n)
{
buttonOk->setEnabled(n > 0);
}
#ifndef NO_MOC_INCLUDES
#include "encodingdlg.moc"
#endif
|