📄 evamainwindow.cpp
字号:
if(pixLeave) pbStatus->setIconSet(QIconSet(*pixLeave)); pbStatus->setText(i18n( "Leave"));}void EvaMainWindow::invisible(){ if(pixInvisible) pbStatus->setIconSet(QIconSet(*pixInvisible)); pbStatus->setText(i18n( "Invisible"));}void EvaMainWindow::slotTbMyFace(){ if(qqNum) emit requestDetails(qqNum);}void EvaMainWindow::slotContextMenu(QListViewItem *item, const QPoint & p, int col){ if(col!=0) return; EvaGroupItem *g = dynamic_cast<EvaGroupItem *>(item); EvaBuddyItem *b = dynamic_cast<EvaBuddyItem *>(item); EvaQunItem *q = dynamic_cast<EvaQunItem *>(item); if ( item && !item->isSelected() ) { listView->clearSelection(); item->setSelected( true ); } if ( !item ) listView->clearSelection(); if(g && groupMenu){ if(g->getType() == EvaGroupItem::Normal){ if(g->getGroupIndex() == 0 || g->getGroupIndex() > listView->getNumOfGroups() ){ groupMenu->setItemEnabled(0, false); groupMenu->setItemEnabled(2, false); }else{ groupMenu->setItemEnabled(0, true); groupMenu->setItemEnabled(2, true); } groupMenu->popup(p); } else if(g->getType() == EvaGroupItem::QunOrg){ qunOrgsMenu->popup(p); } else if(g->getType() == EvaGroupItem::QunDiscuss){ qunDiscussMenu->popup(p); } }else if(b && buddyMenu ){ buddyMenu->popup(p); } else if(q && qunMenu){ qunMenu->popup(p); }}void EvaMainWindow::slotItemRenamed(QListViewItem *item, int){ EvaGroupItem *g = dynamic_cast<EvaGroupItem *>(item); if(!g) return; if(g->getType() != EvaGroupItem::Normal) return; emit groupRenamed(g->text(0), g->getGroupIndex());}void EvaMainWindow::slotRenameGroup(){ EvaGroupItem *g = dynamic_cast<EvaGroupItem *>(listView->selectedItem()); if(!g) return; if(g->getGroupIndex() == 0) return; // first group cannot be renamed g->setGroupName(g->getGroupName()); // this is to elimate the online number statistics g->setRenameEnabled(0, true); g->startRename(0);}void EvaMainWindow::slotNewGroup(){ QString name(i18n( "new group")); int index = listView->getNumOfGroups(); listView->addGroup(name, index); EvaGroupItem *g = listView->findGroup(index); emit groupAdded(name, index); listView->clearSelection(); g->setSelected(true); g->setRenameEnabled(0, true); g->startRename(0);}void EvaMainWindow::slotDelGroup(){ EvaGroupItem *g = dynamic_cast<EvaGroupItem *>(listView->selectedItem()); if(!g) return; if(g->getGroupIndex() == 0) return; // first group cannot be deleted if(g->childCount()){ QMessageBox::information( this, i18n( "Delete group"), i18n( "Only empty group can be deleted.\n\n")); return; } int index = g->getGroupIndex(); listView->deleteGroup(index); emit groupDeleted(index);}void EvaMainWindow::slotIMChat(){ EvaBuddyItem *b = dynamic_cast<EvaBuddyItem *>(listView->selectedItem()); if(!b) return; emit requestChat(b->getQQ());}void EvaMainWindow::slotSendFile(){ EvaBuddyItem *b = dynamic_cast<EvaBuddyItem *>(listView->selectedItem()); if(!b) return; emit requestSendFile(b->getQQ());}void EvaMainWindow::slotUpdataLevel(){ EvaBuddyItem *b = dynamic_cast<EvaBuddyItem *>(listView->selectedItem()); if(!b) return; emit requestLevel(b->getQQ());}void EvaMainWindow::slotDetails(){ EvaBuddyItem *b = static_cast<EvaBuddyItem *>(listView->selectedItem()); if(!b) return; emit requestDetails(b->getQQ());}void EvaMainWindow::slotModifyMemo(){ EvaBuddyItem *b = static_cast<EvaBuddyItem *>(listView->selectedItem()); if(!b) return; emit requestModifyMemo(b->getQQ());}void EvaMainWindow::slotHistory(){ EvaBuddyItem *b = dynamic_cast<EvaBuddyItem *>(listView->selectedItem()); if(!b) return; emit requestHistory(b->getQQ());}void EvaMainWindow::slotShowOnlineBuddies(){ listView->showOnlineOnly(); emit showOnlineSelected();}void EvaMainWindow::slotShowAllBuddies(){ listView->showAll(); emit showAllSelected();}void EvaMainWindow::slotDelBuddy(){ EvaBuddyItem *b = dynamic_cast<EvaBuddyItem *>(listView->selectedItem()); if(!b) return; QString info = QString(i18n("Delete friend \"%1\" from your list, are you sure?\n\n")).arg(b->text(0)); if(QMessageBox::warning( this, i18n( "Delete a friend"), info, i18n( "Yes"),i18n( "No"), 0, 0, 1)) return; emit requestDelete(b->getQQ());}void EvaMainWindow::slotBuddyDoubleClick(QListViewItem *item, const QPoint & , int){ EvaBuddyItem *b = dynamic_cast<EvaBuddyItem *>(item); if(b){ //b->slotStopFlash(); EvaGroupItem *group = dynamic_cast<EvaGroupItem *>(((QListViewItem*)b)->parent()); if(!group) return; group->stopFlash(b->getQQ()); emit requestChat(b->getQQ()); }else{ EvaQunItem *q = dynamic_cast<EvaQunItem *>(item); if(q){ //q->slotStopFlash(); EvaGroupItem *group = dynamic_cast<EvaGroupItem *>(((QListViewItem*)q)->parent()); if(!group) return; group->stopFlash(q->getQunID()); emit requestQunChat(q->getQunID()); } }}void EvaMainWindow::slotSearch(){ emit requestSearch();}void EvaMainWindow::slotSystemMessages(){ emit requestSystemMessages();}void EvaMainWindow::slotListViewClicked( QListViewItem * item){ EvaGroupItem *g = dynamic_cast<EvaGroupItem *>(item); if(g){ g->setOpen(! g->isOpen()); }}void EvaMainWindow::clearQunList( ){ listView->clearQunList();}QRect EvaMainWindow::tipRect( const QPoint & /*pos*/ ){ // at the moment we only have one button which has tooltip, so just return the rect of the button return tbMyFace->rect();}QString EvaMainWindow::myInfoTip( ){ //const QQFriend *frd = (EvaMain::user->getFriendList()).getFriend(qqNum); if(!EvaMain::user->loginManager()->isCommandFinished(QQ_CMD_GET_USER_INFO)) return "Eva"; QString tip = "<qt>"; //EvaIPSeeker ipAddr(EvaGlobal::getDirPath().latin1()); QTextCodec *codec = QTextCodec::codecForName("GB18030"); QString nickName = codec->toUnicode(EvaMain::user->getDetails().at(ContactInfo::Info_nick).c_str()); //QString addr = codec->toUnicode(ipAddr.getIPLocation(frd->getIP()).c_str()); //if(addr.length()<4) addr = "0.0.0.0"; QString htmlName = nickName; EvaHtmlParser parser; parser.setAbsImagePath(EvaMain::images->getSmileyPath()); parser.convertToHtml(htmlName, false, true); QString signature = codec->toUnicode(EvaMain::user->getSignature().c_str()); if(signature.length() > 40) signature = signature.left(37) + "..."; if(!signature.isEmpty()) signature = "[" + signature + "]"; QString facePath = "<img src=\"" + EvaMain::images->getFacePath() + "/" + QString::number(EvaMain::images->getFaceFileIndex(atoi(EvaMain::user->getDetails().at(ContactInfo::Info_face).c_str()))) + ".png\"></img>"; if(EvaMain::user->hasUserHead() && EvaMain::uhManager){ QString uhFileName = EvaMain::uhManager->getFileName(EvaMain::user->getQQ()); if(!uhFileName.isEmpty()) facePath = "<img src=\"" + uhFileName + "\"></img>"; } int suns, moons, stars; EvaUtil::calcSuns(EvaMain::user->getLevel(), &suns, &moons, &stars); QString strSun = "<img src=\"" + EvaMain::images->getIconFullPath("TIME_SUN") + "\"></img>"; QString strMoon = "<img src=\"" + EvaMain::images->getIconFullPath("TIME_MOON") + "\"></img>"; QString strStar = "<img src=\"" + EvaMain::images->getIconFullPath("TIME_STAR") + "\"></img>"; QString level; for(int i=0; i<suns; i++){ level += strSun; } for(int i=0; i<moons; i++){ level += strMoon; } for(int i=0; i<stars; i++){ level += strStar; } tip += "<table width = 260><tr><td width=60 align = center valign = middle>" + facePath + "</td><td align = left valign = middle><b><font color = blue>"+ i18n("QQ") +": </font></b>"+ QString::number(EvaMain::user->getQQ()) +"<br><b><font color = blue>"+ i18n("Nickname:") + " </font></b>"+htmlName +"<br>" + signature + "<br><b><font color = blue>"+ i18n("Level") +": </font></b>"+ level + " (" + QString::number(EvaMain::user->getLevel()) +")<br><b><font color = blue>"+ i18n("Online Time") +": </font></b>"+ QString::number(EvaMain::user->getOnlineTime()/3600)+ " Hours<br><b><font color = blue>"+ i18n("Level Up") +": </font></b>"+ QString::number(EvaMain::user->getHoursToLevelUp())+ " Hours<br><b><font color = blue>" + "</td></tr></table>"; tip += "</qt>"; return tip;}void EvaMainWindow::slotIMQunChat( ){ EvaQunItem *q = dynamic_cast<EvaQunItem *>(listView->selectedItem()); if(!q) return; emit requestQunChat(q->getQunID());}void EvaMainWindow::slotQunDetails( ){ EvaQunItem *q = dynamic_cast<EvaQunItem *>(listView->selectedItem()); if(!q) return; emit requestQunDetails(q->getQunID());}void EvaMainWindow::slotQunExit( ){ EvaQunItem *q = dynamic_cast<EvaQunItem *>(listView->selectedItem()); if(!q) return; emit requestQunExit(q->getQunID());}void EvaMainWindow::slotQunCreate( ){ emit requestQunCreate();}void EvaMainWindow::slotQunHistory( ){ EvaQunItem *q = dynamic_cast<EvaQunItem *>(listView->selectedItem()); if(!q) return; emit requestQunHistory(q->getQunID());}void EvaMainWindow::resizeEvent( QResizeEvent * event ){ QSize s = event->size(); //listView->setColumnWidth(0, s.width() - 45); //listView->setColumnWidth(1, 45); listView->setColumnWidth(0, s.width());}void EvaMainWindow::moveEvent( QMoveEvent */*event*/ ){ setPosAndSize();}void EvaMainWindow::setPosAndSize(){ nowPosition = pos(); nowSize = size();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -