📄 evasyssettingwindow.cpp
字号:
/*************************************************************************** * Copyright (C) 2005 by yunfan * * yunfan_zg@163.com * * * * 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. * * * * 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., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ /* revised by tlmcasper 2005 tlmcasper@163.com*/#include "evasyssettingwindow.h"#include "evaresource.h"#include "evausersetting.h"#include "../evamain.h"#include "evapacket.h"#include "evauser.h"#include "evautil.h"#include <qcombobox.h>#include <qpushbutton.h>#include <qslider.h>#include <qtextedit.h>#include <qlineedit.h>#include <qspinbox.h>#include <qcheckbox.h>#include <qlabel.h>#include <qfiledialog.h>#include <klocale.h>#include <inttypes.h>#include <qlistview.h>#include <qheader.h>#include <qwidgetstack.h>#include <qiconview.h>#include <qradiobutton.h>#include <qtextcodec.h>#include <qtimer.h>#include <qtoolbutton.h>#include <krun.h>#include <kpushbutton.h>#include <kcolorcombo.h>#include <kmessagebox.h>#include <kapp.h>EvaImageResource *EvaSysSettingWindow::faces = NULL;EvaSysSettingWindow::EvaSysSettingWindow( QStringList &user, EvaImageResource * res, EvaUserSetting * setting , QWidget *parent) : EvaSysSettingUIBase(parent, 0, WType_Dialog | WShowModal), details(user), selectedFaceIndex(0), isSignatureChanged(false){ userSetting = setting; lvSettingItem->setSorting( -1 ); //make the listview do NOT Sort lvSettingItem->header()->setHidden( TRUE );//make the listview title hidden pbFaceDefault->hide(); faces = res; //faces is a pointer of EvaImageResource setupFaces(); loadSetting(); slotCbbAutoNoActivated(0); slotCbbQuickNoActivated(0); slotAuthChanged(); QObject::connect(pbFaceDefault, SIGNAL(clicked()), SLOT(slotPbFaceDefaultClicked())); QObject::connect(pbApply, SIGNAL(clicked()), SLOT(slotPbApplyClicked())); QObject::connect(pbCancel, SIGNAL(clicked()), SLOT(close())); QObject::connect(pbOk, SIGNAL(clicked()), SLOT(slotPbOKClicked())); QObject::connect(sliderFaceSize, SIGNAL(valueChanged(int)), SLOT(slotFaceSizeChanged(int))); QObject::connect(kkbtnShortKey, SIGNAL(capturedShortcut(const KShortcut &)), SLOT(slotCapturedShortcut(const KShortcut &))); QObject::connect(pbTheme, SIGNAL(clicked()), SLOT(slotPbThemeClicked())); QObject::connect(pbSound, SIGNAL(clicked()), SLOT(slotPbSoundClicked())); QObject::connect(cbbAutoNo, SIGNAL(activated(int)), SLOT(slotCbbAutoNoActivated(int))); QObject::connect(pbAutoNew, SIGNAL(clicked()), SLOT(slotPbAutoNewClicked())); QObject::connect(pbAutoDelete, SIGNAL(clicked()), SLOT(slotPbAutoDeleteClicked())); QObject::connect(teAutoMessage, SIGNAL(textChanged()), SLOT(slotTeAutoTextChanged())); QObject::connect(cbbQuickNo, SIGNAL(activated(int)), SLOT(slotCbbQuickNoActivated(int))); QObject::connect(pbQuickNew, SIGNAL(clicked()), SLOT(slotPbQuickNewClicked())); QObject::connect(pbQuickDelete, SIGNAL(clicked()), SLOT(slotPbQuickDeleteClicked())); QObject::connect(teQuickMessage, SIGNAL(textChanged()), SLOT(slotTeQuickTextChanged())); //connect ListView to the WidgetStack,add by casper QObject::connect(lvSettingItem, SIGNAL(clicked(QListViewItem *)), SLOT(slotSettingListItemClicked(QListViewItem *))); //click face button then show the IconView QObject::connect(pbChangeFace,SIGNAL(clicked()),SLOT(slotPbFaceClicked())); //double click the face Icon in the IconView QObject::connect( ivFace, SIGNAL( doubleClicked(QIconViewItem*) ), SLOT( FaceChoose(QIconViewItem*) ) ); //if the text of signature changed QObject::connect( teSignature, SIGNAL(textChanged()), SLOT(slotSignatureChanged())); //QQShow QObject::connect( tbtnShop, SIGNAL( clicked() ), SLOT( slotShopClicked() ) ); QObject::connect( tbtnAlbum, SIGNAL( clicked() ), SLOT( slotAlbumClicked() ) ); QObject::connect( tbtnHome, SIGNAL( clicked() ), SLOT( slotHomeClicked() ) ); QObject::connect( kpbUpdateShow, SIGNAL( clicked() ), SLOT( slotUpdateQQShow() ) ); //the following connection check if anything of Setting Item changed ,then make apply enable; QObject::connect( leNickName, SIGNAL( textChanged( const QString & )), SLOT( slotUserInfoChanged() ) ); QObject::connect( leRealName, SIGNAL( textChanged( const QString & )), SLOT( slotUserInfoChanged() ) ); QObject::connect( leAge, SIGNAL( textChanged( const QString & )), SLOT( slotUserInfoChanged() ) ); QObject::connect( leSchool, SIGNAL( textChanged( const QString & )), SLOT( slotUserInfoChanged() ) ); QObject::connect( leHomePage, SIGNAL( textChanged( const QString & )), SLOT( slotUserInfoChanged() ) ); QObject::connect( teSignature, SIGNAL(textChanged()), SLOT( slotUserInfoChanged() ) ); QObject::connect( teAboutMe, SIGNAL(textChanged()), SLOT( slotUserInfoChanged() ) ); QObject::connect( ivFace, SIGNAL( doubleClicked(QIconViewItem*) ), SLOT( slotUserInfoChanged() ) ); QObject::connect( cbSex, SIGNAL( activated( int )), SLOT( slotUserInfoChanged() ) ); QObject::connect( cbOccupation, SIGNAL( textChanged( const QString & )), SLOT( slotUserInfoChanged() ) ); QObject::connect( cbZodiac, SIGNAL( activated( int )), SLOT( slotUserInfoChanged() ) ); QObject::connect( cbHoroscape, SIGNAL( activated( int )), SLOT( slotUserInfoChanged() ) ); QObject::connect( cbBlood, SIGNAL( activated( int )), SLOT( slotUserInfoChanged() ) ); QObject::connect( cbArea, SIGNAL( textChanged( const QString & )), SLOT( slotUserInfoChanged() ) ); QObject::connect( cbProvince, SIGNAL( textChanged( const QString & )), SLOT( slotUserInfoChanged() ) ); QObject::connect( cbCity, SIGNAL( textChanged( const QString & )), SLOT( slotUserInfoChanged() ) ); QObject::connect( leZipCode, SIGNAL( textChanged( const QString & )), SLOT( slotUserInfoChanged() ) ); QObject::connect( leEmail, SIGNAL( textChanged( const QString & )), SLOT( slotUserInfoChanged() ) ); QObject::connect( leAddress, SIGNAL( textChanged( const QString & )), SLOT( slotUserInfoChanged() ) ); QObject::connect( lePhone, SIGNAL( textChanged( const QString & )), SLOT( slotUserInfoChanged() ) ); QObject::connect( leMobile, SIGNAL( textChanged( const QString & )), SLOT( slotUserInfoChanged() ) ); QObject::connect( rbPublic, SIGNAL( clicked() ), SLOT( slotUserInfoChanged() ) ); QObject::connect( rbProtect, SIGNAL( clicked() ), SLOT( slotUserInfoChanged() ) ); QObject::connect( rbPrivate, SIGNAL( clicked() ), SLOT( slotUserInfoChanged() ) ); QObject::connect( pbChangePassword, SIGNAL(clicked()), SLOT(slotChangePasswordClicked())); QObject::connect( pbProtectPassword, SIGNAL(clicked()), SLOT(slotProtectPasswordClicked())); QObject::connect( rbAuthNoNeed, SIGNAL( clicked() ), SLOT( slotAuthChanged() ) ); QObject::connect( rbAuthNeed, SIGNAL( clicked() ), SLOT( slotAuthChanged() ) ); QObject::connect( rbAuthReject, SIGNAL( clicked() ), SLOT( slotAuthChanged() ) ); QObject::connect( rbAuthQuest, SIGNAL( clicked() ), SLOT( slotAuthChanged() ) ); QObject::connect( cbbQuestion, SIGNAL( textChanged( const QString & ) ), SLOT( slotAuthChanged() ) ); QObject::connect( leAnswer, SIGNAL( textChanged( const QString & ) ), SLOT( slotAuthChanged() ) ); QObject::connect( chbOnlineTip, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( chbMessage, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( chbShowOnlineUsers, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( chbSystemBroadcast, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( chbSystemNews, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( chbSound, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( chbSendKey, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( chbShowNickSmiley, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( chbShowSigSeperate, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( sbPageSize, SIGNAL( valueChanged( int ) ), SLOT( slotSysSettingChanged() ) ); QObject::connect( sbIdleTime, SIGNAL( valueChanged( int ) ), SLOT( slotSysSettingChanged() ) ); QObject::connect( sliderFaceSize, SIGNAL( valueChanged( int ) ), SLOT( slotSysSettingChanged() ) ); QObject::connect( kkbtnShortKey, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( leThemePath, SIGNAL( textChanged( const QString & )), SLOT( slotSysSettingChanged() ) ); QObject::connect( leSoundPath, SIGNAL( textChanged( const QString & )), SLOT( slotSysSettingChanged() ) ); QObject::connect( chbAutoReply, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( pbAutoNew, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( pbAutoDelete, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( pbQuickNew, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( pbQuickDelete, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( wspMainFont->kcbbBuddyNickColor, SIGNAL( activated(int) ), SLOT( slotSysSettingChanged() ) ); QObject::connect( wspMainFont->chbBuddyNickFontB, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( wspMainFont->chbBuddyNickFontU, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( wspMainFont->chbBuddyNickFontI, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( wspMainFont->kcbbBuddyFlashColor, SIGNAL( activated(int) ), SLOT( slotSysSettingChanged() ) ); QObject::connect( wspMainFont->chbBuddyFlashFontB, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( wspMainFont->chbBuddyFlashFontU, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( wspMainFont->chbBuddyFlashFontI, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( wspMainFont->kcbbBuddySigColor, SIGNAL( activated(int) ), SLOT( slotSysSettingChanged() ) ); QObject::connect( wspMainFont->chbBuddySigFontB, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( wspMainFont->chbBuddySigFontU, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( wspMainFont->chbBuddySigFontI, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( wspMainFont->kcbbQunNameColor, SIGNAL( activated(int) ), SLOT( slotSysSettingChanged() ) ); QObject::connect( wspMainFont->chbQunNameFontB, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( wspMainFont->chbQunNameFontU, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( wspMainFont->chbQunNameFontI, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( wspMainFont->kcbbQunFlashColor, SIGNAL( activated(int) ), SLOT( slotSysSettingChanged() ) ); QObject::connect( wspMainFont->chbQunFlashFontB, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( wspMainFont->chbQunFlashFontU, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( wspMainFont->chbQunFlashFontI, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( wspMainFont->kcbbGroupNameColor, SIGNAL( activated(int) ), SLOT( slotSysSettingChanged() ) ); QObject::connect( wspMainFont->chbGroupNameFontB, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( wspMainFont->chbGroupNameFontU, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( wspMainFont->chbGroupNameFontI, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( wspMainFont->kcbbGroupFlashColor, SIGNAL( activated(int) ), SLOT( slotSysSettingChanged() ) ); QObject::connect( wspMainFont->chbGroupFlashFontB, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( wspMainFont->chbGroupFlashFontU, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( wspMainFont->chbGroupFlashFontI, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( wspMainFont->kcbbGroupOnlineColor, SIGNAL( activated(int) ), SLOT( slotSysSettingChanged() ) ); QObject::connect( wspMainFont->chbGroupOnlineFontB, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( wspMainFont->chbGroupOnlineFontU, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); QObject::connect( wspMainFont->chbGroupOnlineFontI, SIGNAL( clicked() ), SLOT( slotSysSettingChanged() ) ); //setup Icon of QQShow if(faces){ QPixmap *icon = faces->getIcon("QQ_SHOP"); if(icon) tbtnShop->setIconSet(QIconSet(*icon)); } if(faces){ QPixmap *icon = faces->getIcon("QQ_ALBUM"); if(icon) tbtnAlbum->setIconSet(QIconSet(*icon)); } if(faces){ QPixmap *icon = faces->getIcon("QQ_HOME"); if(icon) tbtnHome->setIconSet(QIconSet(*icon)); } //show user info in User Info Window UpdateData(true); if(details.size()!=37) { QTimer::singleShot(500, this, SLOT(slotFirstUpdate())); } pbApply->setEnabled( FALSE ); isUserInfoChanged = FALSE; isSysSettingChanged = FALSE; isSignatureChanged = false; m_IsAuthQuestionChanged = false;}EvaSysSettingWindow::~ EvaSysSettingWindow( ){}void EvaSysSettingWindow::saveSetting( ){ userSetting->setShowBudyOnlineNotifyEnabled(chbOnlineTip->isChecked()); userSetting->setShowMessageTipEnabled(chbMessage->isChecked()); userSetting->setShowOnlineEnabled(chbShowOnlineUsers->isChecked()); userSetting->setShowSystemBroadcastEnabled(chbSystemBroadcast->isChecked()); userSetting->setShowSystemNewsEnabled(chbSystemNews->isChecked()); userSetting->setSoundEnabled(chbSound->isChecked()); userSetting->setShowSmileyInNickName( chbShowNickSmiley->isChecked()); userSetting->setShowSignatureInSeperateLine( chbShowSigSeperate->isChecked()); userSetting->setSendKeyEnterEnabled(chbSendKey->isChecked()); userSetting->setFaceSize(QSize(sliderFaceSize->value(), sliderFaceSize->value())); userSetting->setPageSize(sbPageSize->value()); userSetting->setMessageShortcut(kkbtnShortKey->shortcut()); userSetting->setBuddyNameColor( wspMainFont->kcbbBuddyNickColor->color() ); userSetting->setBuddyNameBold( wspMainFont->chbBuddyNickFontB->isChecked() ); userSetting->setBuddyNameUnderline( wspMainFont->chbBuddyNickFontU->isChecked() ); userSetting->setBuddyNameItalic( wspMainFont->chbBuddyNickFontI->isChecked() ); userSetting->setBuddyFlashColor( wspMainFont->kcbbBuddyFlashColor->color() ); userSetting->setBuddyFlashBold( wspMainFont->chbBuddyFlashFontB->isChecked() ); userSetting->setBuddyFlashUnderline( wspMainFont->chbBuddyFlashFontU->isChecked() ); userSetting->setBuddyFlashItalic( wspMainFont->chbBuddyFlashFontI->isChecked() ); userSetting->setBuddySigColor( wspMainFont->kcbbBuddySigColor->color() ); userSetting->setBuddySigBold( wspMainFont->chbBuddySigFontB->isChecked() ); userSetting->setBuddySigUnderline( wspMainFont->chbBuddySigFontU->isChecked() ); userSetting->setBuddySigItalic( wspMainFont->chbBuddySigFontI->isChecked() ); userSetting->setQunNameColor( wspMainFont->kcbbQunNameColor->color() ); userSetting->setQunNameBold( wspMainFont->chbQunNameFontB->isChecked() ); userSetting->setQunNameUnderline( wspMainFont->chbQunNameFontU->isChecked() ); userSetting->setQunNameItalic( wspMainFont->chbQunNameFontI->isChecked() ); userSetting->setQunFlashColor( wspMainFont->kcbbQunFlashColor->color() ); userSetting->setQunFlashBold( wspMainFont->chbQunFlashFontB->isChecked() ); userSetting->setQunFlashUnderline( wspMainFont->chbQunFlashFontU->isChecked() ); userSetting->setQunFlashItalic( wspMainFont->chbQunFlashFontI->isChecked() ); userSetting->setGroupNameColor( wspMainFont->kcbbGroupNameColor->color() ); userSetting->setGroupNameBold( wspMainFont->chbGroupNameFontB->isChecked() ); userSetting->setGroupNameUnderline( wspMainFont->chbGroupNameFontU->isChecked() ); userSetting->setGroupNameItalic( wspMainFont->chbGroupNameFontI->isChecked() ); userSetting->setGroupFlashColor( wspMainFont->kcbbGroupFlashColor->color() ); userSetting->setGroupFlashBold( wspMainFont->chbGroupFlashFontB->isChecked() ); userSetting->setGroupFlashUnderline( wspMainFont->chbGroupFlashFontU->isChecked() ); userSetting->setGroupFlashItalic( wspMainFont->chbGroupFlashFontI->isChecked() ); userSetting->setGroupCountColor( wspMainFont->kcbbGroupOnlineColor->color() ); userSetting->setGroupOnlineCountBold( wspMainFont->chbGroupOnlineFontB->isChecked() ); userSetting->setGroupOnlineCountUnderline( wspMainFont->chbGroupOnlineFontU->isChecked() ); userSetting->setGroupOnlineCountItalic( wspMainFont->chbGroupOnlineFontI->isChecked() ); userSetting->setThemeDir(leThemePath->text()); userSetting->setSoundDir(leSoundPath->text()); //userSetting->setShowOnlineEnabled(false); userSetting->setAutoReplyList(autoList); userSetting->setQuickReplyList(quickList); userSetting->setIdleMaxTime(sbIdleTime->value()); userSetting->saveSettings(); emit settingChanged();}void EvaSysSettingWindow::loadSetting( const bool isLoadDefault){ chbOnlineTip->setChecked(userSetting->isShowBudyOnlineNotifyEnabled()); chbMessage->setChecked(userSetting->isShowMessageTipEnabled()); chbShowOnlineUsers->setChecked(userSetting->isShowOnlineEnabled()); chbSystemBroadcast->setChecked(userSetting->isShowSystemBroadcastEnabled()); chbSystemNews->setChecked(userSetting->isShowSystemNewsEnabled()); chbSound->setChecked(userSetting->isSoundEnabled()); chbShowNickSmiley->setChecked(userSetting->isShowSmileyInNickName()); chbShowSigSeperate->setChecked(userSetting->isShowSignatureInSeperateLine()); chbSendKey->setChecked(userSetting->isSendKeyEnterEnabled()); sliderFaceSize->setValue(userSetting->getFaceSize().width()); // assume width == height slotFaceSizeChanged(userSetting->getFaceSize().width()); sbPageSize->setValue(userSetting->getPageSize()); sbIdleTime->setValue(userSetting->getIdleMaxTime()); chbAutoReply->setChecked(userSetting->isAutoReplyEnabled()); leThemePath->setText(userSetting->getThemeDir()); leSoundPath->setText(userSetting->getSoundDir()); kkbtnShortKey->setShortcut(userSetting->getMessageShortcut(), false); wspMainFont->kcbbBuddyNickColor->setColor(userSetting->getBuddyNameColor()); wspMainFont->chbBuddyNickFontB->setChecked(userSetting->isBuddyNameBold()); wspMainFont->chbBuddyNickFontU->setChecked(userSetting->isBuddyNameUnderline()); wspMainFont->chbBuddyNickFontI->setChecked(userSetting->isBuddyNameItalic()); wspMainFont->kcbbBuddyFlashColor->setColor(userSetting->getBuddyFlashColor()); wspMainFont->chbBuddyFlashFontB->setChecked(userSetting->isBuddyFlashBold()); wspMainFont->chbBuddyFlashFontU->setChecked(userSetting->isBuddyFlashUnderline()); wspMainFont->chbBuddyFlashFontI->setChecked(userSetting->isBuddyFlashItalic()); wspMainFont->kcbbBuddySigColor->setColor(userSetting->getBuddySigColor()); wspMainFont->chbBuddySigFontB->setChecked(userSetting->isBuddySigBold()); wspMainFont->chbBuddySigFontU->setChecked(userSetting->isBuddySigUnderline()); wspMainFont->chbBuddySigFontI->setChecked(userSetting->isBuddySigItalic()); wspMainFont->kcbbQunNameColor->setColor(userSetting->getQunNameColor()); wspMainFont->chbQunNameFontB->setChecked(userSetting->isQunNameBold()); wspMainFont->chbQunNameFontU->setChecked(userSetting->isQunNameUnderline()); wspMainFont->chbQunNameFontI->setChecked(userSetting->isQunNameItalic()); wspMainFont->kcbbQunFlashColor->setColor(userSetting->getQunFlashColor());
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -