aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/options/optw_identity.cpp
diff options
context:
space:
mode:
authorGravatar Szymon Tomasz Stefanek2011-01-01 20:19:56 +0000
committerGravatar Szymon Tomasz Stefanek2011-01-01 20:19:56 +0000
commitc601b5a27f74b16158adafe429faefbe573e64a2 (patch)
treea3cde3206a45628f8ac86e8dfbdab70b20c3a831 /src/modules/options/optw_identity.cpp
parentprobable compilation fix for rijndaled/crypto++ (diff)
downloadKVIrc-c601b5a27f74b16158adafe429faefbe573e64a2.tar.gz
KVIrc-c601b5a27f74b16158adafe429faefbe573e64a2.tar.bz2
KVIrc-c601b5a27f74b16158adafe429faefbe573e64a2.zip
The big rename for modules. Still some details remaining.
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@5284 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/options/optw_identity.cpp')
-rw-r--r--src/modules/options/optw_identity.cpp1017
1 files changed, 0 insertions, 1017 deletions
diff --git a/src/modules/options/optw_identity.cpp b/src/modules/options/optw_identity.cpp
deleted file mode 100644
index 7ef4ac1d3..000000000
--- a/src/modules/options/optw_identity.cpp
+++ /dev/null
@@ -1,1017 +0,0 @@
-//============================================================================
-//
-// File : optw_identity.cpp
-// Creation date : Tue Nov 14 2000 23:06:53 CEST by Szymon Stefanek
-//
-// This file is part of the KVIrc irc client distribution
-// Copyright (C) 2000-2010 Szymon Stefanek (pragma at kvirc dot net)
-//
-// 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 opinion) any later version.
-//
-// This program is distributed in the HOPE that it will be USEFUL,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-// See the GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, write to the Free Software Foundation,
-// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-//
-//============================================================================
-
-#include "optw_identity.h"
-
-#include "kvi_defaults.h"
-#include "kvi_settings.h"
-#include "kvi_fileextensions.h"
-#include "KviOptions.h"
-#include "KviLocale.h"
-#include "KviApplication.h"
-#include "KviWindow.h"
-#include "KviConsoleWindow.h"
-#include "KviOptionsWidget.h"
-#include "KviFileDialog.h"
-#include "KviIconManager.h"
-#include "KviHttpRequest.h"
-#include "KviIdentityProfileSet.h"
-#include "KviTalToolTip.h"
-#include "KviTalHBox.h"
-
-#include <QTreeWidget>
-#include <QCheckBox>
-#include <QLineEdit>
-#include <QPushButton>
-#include <QLayout>
-#include <QTabWidget>
-#include <QComboBox>
-#include <QMessageBox>
-#include <QTimer>
-#include <QValidator>
-#include <QCloseEvent>
-#include <QFileInfo>
-
-KviNickAlternativesDialog::KviNickAlternativesDialog(QWidget * par,const QString &n1,const QString &n2,const QString &n3)
-: QDialog(par)
-{
- QGridLayout * g = new QGridLayout(this);
-
- setWindowTitle(__tr2qs_ctx("Nickname alternatives","options"));
-
- QLabel * l = new QLabel(this);
- l->setText(__tr2qs_ctx("<center>Here you can choose up to three nicknames " \
- "alternative to the primary one. KVIrc will use the alternatives " \
- "if the primary nick is already used by someone else on a particular " \
- "IRC network.</center>","options"));
- l->setWordWrap(true);
-
- g->addWidget(l,0,0,1,3);
-
- l = new QLabel(this);
- l->setText(__tr2qs_ctx("Alt. Nickname 1:","options"));
- g->addWidget(l,1,0);
- m_pNickEdit1 = new QLineEdit(this);
- g->addWidget(m_pNickEdit1,1,1,1,2);
- m_pNickEdit1->setText(n1);
-
- l = new QLabel(this);
- l->setText(__tr2qs_ctx("Alt. Nickname 2:","options"));
- g->addWidget(l,2,0);
- m_pNickEdit2 = new QLineEdit(this);
- g->addWidget(m_pNickEdit2,2,1,1,2);
- m_pNickEdit2->setText(n2);
-
- l = new QLabel(this);
- l->setText(__tr2qs_ctx("Alt. Nickname 3:","options"));
- g->addWidget(l,3,0);
- m_pNickEdit3 = new QLineEdit(this);
- g->addWidget(m_pNickEdit3,3,1,1,2);
- m_pNickEdit3->setText(n3);
- KviTalHBox * h = new KviTalHBox(this);
- h->setSpacing(8);
- g->addWidget(h,4,2);
-
- QPushButton * pb = new QPushButton(__tr2qs_ctx("Cancel","options"),h);
- connect(pb,SIGNAL(clicked()),this,SLOT(reject()));
-
- pb = new QPushButton(__tr2qs_ctx("Ok","options"),h);
- pb->setDefault(true);
- connect(pb,SIGNAL(clicked()),this,SLOT(accept()));
-
- g->setColumnStretch(0,1);
-}
-
-KviNickAlternativesDialog::~KviNickAlternativesDialog()
-{
-}
-
-void KviNickAlternativesDialog::fill(QString &n1,QString &n2,QString &n3)
-{
- n1 = m_pNickEdit1->text();
- n2 = m_pNickEdit2->text();
- n3 = m_pNickEdit3->text();
-}
-
-
-KviAvatarDownloadDialog::KviAvatarDownloadDialog(QWidget * par,const QString &szUrl)
-: QDialog(par)
-{
- setWindowTitle(__tr2qs_ctx("Avatar Download - KVIrc","options"));
-
- m_szUrl = szUrl;
-
- QGridLayout * g = new QGridLayout(this);
-
- m_pOutput = new QLabel(__tr2qs_ctx("<center>Please wait while the avatar is being downloaded</center>","options"),this);
- g->addWidget(m_pOutput,0,0,1,2);
-
- QPushButton * b = new QPushButton(__tr2qs_ctx("Abort","options"),this);
- g->addWidget(b,1,1);
- connect(b,SIGNAL(clicked()),this,SLOT(cancelClicked()));
-
- m_pRequest = new KviHttpRequest();
-
- QTimer::singleShot(0,this,SLOT(startDownload()));
-
- g->setRowStretch(0,1);
- g->setColumnStretch(0,1);
-
- setMinimumSize(250,120);
-}
-
-KviAvatarDownloadDialog::~KviAvatarDownloadDialog()
-{
- delete m_pRequest;
-}
-
-void KviAvatarDownloadDialog::startDownload()
-{
- connect(m_pRequest,SIGNAL(terminated(bool)),this,SLOT(downloadTerminated(bool)));
- connect(m_pRequest,SIGNAL(status(const QString &)),this,SLOT(downloadMessage(const QString &)));
-
- QString tmp = m_szUrl;
- g_pIconManager->urlToCachedFileName(tmp);
- g_pApp->getLocalKvircDirectory(m_szLocalFileName,KviApplication::Avatars,tmp);
-
- m_pRequest->setExistingFileAction(KviHttpRequest::RenameExisting);
- if(!m_pRequest->get(KviUrl(m_szUrl),KviHttpRequest::StoreToFile,m_szLocalFileName.toUtf8().data()))
- {
- m_szErrorMessage = __tr2qs_ctx("Failed to start the download","options");
- reject();
- }
-}
-
-void KviAvatarDownloadDialog::closeEvent(QCloseEvent * e)
-{
- m_szErrorMessage = __tr2qs_ctx("Download aborted by user","options");
- e->ignore();
- reject();
-}
-
-void KviAvatarDownloadDialog::cancelClicked()
-{
- m_szErrorMessage = __tr2qs_ctx("Download aborted by user","options");
- reject();
-}
-
-void KviAvatarDownloadDialog::downloadMessage(const QString &szMsg)
-{
- if(!szMsg.isEmpty())
- {
- QString txt = "<center>";
- txt += szMsg;
- txt += "</center>";
- m_pOutput->setText(szMsg);
- }
-}
-
-void KviAvatarDownloadDialog::downloadTerminated(bool bSuccess)
-{
- if(bSuccess)
- {
- accept();
- } else {
- m_szErrorMessage = m_pRequest->lastError();
- reject();
- }
-}
-
-KviAvatarSelectionDialog::KviAvatarSelectionDialog(QWidget * par,const QString &szInitialPath)
-: QDialog(par)
-{
- setWindowTitle(__tr2qs_ctx("Choose Avatar - KVIrc","options"));
-
- QGridLayout * g = new QGridLayout(this);
-
- QString msg = "<center>";
- msg += __tr2qs_ctx("Please select an avatar image. " \
- "The full path to a local file or an image on the Web can be used.<br>" \
- "If you wish to use a local image file, click the \"<b>Browse</b>\"" \
- "button to browse local folders.<br>" \
- "The full URL for an image (including <b>http://</b>) can be entered manually.","options");
- msg += "</center><br>";
-
- QLabel * l = new QLabel(msg,this);
- l->setMinimumWidth(250);
-
- g->addWidget(l,0,0,1,3);
-
- m_pLineEdit = new QLineEdit(this);
- m_pLineEdit->setText(szInitialPath);
- m_pLineEdit->setMinimumWidth(180);
-
- g->addWidget(m_pLineEdit,1,0,1,2);
-
- QPushButton * b = new QPushButton(__tr2qs_ctx("&Browse...","options"),this);
- connect(b,SIGNAL(clicked()),this,SLOT(chooseFileClicked()));
- g->addWidget(b,1,2);
-
- KviTalHBox * h = new KviTalHBox(this);
- h->setSpacing(8);
- g->addWidget(h,2,1,1,2);
- b = new QPushButton(__tr2qs_ctx("&OK","options"),h);
- b->setMinimumWidth(80);
- b->setDefault(true);
- connect(b,SIGNAL(clicked()),this,SLOT(okClicked()));
-
- b = new QPushButton(__tr2qs_ctx("Cancel","options"),h);
- b->setMinimumWidth(80);
- connect(b,SIGNAL(clicked()),this,SLOT(cancelClicked()));
-
- g->setRowStretch(0,1);
- g->setColumnStretch(0,1);
-}
-
-KviAvatarSelectionDialog::~KviAvatarSelectionDialog()
-{
-}
-
-void KviAvatarSelectionDialog::okClicked()
-{
- m_szAvatarName = m_pLineEdit->text().trimmed();
- accept();
-}
-
-void KviAvatarSelectionDialog::cancelClicked()
-{
- reject();
-}
-
-void KviAvatarSelectionDialog::chooseFileClicked()
-{
- QString tmp;
- if(KviFileDialog::askForOpenFileName(tmp,__tr2qs_ctx("Choose an Image File - KVIrc","options"),QString(),KVI_FILTER_IMAGE,false,true,this))
- {
- m_pLineEdit->setText(tmp);
- }
-}
-
-void KviAvatarSelectionDialog::closeEvent(QCloseEvent * e)
-{
- e->ignore();
- reject();
-}
-
-
-KviIdentityOptionsWidget::KviIdentityOptionsWidget(QWidget * parent)
-: KviOptionsWidget(parent)
-{
-}
-
-KviIdentityOptionsWidget::~KviIdentityOptionsWidget()
-{
-}
-
-
-KviIdentityGeneralOptionsWidget::KviIdentityGeneralOptionsWidget(QWidget * parent)
-: KviOptionsWidget(parent)
-{
- m_szAltNicknames[0] = KVI_OPTION_STRING(KviOption_stringNickname2);
- m_szAltNicknames[1] = KVI_OPTION_STRING(KviOption_stringNickname3);
- m_szAltNicknames[2] = KVI_OPTION_STRING(KviOption_stringNickname4);
-
-
- createLayout();
- layout()->setMargin(10);
-
- KviTalGroupBox * gbox = addGroupBox(0,0,0,0,Qt::Horizontal,__tr2qs_ctx("Basic Properties","options"));
- KviTalHBox * hb = new KviTalHBox(gbox);
- hb->setSpacing(0);
- hb->setMargin(0);
-
- KviStringSelector * sel = addStringSelector(hb,__tr2qs_ctx("Nickname:","options"),KviOption_stringNickname1);
- sel->setMinimumLabelWidth(120);
- mergeTip(sel,__tr2qs_ctx("<center>Your <b>nickname</b> is your primary form of identification on IRC.<br>" \
- "Since servers cannot accept multiple users sharing the same nickname " \
- "(case insensitive), you can provide alternative nicknames to be used in case"\
- "the server refuses to accept the default one.</center>","options"));
-
- QValidator * v = new QRegExpValidator(QRegExp("[^-0-9 ][^ ]*"),hb);
- sel->setValidator(v);
-
- QPushButton * pb = new QPushButton(__tr2qs_ctx("Alternatives...","options"),hb);
- connect(pb,SIGNAL(clicked()),this,SLOT(setNickAlternatives()));
-
- sel = addStringSelector(gbox,__tr2qs_ctx("Username:","options"),KviOption_stringUsername);
- sel->setMinimumLabelWidth(120);
- mergeTip(sel,__tr2qs_ctx("<center>This is the <b>username</b> that you will use to connect to the server.<br>" \
- "In the past, it was used as a form of authentication, but it normally has no special use now.<br>" \
- "In addition to your nickname, you are identified on IRC by your <b>username@hostname</b>.</br>" \
- "Basically, you can enter any word you like here. :D</center>","options"));
-
- sel = addStringSelector(gbox,__tr2qs_ctx("Real name:","options"),KviOption_stringRealname);
- sel->setMinimumLabelWidth(120);
-
- mergeTip(sel,__tr2qs_ctx("<center>This text will appear when someone does a /WHOIS on you.<br>" \
- "It is intended to be your real name, but people tend to put random quotes and phrases here too.</center>","options"));
-
-
- QString szOptionalCtcpUserInfo = __tr2qs_ctx("This field is optional and will appear as part of the CTCP USERINFO reply.","options");
- QString szCenterBegin("<center>");
- QString szCenterEnd("</center>");
- QString szTrailing = "<br><br>" + szOptionalCtcpUserInfo + szCenterEnd;
-
- gbox = addGroupBox(0,1,0,1,Qt::Horizontal,__tr2qs_ctx("Profile","options"));
-
- hb = new KviTalHBox(gbox);
- hb->setSpacing(4);
-
- QLabel * l = new QLabel(__tr2qs_ctx("Age:","options"),hb);
- l->setMinimumWidth(120);
-
- m_pAgeCombo = new QComboBox(hb);
- QString szTip1 = szCenterBegin + __tr2qs_ctx("Here you can specify your age.","options") + szTrailing;
- KviTalToolTip::add(l,szTip1);
- KviTalToolTip::add(m_pAgeCombo,szTip1);
- m_pAgeCombo->addItem(__tr2qs_ctx("Unspecified","options"));
- unsigned int i;
- for(i=1;i<120;i++)
- {
- QString tmp;
- tmp.setNum(i);
- m_pAgeCombo->insertItem(m_pAgeCombo->count(),tmp);
- }
-
- bool bOk;
- i = KVI_OPTION_STRING(KviOption_stringCtcpUserInfoAge).toUInt(&bOk);
- if(!bOk)i = 0;
- if(i > 120)i = 120;
- m_pAgeCombo->setCurrentIndex(i);
-
- hb->setStretchFactor(m_pAgeCombo,1);
-
-
- hb = new KviTalHBox(gbox);
- hb->setSpacing(4);
-
- l = new QLabel(__tr2qs_ctx("Gender:","options"),hb);
- l->setMinimumWidth(120);
-
- m_pGenderCombo = new QComboBox(hb);
- QString szTip2 = szCenterBegin + __tr2qs_ctx("Here you can specify your gender.","options") + szTrailing;
- KviTalToolTip::add(l,szTip2);
- KviTalToolTip::add(m_pGenderCombo,szTip2);
- m_pGenderCombo->addItem(__tr2qs_ctx("Unspecified","options"));
- m_pGenderCombo->addItem(__tr2qs_ctx("Female","options"));
- m_pGenderCombo->addItem(__tr2qs_ctx("Male","options"));
-
- if(KviQString::equalCI(KVI_OPTION_STRING(KviOption_stringCtcpUserInfoGender),"Male"))
- m_pGenderCombo->setCurrentIndex(2);
- else if(KviQString::equalCI(KVI_OPTION_STRING(KviOption_stringCtcpUserInfoGender),"Female"))
- m_pGenderCombo->setCurrentIndex(1);
- else
- m_pGenderCombo->setCurrentIndex(0);
-
- hb->setStretchFactor(m_pGenderCombo,1);
-
- sel = addStringSelector(gbox,__tr2qs_ctx("Location:","options"),KviOption_stringCtcpUserInfoLocation);
- sel->setMinimumLabelWidth(120);
- mergeTip(sel,szCenterBegin + __tr2qs_ctx("You can describe here your approximate physical location. " \
- "Something like \"Region, Country\" will be ok. Please note that this information will be viewable " \
- "by anyone so putting more data (like the exact address), generally, <b>is not a good idea</b>.","options") + szTrailing);
-
- sel = addStringSelector(gbox,__tr2qs_ctx("Languages:","options"),KviOption_stringCtcpUserInfoLanguages);
- sel->setMinimumLabelWidth(120);
- mergeTip(sel,szCenterBegin + __tr2qs_ctx("You can put here the short names of the languages you can speak. " \
- "An example might be \"EN,IT\" that would mean that you speak both Italian and English.","options") + szTrailing);
-
- sel = addStringSelector(gbox,__tr2qs_ctx("Other:","options"),KviOption_stringCtcpUserInfoOther);
- sel->setMinimumLabelWidth(120);
- mergeTip(sel,szCenterBegin + __tr2qs_ctx("You can put here some additional personal data. " \
- "It might be a funny quote or your homepage url... " \
- "Please note that this information will be viewable " \
- "by anyone so <b>don't put any sensible data</b> (passwords, telephone or credit card numbers).","options") + szTrailing);
-
- addRowSpacer(0,2,0,2);
-}
-
-KviIdentityGeneralOptionsWidget::~KviIdentityGeneralOptionsWidget()
-{
-}
-
-void KviIdentityGeneralOptionsWidget::setNickAlternatives()
-{
- KviNickAlternativesDialog * dlg = new KviNickAlternativesDialog(this,m_szAltNicknames[0],m_szAltNicknames[1],m_szAltNicknames[2]);
- if(dlg->exec() != QDialog::Accepted)return;
- dlg->fill(m_szAltNicknames[0],m_szAltNicknames[1],m_szAltNicknames[2]);
- delete dlg;
-}
-
-void KviIdentityGeneralOptionsWidget::commit()
-{
- KviOptionsWidget::commit();
-
- if(KVI_OPTION_STRING(KviOption_stringRealname).isEmpty()) KVI_OPTION_STRING(KviOption_stringRealname)=KVI_DEFAULT_REALNAME;
- if(KVI_OPTION_STRING(KviOption_stringUsername).isEmpty()) KVI_OPTION_STRING(KviOption_stringUsername)=KVI_DEFAULT_USERNAME;
-
- KVI_OPTION_STRING(KviOption_stringNickname2) = m_szAltNicknames[0];
- KVI_OPTION_STRING(KviOption_stringNickname3) = m_szAltNicknames[1];
- KVI_OPTION_STRING(KviOption_stringNickname4) = m_szAltNicknames[2];
-
-
- int i = m_pAgeCombo->currentIndex();
- if(i < 0)i = 0;
- if(i > 120)i = 120;
- if(i <= 0)KVI_OPTION_STRING(KviOption_stringCtcpUserInfoAge) = "";
- else KVI_OPTION_STRING(KviOption_stringCtcpUserInfoAge).setNum(i);
-
- switch(m_pGenderCombo->currentIndex())
- {
- case 1:
- // this should be in english
- KVI_OPTION_STRING(KviOption_stringCtcpUserInfoGender) = "Female";
- break;
- case 2:
- // this should be in english
- KVI_OPTION_STRING(KviOption_stringCtcpUserInfoGender) = "Male";
- break;
- default:
- KVI_OPTION_STRING(KviOption_stringCtcpUserInfoGender) = "";
- break;
- }
-}
-
-
-KviIdentityAvatarOptionsWidget::KviIdentityAvatarOptionsWidget(QWidget * parent)
-: KviOptionsWidget(parent)
-{
- createLayout();
- layout()->setMargin(10);
-
- m_pLocalAvatar = new KviPixmap(KVI_OPTION_PIXMAP(KviOption_pixmapMyAvatar));
-
- bool bHaveAvatar = (!KVI_OPTION_STRING(KviOption_stringMyAvatar).isEmpty()) && m_pLocalAvatar->pixmap();
-
- QString szTip = __tr2qs_ctx("Here you can choose your avatar image. It will be visible<br>" \
- "by other people that request it. Choose a nice image of yourself,<br>" \
- "possibly avoiding obscenity and offending images. It is a good idea<br>" \
- "to choose a relatively small file (say 150 Kb max) because<br>" \
- "most clients have a limit on the size of avatars being downloaded.<br>" \
- "The image also should be smaller than 800x600 pixels since<br>" \
- "it will have to be viewable in everyone's monitor.","options");
-
- m_pUseAvatarCheck = new QCheckBox(__tr2qs_ctx("Use avatar","options"),this);
- addWidgetToLayout(m_pUseAvatarCheck,0,0,0,0);
- m_pUseAvatarCheck->setChecked(bHaveAvatar);
- mergeTip(m_pUseAvatarCheck,szTip);
-
- m_pAvatarPreview = new KviPixmapPreview(this);
- addWidgetToLayout(m_pAvatarPreview,0,1,0,1);
- m_pAvatarPreview->setPixmap(m_pLocalAvatar);
- m_pAvatarPreview->setEnabled(bHaveAvatar);
- connect(m_pUseAvatarCheck,SIGNAL(toggled(bool)),m_pAvatarPreview,SLOT(setEnabled(bool)));
- mergeTip(m_pAvatarPreview,szTip);
-
- KviTalHBox * hb = new KviTalHBox(this);
- hb->setSpacing(4);
- addWidgetToLayout(hb,0,2,0,2);
-
- m_pAvatarNameEdit = new QLineEdit(hb);
- m_pAvatarNameEdit->setReadOnly(true);
- m_pAvatarNameEdit->setEnabled(bHaveAvatar);
- m_pAvatarNameEdit->setText(KVI_OPTION_STRING(KviOption_stringMyAvatar));
- connect(m_pUseAvatarCheck,SIGNAL(toggled(bool)),m_pAvatarNameEdit,SLOT(setEnabled(bool)));
-
- m_pChooseAvatarButton = new QPushButton(__tr2qs_ctx("Choose...","options"),hb);
- m_pChooseAvatarButton->setEnabled(bHaveAvatar);
- connect(m_pUseAvatarCheck,SIGNAL(toggled(bool)),m_pChooseAvatarButton,SLOT(setEnabled(bool)));
-
- connect(m_pChooseAvatarButton,SIGNAL(clicked()),this,SLOT(chooseAvatar()));
-
- layout()->setRowStretch(1,2);
-}
-
-KviIdentityAvatarOptionsWidget::~KviIdentityAvatarOptionsWidget()
-{
- delete m_pLocalAvatar;
-}
-
-void KviIdentityAvatarOptionsWidget::commit(void)
-{
- KviOptionsWidget::commit();
-
- QString szAvatarName = m_pAvatarNameEdit->text();
-
- if(m_pUseAvatarCheck->isChecked() && m_pLocalAvatar->pixmap() && (!szAvatarName.isEmpty()))
- {
- KVI_OPTION_STRING(KviOption_stringMyAvatar) = szAvatarName;
- KVI_OPTION_PIXMAP(KviOption_pixmapMyAvatar) = *m_pLocalAvatar;
- } else {
- KVI_OPTION_STRING(KviOption_stringMyAvatar) = "";
- KVI_OPTION_PIXMAP(KviOption_pixmapMyAvatar) = KviPixmap();
- }
- g_pApp->setAvatarFromOptions();
-}
-
-void KviIdentityAvatarOptionsWidget::chooseAvatar()
-{
- QString szCurrent = m_pAvatarNameEdit->text();
-
- KviAvatarSelectionDialog dlg(this,szCurrent);
- if(dlg.exec() != QDialog::Accepted)return;
-
- szCurrent = dlg.avatarName();
- szCurrent.trimmed();
-
- if(KviQString::equalCIN(szCurrent,"http://",7))
- {
- // this is an url
- // first check if we have it in the cache
- KviAvatar * a = g_pIconManager->getAvatar(QString(),szCurrent);
- if(!a)
- {
- // no cache... try downloading
- KviAvatarDownloadDialog dlg(this,szCurrent);
- if(dlg.exec() == QDialog::Accepted)
- {
- // downloaded!
- // try to load it
- if(!m_pLocalAvatar->load(dlg.localFileName()))
- {
- // unloadable
- szCurrent = "";
- QMessageBox::warning(this,__tr2qs_ctx("Failed to Load Avatar - KVIrc","options"),
- __tr2qs_ctx("Failed to load the avatar image.<br>" \
- "It may be an unaccessible file or an " \
- "unsupported image format.","options"),QMessageBox::Ok,QMessageBox::NoButton);
- } // else loaded!
- } else {
- // unloadable
- QString tmp;
- KviQString::sprintf(tmp,__tr2qs_ctx("Failed to download the avatar image.<br>" \
- "<b>%Q</b>","options"),&(dlg.errorMessage()));
- QMessageBox::warning(this,__tr2qs_ctx("Avatar Download Failed - KVIrc","options"),tmp,QMessageBox::Ok,QMessageBox::NoButton);
- szCurrent = "";
- m_pLocalAvatar->setNull();
- }
- } else {
- // else OK.. got it in the cache
- m_pLocalAvatar->set(*(a->pixmap()),a->localPath());
- delete a;
- }
- } else {
- // this is a local path
- if(m_pLocalAvatar->load(szCurrent))
- {
- // local path, loaded
- QString tmp = szCurrent;
- int idx = tmp.lastIndexOf("/");
- if(idx != -1)
- {
- szCurrent = tmp.right(tmp.length() - (idx + 1));
- tmp = szCurrent;
- }
- idx = tmp.lastIndexOf("\\");
- if(idx != -1)
- {
- szCurrent = tmp.right(tmp.length() - (idx + 1));
- tmp = szCurrent;
- }
- } else {
- // unloadable
- QMessageBox::warning(this,__tr2qs_ctx("Failed to Load Avatar - KVIrc","options"),
- __tr2qs_ctx("Failed to load the avatar image.<br>" \
- "It may be an unaccessible file or an " \
- "unsupported image format.","options"),QMessageBox::Ok,QMessageBox::NoButton);
- szCurrent = "";
- }
- }
-
- if(m_pLocalAvatar->pixmap())
- {
- if((m_pLocalAvatar->pixmap()->width() > 1024) || (m_pLocalAvatar->pixmap()->height() > 768))
- {
- QMessageBox::warning(
- this,
- __tr2qs_ctx("Avatar Might Be Too Big - KVIrc","options"),
- __tr2qs_ctx(
- "The avatar you have chosen is bigger than 1024x768 pixels.<br>" \
- "Such a big image will not be seen on all the user monitors<br>" \
- "and will probably be scaled by the remote clients with poor quality<br>" \
- "algorithms to improve performance. You *should* scale it manually<br>" \
- "to a sane size (like 800x600) or choose a different image.",
- "options"
- )
- );
- } else {
- QFileInfo inf(m_pLocalAvatar->path());
- if(inf.size() > 524288)
- {
- QMessageBox::warning(
- this,
- __tr2qs_ctx("Avatar Might Be Too Big - KVIrc","options"),
- __tr2qs_ctx(
- "The avatar you have chosen is bigger than 500 KiB<br>" \
- "and most clients will refuse to download it.<br>" \
- "You *should* either scale it, use a different storage<br>" \
- "format or choose a different image.",
- "options"
- )
- );
- }
- }
- }
-
- m_pAvatarNameEdit->setText(szCurrent);
- m_pAvatarPreview->setPixmap(m_pLocalAvatar);
-}
-
-
-KviIdentityAdvancedOptionsWidget::KviIdentityAdvancedOptionsWidget(QWidget * parent)
-: KviOptionsWidget(parent)
-{
- m_pISelector=0;
- m_pWSelector=0;
- m_pSSelector=0;
-
- m_sModeStr = KVI_OPTION_STRING(KviOption_stringDefaultUserMode);
- m_bI = m_sModeStr.contains('i');
- m_bW = m_sModeStr.contains('w');
- m_bS = m_sModeStr.contains('s');
-
- createLayout();
- layout()->setMargin(10);
-
- KviTalGroupBox * gbox = addGroupBox(0,0,0,0,Qt::Horizontal,__tr2qs_ctx("User Mode","options"));
- m_pISelector = addBoolSelector(gbox,__tr2qs_ctx("Invisible (+i)","options"),&m_bI);
- m_pSSelector = addBoolSelector(gbox,__tr2qs_ctx("Server notices (+s)","options"),&m_bS);
- m_pWSelector = addBoolSelector(gbox,__tr2qs_ctx("Wallops (+w)","options"),&m_bW);
-
- gbox = addGroupBox(0,1,0,1,Qt::Horizontal,__tr2qs_ctx("Default Messages","options"));
-
- KviStringSelector * sel = addStringSelector(gbox, __tr2qs_ctx("Part message:","options"),KviOption_stringPartMessage);
- sel->setMinimumLabelWidth(120);
-
- mergeTip(sel,__tr2qs_ctx("<center>This is the default part message that will be used when you<br>" \
- "leave a channel by closing a channel window.</center>","options"));
-
- sel = addStringSelector(gbox, __tr2qs_ctx("Quit message:","options"),KviOption_stringQuitMessage);
- sel->setMinimumLabelWidth(120);
- mergeTip(sel,__tr2qs_ctx("<center>This is the default quit message that will be used when you<br>" \
- "quit your IRC session by closing the console window or disconnecting by pressing the disconnect button.</center>","options"));
-
- addRowSpacer(0,2,0,2);
-}
-
-KviIdentityAdvancedOptionsWidget::~KviIdentityAdvancedOptionsWidget()
-{
-}
-
-void KviIdentityAdvancedOptionsWidget::commit()
-{
- KviOptionsWidget::commit();
-
- m_sModeStr = m_bI ? "i" : "";
- if(m_bS)m_sModeStr += "s";
- if(m_bW)m_sModeStr += "w";
-
- KVI_OPTION_STRING(KviOption_stringDefaultUserMode) = m_sModeStr.ptr();
-}
-
-KviIdentityProfileOptionsWidget::KviIdentityProfileOptionsWidget(QWidget * pParent)
-: KviOptionsWidget(pParent)
-{
- setObjectName("identity_profiles_option_widget");
- m_pEditor = 0;
- m_iCurrentEditedProfile = -1;
-
- createLayout();
- QGridLayout * pLayout = layout();
-
- KviIdentityProfileSet * pSet = KviIdentityProfileSet::instance();
- bool bEnabled = pSet ? (pSet->isEnabled() && !pSet->isEmpty()) : false;
-
- m_pProfilesCheck = new QCheckBox(__tr2qs_ctx("Enable Network Profiles","options"),this);
- KviTalToolTip::add(m_pProfilesCheck,__tr2qs_ctx("This check enables the use of network profiles","options"));
- m_pProfilesCheck->setChecked(bEnabled);
- pLayout->addWidget(m_pProfilesCheck,0,0,1,3);
- connect(m_pProfilesCheck,SIGNAL(toggled(bool)),this,SLOT(toggleControls()));
-
- // Profiles list
- m_pTreeWidget = new QTreeWidget(this);
- m_pTreeWidget->setSelectionMode(QAbstractItemView::SingleSelection);
- m_pTreeWidget->setAllColumnsShowFocus(true);
-
- QStringList labels;
- labels.append(__tr2qs_ctx("Name","options"));
- labels.append(__tr2qs_ctx("Network","options"));
- labels.append(__tr2qs_ctx("Nickname","options"));
- labels.append(__tr2qs_ctx("Alt. Nick","options"));
- labels.append(__tr2qs_ctx("Username","options"));
- labels.append(__tr2qs_ctx("Realname","options"));
- m_pTreeWidget->setHeaderLabels(labels);
-
- KviTalToolTip::add(m_pTreeWidget, \
- __tr2qs_ctx("<center>This is a set of rules to use profiles." \
- "KVIrc will use them to handle the user connection " \
- "data before the data is sent to the IRC server.<br>" \
- "This is useful if a user wants to use different data " \
- "on different networks without changing them at every " \
- "connection attempt.","options"));
- pLayout->addWidget(m_pTreeWidget,1,0,1,3);
- connect(m_pTreeWidget,SIGNAL(itemSelectionChanged()),this,SLOT(toggleControls()));
-
- // Buttons box
- KviTalHBox * pBtnBox = new KviTalHBox(this);
- pLayout->addWidget(pBtnBox,2,0);
-
- m_pBtnAddProfile = new QPushButton(__tr2qs_ctx("Add Profile","options"),pBtnBox);
- connect(m_pBtnAddProfile,SIGNAL(clicked()),this,SLOT(addProfileEntry()));
-
- m_pBtnEditProfile = new QPushButton(__tr2qs_ctx("Edit Profile","options"),pBtnBox);
- connect(m_pBtnEditProfile,SIGNAL(clicked()),this,SLOT(editProfileEntry()));
-
- m_pBtnDelProfile = new QPushButton(__tr2qs_ctx("Delete Profile","options"),pBtnBox);
- connect(m_pBtnDelProfile,SIGNAL(clicked()),this,SLOT(delProfileEntry()));
-
- // Fill in the treewidget
- if(pSet && pSet->profiles())
- {
- QTreeWidgetItem * pItem;
- KviPointerList<KviIdentityProfile> * pList = pSet->profiles();
- for(KviIdentityProfile * pProfile = pList->first(); pProfile; pProfile = pList->next())
- {
- pItem = new QTreeWidgetItem(m_pTreeWidget);
- pItem->setText(0,pProfile->name());
- pItem->setText(1,pProfile->network());
- pItem->setText(2,pProfile->nick());
- pItem->setText(3,pProfile->altNick());
- pItem->setText(4,pProfile->userName());
- pItem->setText(5,pProfile->realName());
- }
- }
-
- toggleControls();
-}
-
-KviIdentityProfileOptionsWidget::~KviIdentityProfileOptionsWidget()
-{
-}
-
-void KviIdentityProfileOptionsWidget::toggleControls()
-{
- bool bEnabled = m_pProfilesCheck->isChecked();
- m_pTreeWidget->setEnabled(bEnabled);
- m_pBtnAddProfile->setEnabled(bEnabled);
-
- bEnabled = bEnabled && (m_pTreeWidget->topLevelItemCount()) && m_pTreeWidget->currentItem();
- m_pBtnEditProfile->setEnabled(bEnabled);
- m_pBtnDelProfile->setEnabled(bEnabled);
-}
-
-void KviIdentityProfileOptionsWidget::addProfileEntry()
-{
- KviIdentityProfile profile;
- m_iCurrentEditedProfile = -1;
-
- if(m_pEditor)
- delete m_pEditor;
- m_pEditor = new KviIdentityProfileEditor(this);
-
- if(m_pEditor->editProfile(&profile))
- {
- QTreeWidgetItem * pItem = new QTreeWidgetItem(m_pTreeWidget);
- pItem->setText(0,profile.name());
- pItem->setText(1,profile.network());
- pItem->setText(2,profile.nick());
- pItem->setText(3,profile.altNick());
- pItem->setText(4,profile.userName());
- pItem->setText(5,profile.realName());
- }
-}
-
-void KviIdentityProfileOptionsWidget::editProfileEntry()
-{
- QTreeWidgetItem * pItem = (QTreeWidgetItem *)m_pTreeWidget->currentItem();
- if(!pItem)
- return;
-
- // Fill in the editor data
- KviIdentityProfile profile;
- profile.setName(pItem->text(0));
- profile.setNetwork(pItem->text(1));
- profile.setNick(pItem->text(2));
- profile.setAltNick(pItem->text(3));
- profile.setUserName(pItem->text(4));
- profile.setRealName(pItem->text(5));
-
- m_iCurrentEditedProfile=m_pTreeWidget->indexOfTopLevelItem(pItem);
-
- if(m_pEditor)
- delete m_pEditor;
- m_pEditor = new KviIdentityProfileEditor(this);
- if(m_pEditor->editProfile(&profile))
- {
- pItem->setText(0,profile.name());
- pItem->setText(1,profile.network());
- pItem->setText(2,profile.nick());
- pItem->setText(3,profile.altNick());
- pItem->setText(4,profile.userName());
- pItem->setText(5,profile.realName());
- }
-}
-
-void KviIdentityProfileOptionsWidget::editProfileOkPressed()
-{
- for(int i=0; i < m_pTreeWidget->topLevelItemCount(); i++)
- {
- if(m_pEditor->m_pNameEdit->text() == m_pTreeWidget->topLevelItem(i)->text(0) && i!=m_iCurrentEditedProfile)
- {
- QMessageBox::warning(this,__tr2qs_ctx("Invalid Profile Rule","options"),__tr2qs_ctx("There is already a profile with that name","options"),__tr2qs_ctx("OK","options"));
- return;
- }
- }
-
- m_pEditor->accept();
-}
-
-void KviIdentityProfileOptionsWidget::delProfileEntry()
-{
- QTreeWidgetItem * pItem = (QTreeWidgetItem *)m_pTreeWidget->currentItem();
- if(!pItem)
- return;
-
- delete pItem;
- toggleControls();
-}
-
-void KviIdentityProfileOptionsWidget::commit()
-{
- KviIdentityProfileSet::instance()->clear();
- if(m_pTreeWidget->topLevelItemCount())
- {
- KviIdentityProfileSet::instance()->setEnabled(m_pProfilesCheck->isChecked());
- QTreeWidgetItem * pItem;
- for(int i=0; i < m_pTreeWidget->topLevelItemCount(); i++)
- {
- pItem = (QTreeWidgetItem *)m_pTreeWidget->topLevelItem(i);
-
- KviIdentityProfile * pProfile = new KviIdentityProfile();
- pProfile->setName(pItem->text(0));
- pProfile->setNetwork(pItem->text(1));
- pProfile->setNick(pItem->text(2));
- pProfile->setAltNick(pItem->text(3));
- pProfile->setUserName(pItem->text(4));
- pProfile->setRealName(pItem->text(5));
-
- KviIdentityProfileSet::instance()->addProfile(pProfile);
- }
- }
-
- KviOptionsWidget::commit();
-}
-
-KviIdentityProfileEditor::KviIdentityProfileEditor(QWidget * pParent)
-: QDialog(pParent)
-{
- setObjectName("identity_profile_editor");
- setWindowTitle(__tr2qs_ctx("Profile Editor - KVIrc","options"));
-
- m_szName = __tr2qs_ctx("Profile Name","options");
- m_szNetwork = __tr2qs_ctx("MyNetwork","options");
- m_szNick = __tr2qs_ctx("MyNick","options");
- m_szAltNick = __tr2qs_ctx("MyNick2","options");
- m_szUserName = __tr2qs_ctx("MyUserName","options");
- m_szRealName = __tr2qs_ctx("MyRealName","options");
-
- QGridLayout * pLayout = new QGridLayout(this);
-
- QLabel * pLabel = new QLabel(__tr2qs_ctx("Profile Name:","options"),this);
- pLayout->addWidget(pLabel,0,0);
-
- m_pNameEdit = new QLineEdit(this);
- KviTalToolTip::add(m_pNameEdit,__tr2qs_ctx("Put here the name of the profile","options"));
- pLayout->addWidget(m_pNameEdit,0,1,1,2);
- connect(m_pNameEdit,SIGNAL(textChanged(const QString &)),this,SLOT(toggleButton(const QString &)));
-
- pLabel = new QLabel(__tr2qs_ctx("Network Name:","options"),this);
- pLayout->addWidget(pLabel,1,0);
-
- m_pNetworkEdit = new QLineEdit(this);
- KviTalToolTip::add(m_pNetworkEdit,__tr2qs_ctx("Put here the name of the network","options"));
- pLayout->addWidget(m_pNetworkEdit,1,1,1,2);
- connect(m_pNetworkEdit,SIGNAL(textChanged(const QString &)),this,SLOT(toggleButton(const QString &)));
-
- pLabel = new QLabel(__tr2qs_ctx("Nickname:","options"),this);
- pLayout->addWidget(pLabel,2,0);
-
- m_pNickEdit = new QLineEdit(this);
- KviTalToolTip::add(m_pNickEdit,__tr2qs_ctx("Put here the nickname you want to use","options"));
- pLayout->addWidget(m_pNickEdit,2,1,1,2);
- connect(m_pNickEdit,SIGNAL(textChanged(const QString &)),this,SLOT(toggleButton(const QString &)));
-
- pLabel = new QLabel(__tr2qs_ctx("Alternative Nickname:","options"),this);
- pLayout->addWidget(pLabel,3,0);
-
- m_pAltNickEdit = new QLineEdit(this);
- KviTalToolTip::add(m_pAltNickEdit,__tr2qs_ctx("Put here the alternative nickname you want to use","options"));
- pLayout->addWidget(m_pAltNickEdit,3,1,1,2);
- connect(m_pAltNickEdit,SIGNAL(textChanged(const QString &)),this,SLOT(toggleButton(const QString &)));
-
- pLabel = new QLabel(__tr2qs_ctx("Username:","options"),this);
- pLayout->addWidget(pLabel,4,0);
-
- m_pUserNameEdit = new QLineEdit(this);
- KviTalToolTip::add(m_pUserNameEdit,__tr2qs_ctx("Put here the username you want to use","options"));
- pLayout->addWidget(m_pUserNameEdit,4,1,1,2);
- connect(m_pUserNameEdit,SIGNAL(textChanged(const QString &)),this,SLOT(toggleButton(const QString &)));
-
- pLabel = new QLabel(__tr2qs_ctx("Realname:","options"),this);
- pLayout->addWidget(pLabel,5,0);
-
- m_pRealNameEdit = new QLineEdit(this);
- KviTalToolTip::add(m_pRealNameEdit,__tr2qs_ctx("Put here the realname you want to use","options"));
- pLayout->addWidget(m_pRealNameEdit,5,1,1,2);
- connect(m_pRealNameEdit,SIGNAL(textChanged(const QString &)),this,SLOT(toggleButton(const QString &)));
-
- KviTalHBox * pBox = new KviTalHBox(this);
- pBox->setAlignment(Qt::AlignRight);
- pLayout->addWidget(pBox,6,0);
-
- QPushButton * p = new QPushButton(__tr2qs_ctx("Cancel","options"),pBox);
- //p->setMinimumWidth(100);
- connect(p,SIGNAL(clicked()),this,SLOT(reject()));
-
- m_pBtnOk = new QPushButton(__tr2qs_ctx("OK","options"),pBox);
- m_pBtnOk->setEnabled(false);
- connect(m_pBtnOk,SIGNAL(clicked()),pParent,SLOT(editProfileOkPressed()));
-
- pLayout->setColumnStretch(1,1);
-
- setMinimumWidth(250);
-}
-
-KviIdentityProfileEditor::~KviIdentityProfileEditor()
-{
-}
-
-bool KviIdentityProfileEditor::editProfile(KviIdentityProfile * pProfile)
-{
- // Fill in the fields
- m_pNameEdit->setText(pProfile->name().isEmpty() ? QString(m_szName) : pProfile->name());
- m_pNetworkEdit->setText(pProfile->network().isEmpty() ? QString(m_szNetwork) : pProfile->network());
- m_pNickEdit->setText(pProfile->nick().isEmpty() ? QString(m_szNick) : pProfile->nick());
- m_pAltNickEdit->setText(pProfile->altNick().isEmpty() ? QString(m_szAltNick) : pProfile->altNick());
- m_pUserNameEdit->setText(pProfile->userName().isEmpty() ? QString(m_szUserName) : pProfile->userName());
- m_pRealNameEdit->setText(pProfile->realName().isEmpty() ? QString(m_szRealName) : pProfile->realName());
-
- // Ensure data
- m_pNameEdit->selectAll();
-
- // Show the dialog
- if(exec() != QDialog::Accepted) return false;
-
- // Store data in the object
- pProfile->setName(m_pNameEdit->text());
- pProfile->setNetwork(m_pNetworkEdit->text());
- pProfile->setNick(m_pNickEdit->text());
- pProfile->setAltNick(m_pAltNickEdit->text());
- pProfile->setUserName(m_pUserNameEdit->text());
- pProfile->setRealName(m_pRealNameEdit->text());
-
- return true;
-}
-
-void KviIdentityProfileEditor::toggleButton(const QString & szText)
-{
- bool bEnabled = true;
-
- if(
- (m_pNameEdit->text() == m_szName) ||
- (m_pNetworkEdit->text() == m_szNetwork) ||
- (m_pNickEdit->text() == m_szNick) ||
- (m_pAltNickEdit->text() == m_szAltNick) ||
- (m_pUserNameEdit->text() == m_szUserName) ||
- (m_pRealNameEdit->text() == m_szRealName) ||
- (szText.isEmpty())
- )
- bEnabled = false;
-
- m_pBtnOk->setEnabled(bEnabled);
-}
-
-#ifndef COMPILE_USE_STANDALONE_MOC_SOURCES
-#include "m_optw_identity.moc"
-#endif //COMPILE_USE_STANDALONE_MOC_SOURCES