diff options
Diffstat (limited to 'kopete/protocols/oscar/aim')
26 files changed, 0 insertions, 4224 deletions
diff --git a/kopete/protocols/oscar/aim/CMakeLists.txt b/kopete/protocols/oscar/aim/CMakeLists.txt deleted file mode 100644 index 75230df3..00000000 --- a/kopete/protocols/oscar/aim/CMakeLists.txt +++ /dev/null @@ -1,47 +0,0 @@ -################################################# -# -# (C) 2010-2011 Serghei Amelian -# serghei (DOT) amelian (AT) gmail.com -# -# Improvements and feedback are welcome -# -# This file is released under GPL >= 2 -# -################################################# - -add_subdirectory( ui ) - -include_directories( - ${CMAKE_CURRENT_BINARY_DIR} - ${CMAKE_CURRENT_BINARY_DIR}/ui - ${CMAKE_CURRENT_SOURCE_DIR}/ui - ${CMAKE_CURRENT_SOURCE_DIR}/.. - ${CMAKE_CURRENT_SOURCE_DIR}/../liboscar - ${CMAKE_SOURCE_DIR}/kopete/libkopete - ${CMAKE_SOURCE_DIR}/kopete/libkopete/ui - ${TDE_INCLUDE_DIR} - ${TQT_INCLUDE_DIRS} -) - -link_directories( - ${TQT_LIBRARY_DIRS} -) - - -##### other data ################################ - -install( FILES - kopete_aim.desktop aim.protocol - DESTINATION ${SERVICES_INSTALL_DIR} ) - - -##### kopete_aim (module) ####################### - -tde_add_kpart( kopete_aim AUTOMOC - SOURCES - aimprotocol.cpp aimaccount.cpp aimcontact.cpp aimuserinfo.cpp - aimjoinchat.cpp aimchatsession.cpp - LINK - kopeteaimui-static kopete_oscar-shared - DESTINATION ${PLUGIN_INSTALL_DIR} -) diff --git a/kopete/protocols/oscar/aim/Makefile.am b/kopete/protocols/oscar/aim/Makefile.am deleted file mode 100644 index 5d1cc8b6..00000000 --- a/kopete/protocols/oscar/aim/Makefile.am +++ /dev/null @@ -1,18 +0,0 @@ -SUBDIRS = ui -METASOURCES = AUTO -AM_CPPFLAGS = -I$(srcdir)/../ \ - -I$(srcdir)/ui/ \ - -I$(top_builddir)/kopete/protocols/oscar/aim/ui \ - -I$(srcdir)/../liboscar \ - $(KOPETE_INCLUDES) $(all_includes) - -kde_module_LTLIBRARIES = kopete_aim.la - -kopete_aim_la_SOURCES = aimprotocol.cpp aimaccount.cpp aimcontact.cpp aimuserinfo.cpp aimjoinchat.cpp aimchatsession.cpp - -kopete_aim_la_LDFLAGS = -no-undefined -module $(KDE_PLUGIN) $(all_libraries) $(LIB_QT) -lDCOP $(LIB_TDECORE) $(LIB_TDEUI) -ltdefx $(LIB_TDEIO) -ltdetexteditor -kopete_aim_la_LIBADD = ../libkopete_oscar.la ui/libkopeteaimui.la \ - $(top_builddir)/kopete/libkopete/libkopete.la - -service_DATA = kopete_aim.desktop aim.protocol -servicedir = $(kde_servicesdir) diff --git a/kopete/protocols/oscar/aim/aim.protocol b/kopete/protocols/oscar/aim/aim.protocol deleted file mode 100644 index 0af5be59..00000000 --- a/kopete/protocols/oscar/aim/aim.protocol +++ /dev/null @@ -1,13 +0,0 @@ -[Protocol] -exec=kopete "%u" -protocol=aim -input=none -output=none -helper=true -listing=false -reading=false -writing=false -makedir=false -deleting=false -URIMode=rawuri -Icon=aim_protocol diff --git a/kopete/protocols/oscar/aim/aimaccount.cpp b/kopete/protocols/oscar/aim/aimaccount.cpp deleted file mode 100644 index f6be26b7..00000000 --- a/kopete/protocols/oscar/aim/aimaccount.cpp +++ /dev/null @@ -1,924 +0,0 @@ -/* - aimaccount.cpp - Oscar Protocol Plugin, AIM part - - Kopete (c) 2002-2003 by the Kopete developers <[email protected]> - - ************************************************************************* - * * - * 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 <tqdom.h> -#include <tqfile.h> - -#include <kdebug.h> -#include <tdeconfig.h> -#include <kdialogbase.h> -#include <tdelocale.h> -#include <tdepopupmenu.h> -#include <tdemessagebox.h> -#include <kmdcodec.h> - -#include "kopeteawayaction.h" -#include "kopetepassword.h" -#include "kopetestdaction.h" -#include "kopeteuiglobal.h" -#include "kopetecontactlist.h" -#include "kopetemetacontact.h" -#include "kopeteprotocol.h" -#include "kopetechatsessionmanager.h" -#include "kopeteview.h" -#include <kopeteuiglobal.h> - -#include "aimprotocol.h" -#include "aimaccount.h" -#include "aimchatsession.h" -#include "aimcontact.h" -#include "aimuserinfo.h" -#include "aimjoinchat.h" -#include "oscarmyselfcontact.h" -#include "oscarvisibilitydialog.h" - -#include "oscarutils.h" -#include "client.h" -#include "ssimanager.h" - - -const DWORD AIM_ONLINE = 0x0; -const DWORD AIM_AWAY = 0x1; - -namespace Kopete { class MetaContact; } - -AIMMyselfContact::AIMMyselfContact( AIMAccount *acct ) -: OscarMyselfContact( acct ) -{ - m_acct = acct; -} - -void AIMMyselfContact::userInfoUpdated() -{ - if ( ( details().userClass() & 32 ) == 0 ) - setOnlineStatus( static_cast<AIMProtocol*>( protocol() )->statusOnline ); //we're online - else - setOnlineStatus( static_cast<AIMProtocol*>( protocol() )->statusAway ); //we're away -} - -void AIMMyselfContact::setOwnProfile( const TQString& newProfile ) -{ - m_profileString = newProfile; - if ( m_acct->isConnected() ) - m_acct->engine()->updateProfile( newProfile ); -} - -TQString AIMMyselfContact::userProfile() -{ - return m_profileString; -} - -Kopete::ChatSession* AIMMyselfContact::manager( Kopete::Contact::CanCreateFlags canCreate, - Oscar::WORD exchange, const TQString& room ) -{ - kdDebug(OSCAR_AIM_DEBUG) << k_funcinfo << endl; - Kopete::ContactPtrList chatMembers; - chatMembers.append( this ); - Kopete::ChatSession* genericManager = 0L; - genericManager = Kopete::ChatSessionManager::self()->findChatSession( account()->myself(), chatMembers, protocol() ); - AIMChatSession* session = dynamic_cast<AIMChatSession*>( genericManager ); - - if ( !session && canCreate == Contact::CanCreate ) - { - session = new AIMChatSession( this, chatMembers, account()->protocol(), exchange, room ); - session->setEngine( m_acct->engine() ); - - connect( session, TQT_SIGNAL( messageSent( Kopete::Message&, Kopete::ChatSession* ) ), - this, TQT_SLOT( sendMessage( Kopete::Message&, Kopete::ChatSession* ) ) ); - m_chatRoomSessions.append( session ); - } - return session; -} - -void AIMMyselfContact::chatSessionDestroyed( Kopete::ChatSession* session ) -{ - m_chatRoomSessions.remove( session ); -} - -void AIMMyselfContact::sendMessage( Kopete::Message& message, Kopete::ChatSession* session ) -{ - kdDebug(OSCAR_AIM_DEBUG) << k_funcinfo << "sending a message" << endl; - //TODO: remove duplication - factor into a message utils class or something - Oscar::Message msg; - TQString s; - - if (message.plainBody().isEmpty()) // no text, do nothing - return; - //okay, now we need to change the message.escapedBody from real HTML to aimhtml. - //looking right now for docs on that "format". - //looks like everything except for alignment codes comes in the format of spans - - //font-style:italic -> <i> - //font-weight:600 -> <b> (anything > 400 should be <b>, 400 is not bold) - //text-decoration:underline -> <u> - //font-family: -> <font face=""> - //font-size:xxpt -> <font ptsize=xx> - - s=message.escapedBody(); - s.replace ( TQRegExp( TQString::fromLatin1("<span style=\"([^\"]*)\">([^<]*)</span>")), - TQString::fromLatin1("<style>\\1;\"\\2</style>")); - - s.replace ( TQRegExp( TQString::fromLatin1("<style>([^\"]*)font-style:italic;([^\"]*)\"([^<]*)</style>")), - TQString::fromLatin1("<i><style>\\1\\2\"\\3</style></i>")); - - s.replace ( TQRegExp( TQString::fromLatin1("<style>([^\"]*)font-weight:600;([^\"]*)\"([^<]*)</style>")), - TQString::fromLatin1("<b><style>\\1\\2\"\\3</style></b>")); - - s.replace ( TQRegExp( TQString::fromLatin1("<style>([^\"]*)text-decoration:underline;([^\"]*)\"([^<]*)</style>")), - TQString::fromLatin1("<u><style>\\1\\2\"\\3</style></u>")); - - s.replace ( TQRegExp( TQString::fromLatin1("<style>([^\"]*)font-family:([^;]*);([^\"]*)\"([^<]*)</style>")), - TQString::fromLatin1("<font face=\"\\2\"><style>\\1\\3\"\\4</style></font>")); - - s.replace ( TQRegExp( TQString::fromLatin1("<style>([^\"]*)font-size:([^p]*)pt;([^\"]*)\"([^<]*)</style>")), - TQString::fromLatin1("<font ptsize=\"\\2\"><style>\\1\\3\"\\4</style></font>")); - - s.replace ( TQRegExp( TQString::fromLatin1("<style>([^\"]*)color:([^;]*);([^\"]*)\"([^<]*)</style>")), - TQString::fromLatin1("<font color=\"\\2\"><style>\\1\\3\"\\4</style></font>")); - - s.replace ( TQRegExp( TQString::fromLatin1("<style>([^\"]*)\"([^<]*)</style>")), - TQString::fromLatin1("\\2")); - - //okay now change the <font ptsize="xx"> to <font size="xx"> - - //0-9 are size 1 - s.replace ( TQRegExp ( TQString::fromLatin1("<font ptsize=\"\\d\">")), - TQString::fromLatin1("<font size=\"1\">")); - //10-11 are size 2 - s.replace ( TQRegExp ( TQString::fromLatin1("<font ptsize=\"1[01]\">")), - TQString::fromLatin1("<font size=\"2\">")); - //12-13 are size 3 - s.replace ( TQRegExp ( TQString::fromLatin1("<font ptsize=\"1[23]\">")), - TQString::fromLatin1("<font size=\"3\">")); - //14-16 are size 4 - s.replace ( TQRegExp ( TQString::fromLatin1("<font ptsize=\"1[456]\">")), - TQString::fromLatin1("<font size=\"4\">")); - //17-22 are size 5 - s.replace ( TQRegExp ( TQString::fromLatin1("<font ptsize=\"(?:1[789]|2[012])\">")), - TQString::fromLatin1("<font size=\"5\">")); - //23-29 are size 6 - s.replace ( TQRegExp ( TQString::fromLatin1("<font ptsize=\"2[3456789]\">")),TQString::fromLatin1("<font size=\"6\">")); - //30- (and any I missed) are size 7 - s.replace ( TQRegExp ( TQString::fromLatin1("<font ptsize=\"[^\"]*\">")),TQString::fromLatin1("<font size=\"7\">")); - - s.replace ( TQRegExp ( TQString::fromLatin1("<br[ /]*>")), TQString::fromLatin1("<br>") ); - - kdDebug(14190) << k_funcinfo << "sending " - << s << endl; - - msg.setSender( contactId() ); - msg.setText( Oscar::Message::UserDefined, s, m_acct->defaultCodec() ); - msg.setTimestamp(message.timestamp()); - msg.setType(0x03); - msg.addProperty( Oscar::Message::ChatRoom ); - - AIMChatSession* aimSession = dynamic_cast<AIMChatSession*>( session ); - if ( !aimSession ) - { - kdWarning(OSCAR_AIM_DEBUG) << "couldn't convert to AIM chat room session!" << endl; - session->messageSucceeded(); - return; - } - msg.setExchange( aimSession->exchange() ); - msg.setChatRoom( aimSession->roomName() ); - - m_acct->engine()->sendMessage( msg ); - //session->appendMessage( message ); - session->messageSucceeded(); -} - - -AIMAccount::AIMAccount(Kopete::Protocol *parent, TQString accountID, const char *name) - : OscarAccount(parent, accountID, name, false) -{ - kdDebug(14152) << k_funcinfo << accountID << ": Called."<< endl; - AIMMyselfContact* mc = new AIMMyselfContact( this ); - setMyself( mc ); - myself()->setOnlineStatus( static_cast<AIMProtocol*>( parent )->statusOffline ); - TQString profile = configGroup()->readEntry( "Profile", - i18n( "Visit the Kopete website at <a href=\"http://kopete.kde.org\">http://kopete.kde.org</a>") ); - mc->setOwnProfile( profile ); - - m_joinChatDialog = 0; - m_visibilityDialog = 0; - TQObject::connect( Kopete::ContactList::self(), - TQT_SIGNAL( globalIdentityChanged( const TQString&, const TQVariant& ) ), - this, - TQT_SLOT( slotGlobalIdentityChanged( const TQString&, const TQVariant& ) ) ); - - TQObject::connect( engine(), TQT_SIGNAL( chatRoomConnected( WORD, const TQString& ) ), - this, TQT_SLOT( connectedToChatRoom( WORD, const TQString& ) ) ); - - TQObject::connect( engine(), TQT_SIGNAL( userJoinedChat( Oscar::WORD, const TQString&, const TQString& ) ), - this, TQT_SLOT( userJoinedChat( Oscar::WORD, const TQString&, const TQString& ) ) ); - - TQObject::connect( engine(), TQT_SIGNAL( userLeftChat( Oscar::WORD, const TQString&, const TQString& ) ), - this, TQT_SLOT( userLeftChat( Oscar::WORD, const TQString&, const TQString& ) ) ); - - TQObject::connect( this, TQT_SIGNAL( buddyIconChanged() ), this, TQT_SLOT( slotBuddyIconChanged() ) ); - -} - -AIMAccount::~AIMAccount() -{ -} - -OscarContact *AIMAccount::createNewContact( const TQString &contactId, Kopete::MetaContact *parentContact, const SSI& ssiItem ) -{ - AIMContact* contact = new AIMContact( this, contactId, parentContact, TQString(), ssiItem ); - if ( !ssiItem.alias().isEmpty() ) - contact->setProperty( Kopete::Global::Properties::self()->nickName(), ssiItem.alias() ); - - return contact; -} - -TQString AIMAccount::sanitizedMessage( const TQString& message ) -{ - TQDomDocument doc; - TQString domError; - int errLine = 0, errCol = 0; - doc.setContent( message, false, &domError, &errLine, &errCol ); - if ( !domError.isEmpty() ) //error parsing, do nothing - { - kdDebug(OSCAR_AIM_DEBUG) << k_funcinfo << "error from dom document conversion: " - << domError << endl; - return message; - } - else - { - kdDebug(OSCAR_AIM_DEBUG) << k_funcinfo << "conversion to dom document successful." - << "looking for font tags" << endl; - TQDomNodeList fontTagList = doc.elementsByTagName( "font" ); - if ( fontTagList.count() == 0 ) - { - kdDebug(OSCAR_AIM_DEBUG) << k_funcinfo << "No font tags found. Returning normal message" << endl; - return message; - } - else - { - kdDebug(OSCAR_AIM_DEBUG) << k_funcinfo << "Found font tags. Attempting replacement" << endl; - uint numFontTags = fontTagList.count(); - for ( uint i = 0; i < numFontTags; i++ ) - { - TQDomNode fontNode = fontTagList.item(i); - TQDomElement fontEl; - if ( !fontNode.isNull() && fontNode.isElement() ) - fontEl = fontTagList.item(i).toElement(); - else - continue; - if ( fontEl.hasAttribute( "back" ) ) - { - kdDebug(OSCAR_AIM_DEBUG) << k_funcinfo << "Found attribute to replace. Doing replacement" << endl; - TQString backgroundColor = fontEl.attribute( "back" ); - backgroundColor.insert( 0, "background-color: " ); - backgroundColor.append( ';' ); - fontEl.setAttribute( "style", backgroundColor ); - fontEl.removeAttribute( "back" ); - } - } - } - } - kdDebug(OSCAR_AIM_DEBUG) << k_funcinfo << "sanitized message is " << doc.toString(); - return doc.toString(); -} - -TDEActionMenu* AIMAccount::actionMenu() -{ -// kdDebug(14152) << k_funcinfo << accountId() << ": Called." << endl; - // mActionMenu is managed by Kopete::Account. It is deleted when - // it is no longer shown, so we can (safely) just make a new one here. - TDEActionMenu *mActionMenu = new TDEActionMenu(accountId(), - myself()->onlineStatus().iconFor( this ), this, "AIMAccount::mActionMenu"); - - AIMProtocol *p = AIMProtocol::protocol(); - - TQString accountNick = myself()->property( Kopete::Global::Properties::self()->nickName() ).value().toString(); - mActionMenu->popupMenu()->insertTitle( myself()->onlineStatus().iconFor( myself() ), - i18n( "%2 <%1>" ).arg( accountId(), accountNick )); - - mActionMenu->insert( new TDEAction( i18n("Online"), p->statusOnline.iconFor( this ), 0, this, - TQT_SLOT( slotGoOnline() ), mActionMenu, "AIMAccount::mActionOnline") ); - - TDEAction* mActionAway = new Kopete::AwayAction(i18n("Away"), p->statusAway.iconFor( this ), 0, this, - TQT_SLOT(slotGoAway( const TQString & )), this, "AIMAccount::mActionNA" ); - mActionAway->setEnabled( isConnected() ); - mActionMenu->insert( mActionAway ); - - TDEAction* mActionOffline = new TDEAction( i18n("Offline"), p->statusOffline.iconFor(this), 0, this, - TQT_SLOT( slotGoOffline() ), mActionMenu, "AIMAccount::mActionOffline"); - - mActionMenu->insert( mActionOffline ); - mActionMenu->popupMenu()->insertSeparator(); - - TDEAction* m_joinChatAction = new TDEAction( i18n( "Join Chat..." ), TQString(), 0, this, - TQT_SLOT( slotJoinChat() ), mActionMenu, "join_a_chat" ); - - mActionMenu->insert( new TDEToggleAction( i18n( "Set Visibility..." ), 0, 0, - this, TQT_SLOT( slotSetVisiblility() ), this, - "AIMAccount::mActionSetVisibility") ); - - mActionMenu->insert( m_joinChatAction ); - - TDEAction* m_editInfoAction = new TDEAction( i18n( "Edit User Info..." ), "identity", 0, - this, TQT_SLOT( slotEditInfo() ), mActionMenu, "actionEditInfo"); - - mActionMenu->insert( m_editInfoAction ); - - return mActionMenu; -} - -void AIMAccount::setAway(bool away, const TQString &awayReason) -{ -// kdDebug(14152) << k_funcinfo << accountId() << "reason is " << awayReason << endl; - if ( away ) - { - engine()->setStatus( Client::Away, awayReason ); - AIMMyselfContact* me = static_cast<AIMMyselfContact *> ( myself() ); - me->setLastAwayMessage(awayReason); - me->setProperty( Kopete::Global::Properties::self()->awayMessage(), awayReason ); - } - else - { - engine()->setStatus( Client::Online ); - AIMMyselfContact* me = static_cast<AIMMyselfContact *> ( myself() ); - me->setLastAwayMessage(TQString()); - me->removeProperty( Kopete::Global::Properties::self()->awayMessage() ); - } -} - -void AIMAccount::setOnlineStatus( const Kopete::OnlineStatus& status, const TQString& reason ) -{ - kdDebug(14152) << k_funcinfo << "called with reason = " << reason <<" status = "<< status.status() << endl;; - if ( status.status() == Kopete::OnlineStatus::Online ) - setAway( false ); - if ( status.status() == Kopete::OnlineStatus::Away ) - setAway( true, reason ); -} - - -void AIMAccount::setUserProfile(const TQString &profile) -{ - kdDebug(14152) << k_funcinfo << "called." << endl; - AIMMyselfContact* aimmc = dynamic_cast<AIMMyselfContact*>( myself() ); - if ( aimmc ) - aimmc->setOwnProfile( profile ); - configGroup()->writeEntry( TQString::fromLatin1( "Profile" ), profile ); -} - -void AIMAccount::slotEditInfo() -{ - if ( !isConnected() ) - { - KMessageBox::sorry( Kopete::UI::Global::mainWidget(), - i18n( "Editing your user info is not possible because " - "you are not connected." ), - i18n( "Unable to edit user info" ) ); - return; - } - AIMUserInfoDialog *myInfo = new AIMUserInfoDialog(static_cast<AIMContact *>( myself() ), this, true, 0L, "myInfo"); - myInfo->exec(); // This is a modal dialog -} - -void AIMAccount::slotGlobalIdentityChanged( const TQString& key, const TQVariant& value ) -{ - //do something with the photo - kdDebug(OSCAR_AIM_DEBUG) << k_funcinfo << "Global identity changed" << endl; - kdDebug(OSCAR_AIM_DEBUG) << k_funcinfo << "key: " << key << endl; - kdDebug(OSCAR_AIM_DEBUG) << k_funcinfo << "value: " << value << endl; - - if( !configGroup()->readBoolEntry("ExcludeGlobalIdentity", false) ) - { - if ( key == Kopete::Global::Properties::self()->nickName().key() ) - { - //edit ssi item to change alias (if possible) - } - - if ( key == Kopete::Global::Properties::self()->photo().key() ) - { - setBuddyIcon( value.toString() ); - } - } -} - -void AIMAccount::slotBuddyIconChanged() -{ - // need to disconnect because we could end up with many connections - TQObject::disconnect( engine(), TQT_SIGNAL( iconServerConnected() ), this, TQT_SLOT( slotBuddyIconChanged() ) ); - if ( !engine()->isActive() ) - { - TQObject::connect( engine(), TQT_SIGNAL( iconServerConnected() ), this, TQT_SLOT( slotBuddyIconChanged() ) ); - return; - } - - TQString photoPath = myself()->property( Kopete::Global::Properties::self()->photo() ).value().toString(); - - SSIManager* ssi = engine()->ssiManager(); - Oscar::SSI item = ssi->findItemForIconByRef( 1 ); - - if ( photoPath.isEmpty() ) - { - if ( item ) - { - kdDebug(OSCAR_AIM_DEBUG) << k_funcinfo << "Removing icon hash item from ssi" << endl; - Oscar::SSI s(item); - - //remove hash and alias - TQValueList<TLV> tList( item.tlvList() ); - TLV t = Oscar::findTLV( tList, 0x00D5 ); - if ( t ) - tList.remove( t ); - - item.setTLVList( tList ); - //s is old, item is new. modification will occur - engine()->modifySSIItem( s, item ); - } - } - else - { - TQFile iconFile( photoPath ); - iconFile.open( IO_ReadOnly ); - - KMD5 iconHash; - iconHash.update( *TQT_TQIODEVICE(&iconFile) ); - kdDebug(OSCAR_AIM_DEBUG) << k_funcinfo << "hash is :" << iconHash.hexDigest() << endl; - - //find old item, create updated item - if ( !item ) - { - kdDebug(OSCAR_AIM_DEBUG) << k_funcinfo << "no existing icon hash item in ssi. creating new" << endl; - - TLV t; - t.type = 0x00D5; - t.data.resize( 18 ); - t.data[0] = 0x00; - t.data[1] = 0x10; - memcpy(t.data.data() + 2, iconHash.rawDigest(), 16); - t.length = t.data.size(); - - TQValueList<Oscar::TLV> list; - list.append( t ); - - Oscar::SSI s( "1", 0, ssi->nextContactId(), ROSTER_BUDDYICONS, list ); - - //item is a non-valid ssi item, so the function will add an item - kdDebug(OSCAR_AIM_DEBUG) << k_funcinfo << "setting new icon item" << endl; - engine()->modifySSIItem( item, s ); - } - else - { //found an item - Oscar::SSI s(item); - kdDebug(OSCAR_AIM_DEBUG) << k_funcinfo << "modifying old item in ssi." << endl; - TQValueList<TLV> tList( item.tlvList() ); - - TLV t = Oscar::findTLV( tList, 0x00D5 ); - if ( t ) - tList.remove( t ); - else - t.type = 0x00D5; - - t.data.resize( 18 ); - t.data[0] = 0x00; - t.data[1] = 0x10; - memcpy(t.data.data() + 2, iconHash.rawDigest(), 16); - t.length = t.data.size(); - tList.append( t ); - - item.setTLVList( tList ); - //s is old, item is new. modification will occur - engine()->modifySSIItem( s, item ); - } - iconFile.close(); - } -} - -void AIMAccount::slotJoinChat() -{ - if ( !isConnected() ) - { - KMessageBox::sorry( Kopete::UI::Global::mainWidget(), - i18n( "Joining an AIM chat room is not possible because " - "you are not connected." ), - i18n( "Unable to Join AIM Chat Room" ) ); - return; - } - - //get the exchange info - //create the dialog - //join the chat room - if ( !m_joinChatDialog ) - { - m_joinChatDialog = new AIMJoinChatUI( this, false, Kopete::UI::Global::mainWidget() ); - TQObject::connect( m_joinChatDialog, TQT_SIGNAL( closing( int ) ), - this, TQT_SLOT( joinChatDialogClosed( int ) ) ); - TQValueList<int> list = engine()->chatExchangeList(); - m_joinChatDialog->setExchangeList( list ); - m_joinChatDialog->show(); - } - else - m_joinChatDialog->raise(); -} - -void AIMAccount::slotGoOnline() -{ - if ( myself()->onlineStatus().status() == Kopete::OnlineStatus::Away ) - { - kdDebug(14152) << k_funcinfo << accountId() << " was away. welcome back." << endl; - engine()->setStatus( Client::Online ); - myself()->removeProperty( Kopete::Global::Properties::self()->awayMessage() ); - } - else if ( myself()->onlineStatus().status() == Kopete::OnlineStatus::Offline ) - { - kdDebug(14152) << k_funcinfo << accountId() << " was offline. time to connect" << endl; - OscarAccount::connect(); - } - else - { - kdDebug(14152) << k_funcinfo << accountId() << " is already online, doing nothing" << endl; - } -} - -void AIMAccount::slotGoAway(const TQString &message) -{ - kdDebug(14152) << k_funcinfo << message << endl; - setAway(true, message); -} - -void AIMAccount::joinChatDialogClosed( int code ) -{ - if ( code == TQDialog::Accepted ) - { - //join the chat - kdDebug(14152) << k_funcinfo << "chat accepted." << endl; - engine()->joinChatRoom( m_joinChatDialog->roomName(), - m_joinChatDialog->exchange().toInt() ); - } - - m_joinChatDialog->delayedDestruct(); - m_joinChatDialog = 0L; -} - -void AIMAccount::loginActions() -{ - OscarAccount::loginActions(); - - using namespace AIM::PrivacySettings; - int privacySetting = this->configGroup()->readNumEntry( "PrivacySetting", AllowAll ); - this->setPrivacySettings( privacySetting ); -} - -void AIMAccount::disconnected( DisconnectReason reason ) -{ - kdDebug( OSCAR_AIM_DEBUG ) << k_funcinfo << "Attempting to set status offline" << endl; - myself()->setOnlineStatus( static_cast<AIMProtocol*>( protocol() )->statusOffline ); - - TQDictIterator<Kopete::Contact> it( contacts() ); - for( ; it.current(); ++it ) - { - OscarContact* oc = dynamic_cast<OscarContact*>( it.current() ); - if ( oc ) - oc->setOnlineStatus( static_cast<AIMProtocol*>( protocol() )->statusOffline ); - } - - OscarAccount::disconnected( reason ); -} - -void AIMAccount::messageReceived( const Oscar::Message& message ) -{ - kdDebug(14152) << k_funcinfo << " Got a message, calling OscarAccount::messageReceived" << endl; - // Want to call the parent to do everything else - if ( message.type() != 0x0003 ) - { - OscarAccount::messageReceived(message); - - // Check to see if our status is away, and send an away message - // Might be duplicate code from the parent class to get some needed information - // Perhaps a refactoring is needed. - kdDebug(14152) << k_funcinfo << "Checking to see if I'm online.." << endl; - if( myself()->onlineStatus().status() == Kopete::OnlineStatus::Away ) - { - TQString sender = Oscar::normalize( message.sender() ); - AIMContact* aimSender = static_cast<AIMContact *> ( contacts()[sender] ); //should exist now - if ( !aimSender ) - { - kdWarning(OSCAR_RAW_DEBUG) << "For some reason, could not get the contact " - << "That this message is from: " << message.sender() << ", Discarding message" << endl; - return; - } - // Create, or get, a chat session with the contact - Kopete::ChatSession* chatSession = aimSender->manager( Kopete::Contact::CanCreate ); - - // get the away message we have set - AIMMyselfContact* myContact = static_cast<AIMMyselfContact *> ( myself() ); - TQString msg = myContact->lastAwayMessage(); - kdDebug(14152) << k_funcinfo << "Got away message: " << msg << endl; - // Create the message - Kopete::Message chatMessage( myself(), aimSender, msg, Kopete::Message::Outbound, - Kopete::Message::RichText ); - kdDebug(14152) << k_funcinfo << "Sending autoresponse" << endl; - // Send the message - aimSender->sendAutoResponse( chatMessage ); - } - } - - if ( message.type() == 0x0003 ) - { - kdDebug(OSCAR_AIM_DEBUG) << k_funcinfo << "have chat message" << endl; - //handle chat room messages seperately - TQValueList<Kopete::ChatSession*> chats = Kopete::ChatSessionManager::self()->sessions(); - TQValueList<Kopete::ChatSession*>::iterator it, itEnd = chats.end(); - for ( it = chats.begin(); it != itEnd; ++it ) - { - Kopete::ChatSession* kcs = ( *it ); - AIMChatSession* session = dynamic_cast<AIMChatSession*>( kcs ); - if ( !session ) - continue; - - if ( session->exchange() == message.exchange() && - Oscar::normalize( session->roomName() ) == - Oscar::normalize( message.chatRoom() ) ) - { - kdDebug(OSCAR_AIM_DEBUG) << k_funcinfo << "found chat session for chat room" << endl; - Kopete::Contact* ocSender = contacts()[Oscar::normalize( message.sender() )]; - //sanitize; - TQString sanitizedMsg = sanitizedMessage( message.text( defaultCodec() ) ); - - Kopete::ContactPtrList me; - me.append( myself() ); - Kopete::Message chatMessage( message.timestamp(), ocSender, me, sanitizedMsg, - Kopete::Message::Inbound, Kopete::Message::RichText ); - - session->appendMessage( chatMessage ); - } - } - } -} - -void AIMAccount::connectedToChatRoom( WORD exchange, const TQString& room ) -{ - kdDebug(OSCAR_AIM_DEBUG) << k_funcinfo << "Creating chat room session" << endl; - Kopete::ContactPtrList emptyList; - AIMMyselfContact* me = static_cast<AIMMyselfContact*>( myself() ); - AIMChatSession* session = dynamic_cast<AIMChatSession*>( me->manager( Kopete::Contact::CanCreate, - exchange, room ) ); - session->setDisplayName( room ); - if ( session->view( true ) ) - session->raiseView(); -} - -void AIMAccount::userJoinedChat( WORD exchange, const TQString& room, const TQString& contact ) -{ - if ( Oscar::normalize( contact ) == Oscar::normalize( myself()->contactId() ) ) - return; - - kdDebug(OSCAR_AIM_DEBUG) << k_funcinfo << "user " << contact << " has joined the chat" << endl; - TQValueList<Kopete::ChatSession*> chats = Kopete::ChatSessionManager::self()->sessions(); - TQValueList<Kopete::ChatSession*>::iterator it, itEnd = chats.end(); - for ( it = chats.begin(); it != itEnd; ++it ) - { - Kopete::ChatSession* kcs = ( *it ); - AIMChatSession* session = dynamic_cast<AIMChatSession*>( kcs ); - if ( !session ) - continue; - - kdDebug(OSCAR_AIM_DEBUG) << k_funcinfo << session->exchange() << " " << exchange << endl; - kdDebug(OSCAR_AIM_DEBUG) << k_funcinfo << session->roomName() << " " << room << endl; - if ( session->exchange() == exchange && session->roomName() == room ) - { - kdDebug(OSCAR_AIM_DEBUG) << k_funcinfo << "found correct chat session" << endl; - Kopete::Contact* c; - if ( contacts()[Oscar::normalize( contact )] ) - c = contacts()[Oscar::normalize( contact )]; - else - { - Kopete::MetaContact* mc = addContact( Oscar::normalize( contact ), - contact, 0, Kopete::Account::Temporary ); - if ( !mc ) - kdWarning(OSCAR_AIM_DEBUG) << "Unable to add contact for chat room" << endl; - - c = mc->contacts().first(); - c->setNickName( contact ); - } - - kdDebug(OSCAR_AIM_DEBUG) << k_funcinfo << "adding contact" << endl; - session->addContact( c, static_cast<AIMProtocol*>( protocol() )->statusOnline, true /* suppress */ ); - } - } -} - -void AIMAccount::userLeftChat( WORD exchange, const TQString& room, const TQString& contact ) -{ - if ( Oscar::normalize( contact ) == Oscar::normalize( myself()->contactId() ) ) - return; - - TQValueList<Kopete::ChatSession*> chats = Kopete::ChatSessionManager::self()->sessions(); - TQValueList<Kopete::ChatSession*>::iterator it, itEnd = chats.end(); - for ( it = chats.begin(); it != itEnd; ++it ) - { - Kopete::ChatSession* kcs = ( *it ); - AIMChatSession* session = dynamic_cast<AIMChatSession*>( kcs ); - if ( !session ) - continue; - - if ( session->exchange() == exchange && session->roomName() == room ) - { - //delete temp contact - Kopete::Contact* c = contacts()[Oscar::normalize( contact )]; - if ( !c ) - { - kdWarning(OSCAR_AIM_DEBUG) << k_funcinfo << "couldn't find the contact that's left the chat!" << endl; - continue; - } - session->removeContact( c ); - Kopete::MetaContact* mc = c->metaContact(); - if ( mc->isTemporary() ) - { - mc->removeContact( c ); - delete c; - delete mc; - } - } - } -} - - -void AIMAccount::connectWithPassword( const TQString & ) -{ - kdDebug(14152) << k_funcinfo << "accountId='" << accountId() << "'" << endl; - - // Get the screen name for this account - TQString screenName = accountId(); - TQString server = configGroup()->readEntry( "Server", TQString::fromLatin1( "login.oscar.aol.com" ) ); - uint port = configGroup()->readNumEntry( "Port", 5190 ); - - Connection* c = setupConnection( server, port ); - - TQString _password = password().cachedValue(); - if ( _password.isEmpty() ) - { - kdDebug(14150) << "Kopete is unable to attempt to sign-on to the " - << "AIM network because no password was specified in the " - << "preferences." << endl; - } - else if ( myself()->onlineStatus() == static_cast<AIMProtocol*>( protocol() )->statusOffline ) - { - kdDebug(14152) << k_funcinfo << "Logging in as " << accountId() << endl ; - updateVersionUpdaterStamp(); - engine()->start( server, port, accountId(), _password ); - engine()->connectToServer( c, server, true /* doAuth */ ); - myself()->setOnlineStatus( static_cast<AIMProtocol*>( protocol() )->statusConnecting ); - } -} - -void AIMAccount::slotSetVisiblility() -{ - if( !isConnected() ) - { - KMessageBox::sorry( Kopete::UI::Global::mainWidget(), - i18n("You must be online to set users visibility."), - i18n("ICQ Plugin") ); - return; - } - - if ( !m_visibilityDialog ) - { - m_visibilityDialog = new OscarVisibilityDialog( engine(), Kopete::UI::Global::mainWidget() ); - TQObject::connect( m_visibilityDialog, TQT_SIGNAL( closing() ), - this, TQT_SLOT( slotVisibilityDialogClosed() ) ); - - //add all contacts; - OscarVisibilityDialog::ContactMap contactMap; - TQMap<TQString, TQString> revContactMap; - - TQValueList<Oscar::SSI> contactList = engine()->ssiManager()->contactList(); - TQValueList<Oscar::SSI>::const_iterator it, cEnd = contactList.constEnd(); - - for ( it = contactList.constBegin(); it != cEnd; ++it ) - { - TQString contactId = ( *it ).name(); - - OscarContact* oc = dynamic_cast<OscarContact*>( contacts()[( *it ).name()] ); - if ( oc ) - { - contactMap.insert( oc->nickName(), contactId ); - revContactMap.insert( contactId, oc->nickName() ); - } - else - { - contactMap.insert( contactId, contactId ); - revContactMap.insert( contactId, contactId ); - } - } - m_visibilityDialog->addContacts( contactMap ); - - //add contacts from visible list - TQStringList tmpList; - - contactList = engine()->ssiManager()->visibleList(); - cEnd = contactList.constEnd(); - - for ( it = contactList.constBegin(); it != cEnd; ++it ) - tmpList.append( revContactMap[( *it ).name()] ); - - m_visibilityDialog->addVisibleContacts( tmpList ); - - //add contacts from invisible list - tmpList.clear(); - - contactList = engine()->ssiManager()->invisibleList(); - cEnd = contactList.constEnd(); - - for ( it = contactList.constBegin(); it != cEnd; ++it ) - tmpList.append( revContactMap[( *it ).name()] ); - - m_visibilityDialog->addInvisibleContacts( tmpList ); - - m_visibilityDialog->resize( 550, 350 ); - m_visibilityDialog->show(); - } - else - { - m_visibilityDialog->raise(); - } -} - -void AIMAccount::slotVisibilityDialogClosed() -{ - m_visibilityDialog->delayedDestruct(); - m_visibilityDialog = 0L; -} - -void AIMAccount::setPrivacySettings( int privacy ) -{ - using namespace AIM::PrivacySettings; - - BYTE privacyByte = 0x01; - DWORD userClasses = 0xFFFFFFFF; - - switch ( privacy ) - { - case AllowAll: - privacyByte = 0x01; - break; - case BlockAll: - privacyByte = 0x02; - break; - case AllowPremitList: - privacyByte = 0x03; - break; - case BlockDenyList: - privacyByte = 0x04; - break; - case AllowMyContacts: - privacyByte = 0x05; - break; - case BlockAIM: - privacyByte = 0x01; - userClasses = 0x00000004; - break; - } - - this->setPrivacyTLVs( privacyByte, userClasses ); -} - -void AIMAccount::setPrivacyTLVs( BYTE privacy, DWORD userClasses ) -{ - SSIManager* ssi = engine()->ssiManager(); - Oscar::SSI item = ssi->findItem( TQString(), ROSTER_VISIBILITY ); - - TQValueList<Oscar::TLV> tList; - - tList.append( TLV( 0x00CA, 1, (char *)&privacy ) ); - tList.append( TLV( 0x00CB, sizeof(userClasses), (char *)&userClasses ) ); - - if ( !item ) - { - kdDebug(OSCAR_AIM_DEBUG) << k_funcinfo << "Adding new privacy TLV item" << endl; - Oscar::SSI s( TQString(), 0, ssi->nextContactId(), ROSTER_VISIBILITY, tList ); - engine()->modifySSIItem( item, s ); - } - else - { //found an item - Oscar::SSI s(item); - - if ( Oscar::uptateTLVs( s, tList ) == true ) - { - kdDebug(OSCAR_AIM_DEBUG) << k_funcinfo << "Updating privacy TLV item" << endl; - engine()->modifySSIItem( item, s ); - } - } -} - -#include "aimaccount.moc" -//kate: tab-width 4; indent-mode csands; diff --git a/kopete/protocols/oscar/aim/aimaccount.h b/kopete/protocols/oscar/aim/aimaccount.h deleted file mode 100644 index 63adeac7..00000000 --- a/kopete/protocols/oscar/aim/aimaccount.h +++ /dev/null @@ -1,148 +0,0 @@ -/* - AIMAccount - Oscar Protocol Account - - Copyright (c) 2002 by Chris TenHarmsel <[email protected]> - - Kopete (c) 2002 by the Kopete developers <[email protected]> - - ************************************************************************* - * * - * 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. * - * * - ************************************************************************* - -*/ - -#ifndef AIMACCOUNT_H -#define AIMACCOUNT_H - -#include <tqdict.h> -#include <tqstring.h> -#include <tqwidget.h> -#include "oscartypeclasses.h" - -#include "oscaraccount.h" -#include "oscarmyselfcontact.h" - -namespace AIM -{ - namespace PrivacySettings - { - enum { AllowAll = 0, AllowMyContacts, AllowPremitList, BlockAll, BlockAIM, BlockDenyList }; - } -} - -namespace Kopete -{ -class Contact; -class Group; -class ChatSession; -} - -class TDEAction; -class OscarContact; -class AIMContact; -class AIMAccount; -class AIMJoinChatUI; -class AIMChatSession; -class OscarVisibilityDialog; - -class AIMMyselfContact : public OscarMyselfContact -{ -Q_OBJECT - -public: - AIMMyselfContact( AIMAccount *acct ); - void userInfoUpdated(); - void setOwnProfile( const TQString& newProfile ); - TQString userProfile(); - void setLastAwayMessage( const TQString& msg) {m_lastAwayMessage = msg;} - TQString lastAwayMessage() { return m_lastAwayMessage; }; - - virtual Kopete::ChatSession* manager( Kopete::Contact::CanCreateFlags = Kopete::Contact::CannotCreate, - WORD exchange = 0, const TQString& room = TQString()); - -public slots: - void sendMessage( Kopete::Message&, Kopete::ChatSession* session ); - void chatSessionDestroyed( Kopete::ChatSession* ); - -private: - TQString m_profileString; - AIMAccount* m_acct; - /** - * There has GOT to be a better way to get this away message - */ - TQString m_lastAwayMessage; - TQValueList<Kopete::ChatSession*> m_chatRoomSessions; - - -}; - -class AIMAccount : public OscarAccount -{ -Q_OBJECT - - -public: - AIMAccount(Kopete::Protocol *parent, TQString accountID, const char *name=0L); - virtual ~AIMAccount(); - - // Accessor method for the action menu - virtual TDEActionMenu* actionMenu(); - - void setAway(bool away, const TQString &awayReason = TQString() ); - - virtual void connectWithPassword( const TQString &password ); - - void setUserProfile(const TQString &profile); - - void setPrivacySettings( int privacy ); - -public slots: - /** Reimplementation from Kopete::Account */ - void setOnlineStatus( const Kopete::OnlineStatus& status, const TQString& reason = TQString() ); - void slotEditInfo(); - void slotGoOnline(); - - void slotGlobalIdentityChanged( const TQString&, const TQVariant& ); - void slotBuddyIconChanged(); - - void slotJoinChat(); - -protected slots: - void slotGoAway(const TQString&); - void joinChatDialogClosed( int ); - - virtual void loginActions(); - virtual void disconnected( Kopete::Account::DisconnectReason reason ); - virtual void messageReceived( const Oscar::Message& message ); - - void connectedToChatRoom( WORD exchange, const TQString& roomName ); - void userJoinedChat( Oscar::WORD exchange, const TQString& room, const TQString& contact ); - void userLeftChat( Oscar::WORD exchange, const TQString& room, const TQString& contact ); - - void slotSetVisiblility(); - void slotVisibilityDialogClosed(); - -protected: - - /** - * Implement virtual method from OscarAccount - * This allows OscarAccount to take care of adding new contacts - */ - OscarContact *createNewContact( const TQString &contactId, Kopete::MetaContact *parentContact, const SSI& ssiItem ); - - TQString sanitizedMessage( const TQString& message ); - -private: - // Set privacy tlv item - void setPrivacyTLVs( BYTE privacy, DWORD userClasses ); - - AIMJoinChatUI* m_joinChatDialog; - OscarVisibilityDialog* m_visibilityDialog; -}; -#endif -//kate: tab-width 4; indent-mode csands; diff --git a/kopete/protocols/oscar/aim/aimchatsession.cpp b/kopete/protocols/oscar/aim/aimchatsession.cpp deleted file mode 100644 index 10938a6a..00000000 --- a/kopete/protocols/oscar/aim/aimchatsession.cpp +++ /dev/null @@ -1,73 +0,0 @@ -// aimchatsession.cpp - -// Copyright (C) 2005 Matt Rogers <[email protected]> - -// 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., 51 Franklin Steet, Fifth Floor, Boston, MA -// 02110-1301, USA. - - -#include "aimchatsession.h" -#include "kopetecontact.h" -#include "kopetechatsessionmanager.h" -#include "kopeteprotocol.h" -#include "client.h" - -AIMChatSession::AIMChatSession( const Kopete::Contact* user, Kopete::ContactPtrList others, - Kopete::Protocol* protocol, Oscar::WORD exchange, - const TQString& room ) - - : Kopete::ChatSession( user, others, protocol, "AIMChatSession" ) -{ - Kopete::ChatSessionManager::self()->registerChatSession( this ); - setInstance( protocol->instance() ); - setMayInvite( false ); - m_exchange = exchange; - m_roomName = room; - m_engine = 0; -} - -AIMChatSession::~AIMChatSession() -{ - m_engine->disconnectChatRoom( m_exchange, m_roomName ); -} - -void AIMChatSession::setEngine( Client* engine ) -{ - m_engine = engine; -} - -TQString AIMChatSession::roomName() const -{ - - return m_roomName; -} - -void AIMChatSession::setRoomName( const TQString& room ) -{ - m_roomName = room; -} - -Oscar::WORD AIMChatSession::exchange() const -{ - return m_exchange; -} - -void AIMChatSession::setExchange( Oscar::WORD exchange ) -{ - m_exchange = exchange; -} - - -#include "aimchatsession.moc" diff --git a/kopete/protocols/oscar/aim/aimchatsession.h b/kopete/protocols/oscar/aim/aimchatsession.h deleted file mode 100644 index b4e78e3d..00000000 --- a/kopete/protocols/oscar/aim/aimchatsession.h +++ /dev/null @@ -1,78 +0,0 @@ -// aimchatsession.h -// Copyright (C) 2005 Matt Rogers <[email protected]> - -// 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., 51 Franklin Steet, Fifth Floor, Boston, MA -// 02110-1301, USA. - -#ifndef AIMCHATSESSION_H -#define AIMCHATSESSION_H - -#include "kopetechatsession.h" -#include "oscartypes.h" - -class Client; - -class AIMChatSession : public Kopete::ChatSession -{ -Q_OBJECT - -public: - AIMChatSession( const Kopete::Contact* contact, Kopete::ContactPtrList others, - Kopete::Protocol* protocol, Oscar::WORD exchange = 0, - const TQString& room = TQString() ); - virtual ~AIMChatSession(); - - /** - * Set the engine to use so that we can disconnect from the chat service - * properly - */ - void setEngine( Client* engine ); - - /** - * Get the name of the AIM chat room represented by - * this ChatSession object - * @return the name of the chat room - */ - TQString roomName() const; - - /** - * Set the name of the AIM chat room represented by - * this ChatSession object - * @param room the name of the AIM chat room - */ - void setRoomName( const TQString& room ); - - /** - * Get the exchange of the AIM chat room represented by - * this ChatSession object - * @return the exchange of the chat room - */ - Oscar::WORD exchange() const; - - /** - * Set the exchange of the AIM chat room represented by - * this ChatSession object - * @param exchange the exchange of the AIM chat room - */ - void setExchange( Oscar::WORD exchange ); - -private: - TQString m_roomName; - Oscar::WORD m_exchange; - Client* m_engine; -}; - - -#endif diff --git a/kopete/protocols/oscar/aim/aimcontact.cpp b/kopete/protocols/oscar/aim/aimcontact.cpp deleted file mode 100644 index 2fa79bf1..00000000 --- a/kopete/protocols/oscar/aim/aimcontact.cpp +++ /dev/null @@ -1,520 +0,0 @@ -/* - aimcontact.cpp - Oscar Protocol Plugin - - Copyright (c) 2003 by Will Stephenson - Kopete (c) 2002-2004 by the Kopete developers <[email protected]> - - ************************************************************************* - * * - * 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 <time.h> - -#include <tqimage.h> -#include <tqregexp.h> -#include <tqtimer.h> -#include <tqtextcodec.h> - -#include <tdeapplication.h> -#include <tdeactionclasses.h> -#include <tdelocale.h> -#include <kdebug.h> -#include <tdemessagebox.h> - -#include "kopeteaway.h" -#include "kopetechatsession.h" -#include "kopeteuiglobal.h" -#include "kopetemetacontact.h" - -//liboscar -#include "client.h" -#include "oscartypes.h" -#include "oscarutils.h" -#include "ssimanager.h" - -#include "aimprotocol.h" -#include "aimuserinfo.h" -#include "aimcontact.h" -#include "aimaccount.h" - -AIMContact::AIMContact( Kopete::Account* account, const TQString& name, Kopete::MetaContact* parent, - const TQString& icon, const Oscar::SSI& ssiItem ) -: OscarContact(account, name, parent, icon, ssiItem ) -{ - mProtocol=static_cast<AIMProtocol *>(protocol()); - setOnlineStatus( mProtocol->statusOffline ); - - m_infoDialog = 0L; - m_warnUserAction = 0L; - mUserProfile=""; - m_haveAwayMessage = false; - m_mobile = false; - // Set the last autoresponse time to the current time yesterday - m_lastAutoresponseTime = TQDateTime::currentDateTime().addDays(-1); - - TQObject::connect( mAccount->engine(), TQT_SIGNAL( receivedUserInfo( const TQString&, const UserDetails& ) ), - this, TQT_SLOT( userInfoUpdated( const TQString&, const UserDetails& ) ) ); - TQObject::connect( mAccount->engine(), TQT_SIGNAL( userIsOffline( const TQString& ) ), - this, TQT_SLOT( userOffline( const TQString& ) ) ); - TQObject::connect( mAccount->engine(), TQT_SIGNAL( receivedAwayMessage( const TQString&, const TQString& ) ), - this, TQT_SLOT( updateAwayMessage( const TQString&, const TQString& ) ) ); - TQObject::connect( mAccount->engine(), TQT_SIGNAL( receivedProfile( const TQString&, const TQString& ) ), - this, TQT_SLOT( updateProfile( const TQString&, const TQString& ) ) ); - TQObject::connect( mAccount->engine(), TQT_SIGNAL( userWarned( const TQString&, TQ_UINT16, TQ_UINT16 ) ), - this, TQT_SLOT( gotWarning( const TQString&, TQ_UINT16, TQ_UINT16 ) ) ); - TQObject::connect( mAccount->engine(), TQT_SIGNAL( haveIconForContact( const TQString&, TQByteArray ) ), - this, TQT_SLOT( haveIcon( const TQString&, TQByteArray ) ) ); - TQObject::connect( mAccount->engine(), TQT_SIGNAL( iconServerConnected() ), - this, TQT_SLOT( requestBuddyIcon() ) ); - TQObject::connect( this, TQT_SIGNAL( featuresUpdated() ), this, TQT_SLOT( updateFeatures() ) ); -} - -AIMContact::~AIMContact() -{ -} - -bool AIMContact::isReachable() -{ - return true; -} - -TQPtrList<TDEAction> *AIMContact::customContextMenuActions() -{ - - TQPtrList<TDEAction> *actionCollection = new TQPtrList<TDEAction>(); - if ( !m_warnUserAction ) - { - m_warnUserAction = new TDEAction( i18n( "&Warn User" ), 0, this, TQT_SLOT( warnUser() ), this, "warnAction" ); - } - m_actionVisibleTo = new TDEToggleAction(i18n("Always &Visible To"), "", 0, - this, TQT_SLOT(slotVisibleTo()), this, "actionVisibleTo"); - m_actionInvisibleTo = new TDEToggleAction(i18n("Always &Invisible To"), "", 0, - this, TQT_SLOT(slotInvisibleTo()), this, "actionInvisibleTo"); - - bool on = account()->isConnected(); - - m_warnUserAction->setEnabled( on ); - - m_actionVisibleTo->setEnabled(on); - m_actionInvisibleTo->setEnabled(on); - - SSIManager* ssi = account()->engine()->ssiManager(); - m_actionVisibleTo->setChecked( ssi->findItem( m_ssiItem.name(), ROSTER_VISIBLE )); - m_actionInvisibleTo->setChecked( ssi->findItem( m_ssiItem.name(), ROSTER_INVISIBLE )); - - actionCollection->append( m_warnUserAction ); - - actionCollection->append(m_actionVisibleTo); - actionCollection->append(m_actionInvisibleTo); - - - return actionCollection; -} - -const TQString AIMContact::awayMessage() -{ - return property(mProtocol->awayMessage).value().toString(); -} - -void AIMContact::setAwayMessage(const TQString &message) -{ - kdDebug(14152) << k_funcinfo << - "Called for '" << contactId() << "', away msg='" << message << "'" << endl; - TQString filteredMessage = message; - filteredMessage.replace( - TQRegExp(TQString::fromLatin1("<[hH][tT][mM][lL].*>(.*)</[hH][tT][mM][lL]>")), - TQString::fromLatin1("\\1")); - filteredMessage.replace( - TQRegExp(TQString::fromLatin1("<[bB][oO][dD][yY].*>(.*)</[bB][oO][dD][yY]>")), - TQString::fromLatin1("\\1") ); - TQRegExp fontRemover( TQString::fromLatin1("<[fF][oO][nN][tT].*>(.*)</[fF][oO][nN][tT]>") ); - fontRemover.setMinimal(true); - while ( filteredMessage.find( fontRemover ) != -1 ) - filteredMessage.replace( fontRemover, TQString::fromLatin1("\\1") ); - setProperty(mProtocol->awayMessage, filteredMessage); -} - -int AIMContact::warningLevel() const -{ - return m_warningLevel; -} - -void AIMContact::updateSSIItem() -{ - if ( m_ssiItem.type() != 0xFFFF && m_ssiItem.waitingAuth() == false && - onlineStatus() == Kopete::OnlineStatus::Unknown ) - { - //make sure they're offline - setOnlineStatus( static_cast<AIMProtocol*>( protocol() )->statusOffline ); - } -} - -void AIMContact::slotUserInfo() -{ - if ( !m_infoDialog) - { - m_infoDialog = new AIMUserInfoDialog( this, static_cast<AIMAccount*>( account() ), false, Kopete::UI::Global::mainWidget(), 0 ); - if( !m_infoDialog ) - return; - connect( m_infoDialog, TQT_SIGNAL( finished() ), this, TQT_SLOT( closeUserInfoDialog() ) ); - m_infoDialog->show(); - if ( mAccount->isConnected() ) - { - mAccount->engine()->requestAIMProfile( contactId() ); - mAccount->engine()->requestAIMAwayMessage( contactId() ); - } - } - else - m_infoDialog->raise(); -} - -void AIMContact::userInfoUpdated( const TQString& contact, const UserDetails& details ) -{ - if ( Oscar::normalize( contact ) != Oscar::normalize( contactId() ) ) - return; - - kdDebug(OSCAR_RAW_DEBUG) << k_funcinfo << contact << endl; - - //if they don't have an SSI alias, make sure we use the capitalization from the - //server so their contact id looks all pretty. - TQString nickname = property( Kopete::Global::Properties::self()->nickName() ).value().toString(); - if ( nickname.isEmpty() || Oscar::normalize( nickname ) == Oscar::normalize( contact ) ) - setNickName( contact ); - - ( details.userClass() & CLASS_WIRELESS ) ? m_mobile = true : m_mobile = false; - - if ( ( details.userClass() & CLASS_AWAY ) == STATUS_ONLINE ) - { - if ( m_mobile ) - { - kdDebug(OSCAR_RAW_DEBUG) << k_funcinfo << "Contact: " << contact << " is mobile-online." << endl; - setOnlineStatus( mProtocol->statusWirelessOnline ); - } - else - { - kdDebug(OSCAR_RAW_DEBUG) << k_funcinfo << "Contact: " << contact << " is online." << endl; - setOnlineStatus( mProtocol->statusOnline ); //we're online - } - removeProperty( mProtocol->awayMessage ); - m_haveAwayMessage = false; - } - else if ( ( details.userClass() & CLASS_AWAY ) ) // STATUS_AWAY - { - if ( m_mobile ) - { - kdDebug(OSCAR_RAW_DEBUG) << k_funcinfo << "Contact: " << contact << " is mobile-away." << endl; - setOnlineStatus( mProtocol->statusWirelessOnline ); - } - else - { - kdDebug(OSCAR_RAW_DEBUG) << k_funcinfo << "Contact: " << contact << " is away." << endl; - setOnlineStatus( mProtocol->statusAway ); //we're away - } - if ( !m_haveAwayMessage ) //prevent cyclic away message requests - { - mAccount->engine()->requestAIMAwayMessage( contactId() ); - m_haveAwayMessage = true; - } - } - else - { - kdDebug(OSCAR_RAW_DEBUG) << k_funcinfo << "Contact: " << contact << " class " << details.userClass() << " is unhandled... defaulting to away." << endl; - setOnlineStatus( mProtocol->statusAway ); //we're away - if ( !m_haveAwayMessage ) //prevent cyclic away message requests - { - mAccount->engine()->requestAIMAwayMessage( contactId() ); - m_haveAwayMessage = true; - } - } - - if ( details.buddyIconHash().size() > 0 && details.buddyIconHash() != m_details.buddyIconHash() ) - { - if ( !mAccount->engine()->hasIconConnection() ) - mAccount->engine()->requestServerRedirect( 0x0010 ); - - int time = ( TDEApplication::random() % 10 ) * 1000; - kdDebug(OSCAR_ICQ_DEBUG) << k_funcinfo << "updating buddy icon in " << time/1000 << " seconds" << endl; - TQTimer::singleShot( time, this, TQT_SLOT( requestBuddyIcon() ) ); - } - - OscarContact::userInfoUpdated( contact, details ); -} - -void AIMContact::userOnline( const TQString& userId ) -{ - if ( Oscar::normalize( userId ) == Oscar::normalize( contactId() ) ) - { - kdDebug(OSCAR_RAW_DEBUG) << k_funcinfo << "Getting more contact info" << endl; - setOnlineStatus( mProtocol->statusOnline ); - } -} - -void AIMContact::userOffline( const TQString& userId ) -{ - if ( Oscar::normalize( userId ) == Oscar::normalize( contactId() ) ) - { - setOnlineStatus( mProtocol->statusOffline ); - removeProperty( mProtocol->awayMessage ); - } -} - -void AIMContact::updateAwayMessage( const TQString& contact, const TQString& message ) -{ - if ( Oscar::normalize( contact ) != Oscar::normalize( contactId() ) ) - return; - else - { - if ( message.isEmpty() ) - { - removeProperty( mProtocol->awayMessage ); - if ( !m_mobile ) - setOnlineStatus( mProtocol->statusOnline ); - else - setOnlineStatus( mProtocol->statusWirelessOnline ); - m_haveAwayMessage = false; - } - else - { - m_haveAwayMessage = true; - setAwayMessage( message ); - if ( !m_mobile ) - setOnlineStatus( mProtocol->statusAway ); - else - setOnlineStatus( mProtocol->statusWirelessAway ); - } - } - - emit updatedProfile(); -} - -void AIMContact::updateProfile( const TQString& contact, const TQString& profile ) -{ - if ( Oscar::normalize( contact ) != Oscar::normalize( contactId() ) ) - return; - - setProperty( mProtocol->clientProfile, profile ); - emit updatedProfile(); -} - -void AIMContact::gotWarning( const TQString& contact, TQ_UINT16 increase, TQ_UINT16 newLevel ) -{ - //somebody just got bitchslapped! :O - Q_UNUSED( increase ); - if ( Oscar::normalize( contact ) == Oscar::normalize( contactId() ) ) - m_warningLevel = newLevel; - - //TODO add a KNotify event after merge to HEAD -} - -void AIMContact::requestBuddyIcon() -{ - kdDebug(OSCAR_AIM_DEBUG) << k_funcinfo << "Updating buddy icon for " << contactId() << endl; - if ( m_details.buddyIconHash().size() > 0 ) - { - account()->engine()->requestBuddyIcon( contactId(), m_details.buddyIconHash(), - m_details.iconCheckSumType() ); - } -} - -void AIMContact::haveIcon( const TQString& user, TQByteArray icon ) -{ - if ( Oscar::normalize( user ) != Oscar::normalize( contactId() ) ) - return; - - kdDebug(OSCAR_AIM_DEBUG) << k_funcinfo << "Updating icon for " << contactId() << endl; - TQImage buddyIcon( icon ); - if ( buddyIcon.isNull() ) - { - kdWarning(OSCAR_AIM_DEBUG) << k_funcinfo << "Failed to convert buddy icon to TQImage" << endl; - return; - } - - setProperty( Kopete::Global::Properties::self()->photo(), buddyIcon ); -} - -void AIMContact::closeUserInfoDialog() -{ - m_infoDialog->delayedDestruct(); - m_infoDialog = 0L; -} - -void AIMContact::warnUser() -{ - TQString nick = property( Kopete::Global::Properties::self()->nickName() ).value().toString(); - TQString message = i18n( "<qt>Would you like to warn %1 anonymously or with your name?<br>" \ - "(Warning a user on AIM will result in a \"Warning Level\"" \ - " increasing for the user you warn. Once this level has reached a" \ - " certain point, they will not be able to sign on. Please do not abuse" \ - " this function, it is meant for legitimate practices.)</qt>" ).arg( nick ); - - - int result = KMessageBox::questionYesNoCancel( Kopete::UI::Global::mainWidget(), message, - i18n( "Warn User %1?" ).arg( nick ), - i18n( "Warn Anonymously" ), i18n( "Warn" ) ); - - if ( result == KMessageBox::Yes ) - mAccount->engine()->sendWarning( contactId(), true); - else if ( result == KMessageBox::No ) - mAccount->engine()->sendWarning( contactId(), false); -} - -void AIMContact::slotVisibleTo() -{ - account()->engine()->setVisibleTo( contactId(), m_actionVisibleTo->isChecked() ); -} - -void AIMContact::slotInvisibleTo() -{ - account()->engine()->setInvisibleTo( contactId(), m_actionInvisibleTo->isChecked() ); -} - -void AIMContact::slotSendMsg(Kopete::Message& message, Kopete::ChatSession *) -{ - Oscar::Message msg; - TQString s; - - if (message.plainBody().isEmpty()) // no text, do nothing - return; - //okay, now we need to change the message.escapedBody from real HTML to aimhtml. - //looking right now for docs on that "format". - //looks like everything except for alignment codes comes in the format of spans - - //font-style:italic -> <i> - //font-weight:600 -> <b> (anything > 400 should be <b>, 400 is not bold) - //text-decoration:underline -> <u> - //font-family: -> <font face=""> - //font-size:xxpt -> <font ptsize=xx> - - s=message.escapedBody(); - s.replace ( TQRegExp( TQString::fromLatin1("<span style=\"([^\"]*)\">([^<]*)</span>")), - TQString::fromLatin1("<style>\\1;\"\\2</style>")); - - s.replace ( TQRegExp( TQString::fromLatin1("<style>([^\"]*)font-style:italic;([^\"]*)\"([^<]*)</style>")), - TQString::fromLatin1("<i><style>\\1\\2\"\\3</style></i>")); - - s.replace ( TQRegExp( TQString::fromLatin1("<style>([^\"]*)font-weight:600;([^\"]*)\"([^<]*)</style>")), - TQString::fromLatin1("<b><style>\\1\\2\"\\3</style></b>")); - - s.replace ( TQRegExp( TQString::fromLatin1("<style>([^\"]*)text-decoration:underline;([^\"]*)\"([^<]*)</style>")), - TQString::fromLatin1("<u><style>\\1\\2\"\\3</style></u>")); - - s.replace ( TQRegExp( TQString::fromLatin1("<style>([^\"]*)font-family:([^;]*);([^\"]*)\"([^<]*)</style>")), - TQString::fromLatin1("<font face=\"\\2\"><style>\\1\\3\"\\4</style></font>")); - - s.replace ( TQRegExp( TQString::fromLatin1("<style>([^\"]*)font-size:([^p]*)pt;([^\"]*)\"([^<]*)</style>")), - TQString::fromLatin1("<font ptsize=\"\\2\"><style>\\1\\3\"\\4</style></font>")); - - s.replace ( TQRegExp( TQString::fromLatin1("<style>([^\"]*)color:([^;]*);([^\"]*)\"([^<]*)</style>")), - TQString::fromLatin1("<font color=\"\\2\"><style>\\1\\3\"\\4</style></font>")); - - s.replace ( TQRegExp( TQString::fromLatin1("<style>([^\"]*)\"([^<]*)</style>")), - TQString::fromLatin1("\\2")); - - //okay now change the <font ptsize="xx"> to <font size="xx"> - - //0-9 are size 1 - s.replace ( TQRegExp ( TQString::fromLatin1("<font ptsize=\"\\d\">")), - TQString::fromLatin1("<font size=\"1\">")); - //10-11 are size 2 - s.replace ( TQRegExp ( TQString::fromLatin1("<font ptsize=\"1[01]\">")), - TQString::fromLatin1("<font size=\"2\">")); - //12-13 are size 3 - s.replace ( TQRegExp ( TQString::fromLatin1("<font ptsize=\"1[23]\">")), - TQString::fromLatin1("<font size=\"3\">")); - //14-16 are size 4 - s.replace ( TQRegExp ( TQString::fromLatin1("<font ptsize=\"1[456]\">")), - TQString::fromLatin1("<font size=\"4\">")); - //17-22 are size 5 - s.replace ( TQRegExp ( TQString::fromLatin1("<font ptsize=\"(?:1[789]|2[012])\">")), - TQString::fromLatin1("<font size=\"5\">")); - //23-29 are size 6 - s.replace ( TQRegExp ( TQString::fromLatin1("<font ptsize=\"2[3456789]\">")),TQString::fromLatin1("<font size=\"6\">")); - //30- (and any I missed) are size 7 - s.replace ( TQRegExp ( TQString::fromLatin1("<font ptsize=\"[^\"]*\">")),TQString::fromLatin1("<font size=\"7\">")); - - // strip left over line break - s.remove(TQRegExp(TQString::fromLatin1("<br\b[^>]*>$"))); - - s.replace ( TQRegExp ( TQString::fromLatin1("<br[ /]*>")), TQString::fromLatin1("<br>") ); - - // strip left over line break - s.remove( TQRegExp( TQString::fromLatin1( "<br>$" ) ) ); - - kdDebug(14190) << k_funcinfo << "sending " - << s << endl; - - // XXX Need to check for message size? - - if ( m_details.hasCap( CAP_UTF8 ) ) - msg.setText( Oscar::Message::UCS2, s ); - else - msg.setText( Oscar::Message::UserDefined, s, contactCodec() ); - - msg.setReceiver(mName); - msg.setTimestamp(message.timestamp()); - msg.setType(0x01); - - mAccount->engine()->sendMessage(msg); - - // Show the message we just sent in the chat window - manager(Kopete::Contact::CanCreate)->appendMessage(message); - manager(Kopete::Contact::CanCreate)->messageSucceeded(); -} - -void AIMContact::updateFeatures() -{ - setProperty( static_cast<AIMProtocol*>(protocol())->clientFeatures, m_clientFeatures ); -} - -void AIMContact::sendAutoResponse(Kopete::Message& msg) -{ - // The target time is 2 minutes later than the last message - int delta = m_lastAutoresponseTime.secsTo( TQDateTime::currentDateTime() ); - kdDebug(14152) << k_funcinfo << "Last autoresponse time: " << m_lastAutoresponseTime << endl; - kdDebug(14152) << k_funcinfo << "Current time: " << TQDateTime::currentDateTime() << endl; - kdDebug(14152) << k_funcinfo << "Difference: " << delta << endl; - // Check to see if we're past that time - if(delta > 120) - { - kdDebug(14152) << k_funcinfo << "Sending auto response" << endl; - - // This code was yoinked straight from OscarContact::slotSendMsg() - // If only that slot wasn't private, but I'm not gonna change it right now. - Oscar::Message message; - - if ( m_details.hasCap( CAP_UTF8 ) ) - { - message.setText( Oscar::Message::UCS2, msg.plainBody() ); - } - else - { - TQTextCodec* codec = contactCodec(); - message.setText( Oscar::Message::UserDefined, msg.plainBody(), codec ); - } - - message.setTimestamp( msg.timestamp() ); - message.setSender( mAccount->accountId() ); - message.setReceiver( mName ); - message.setType( 0x01 ); - - // isAuto defaults to false - mAccount->engine()->sendMessage( message, true); - kdDebug(14152) << k_funcinfo << "Sent auto response" << endl; - manager(Kopete::Contact::CanCreate)->appendMessage(msg); - manager(Kopete::Contact::CanCreate)->messageSucceeded(); - // Update the last autoresponse time - m_lastAutoresponseTime = TQDateTime::currentDateTime(); - } - else - { - kdDebug(14152) << k_funcinfo << "Not enough time since last autoresponse, NOT sending" << endl; - } -} -#include "aimcontact.moc" -//kate: tab-width 4; indent-mode csands; diff --git a/kopete/protocols/oscar/aim/aimcontact.h b/kopete/protocols/oscar/aim/aimcontact.h deleted file mode 100644 index eea346ac..00000000 --- a/kopete/protocols/oscar/aim/aimcontact.h +++ /dev/null @@ -1,103 +0,0 @@ -/* - aimcontact.h - Oscar Protocol Plugin - - Copyright (c) 2003 by Will Stephenson - Copyright (c) 2004 by Matt Rogers <[email protected]> - Kopete (c) 2002-2004 by the Kopete developers <[email protected]> - - ************************************************************************* - * * - * 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. * - * * - ************************************************************************* -*/ - -#ifndef AIMCONTACT_H -#define AIMCONTACT_H - -#include <tqdatetime.h> - -#include "oscarcontact.h" - - -namespace Kopete -{ -class ChatSession; -} - -class AIMAccount; -class AIMProtocol; -class AIMUserInfoDialog; - -class AIMContact : public OscarContact -{ -Q_OBJECT - - -public: - AIMContact( Kopete::Account*, const TQString&, Kopete::MetaContact*, - const TQString& icon = TQString(), const Oscar::SSI& ssiItem = Oscar::SSI() ); - virtual ~AIMContact(); - - bool isReachable(); - TQPtrList<TDEAction> *customContextMenuActions(); - - const TQString &userProfile() { return mUserProfile; } - - virtual const TQString awayMessage(); - virtual void setAwayMessage( const TQString &message ); - - int warningLevel() const; - - /** - * Gets the last time an autoresponse was sent to this contact - * @returns TQDateTime Object that represents the date/time - */ - TQDateTime lastAutoResponseTime() {return m_lastAutoresponseTime;} - - /** Sends an auto response to this contact */ - virtual void sendAutoResponse(Kopete::Message& msg); - -public slots: - void updateSSIItem(); - void slotUserInfo(); - void userInfoUpdated( const TQString& contact, const UserDetails& details ); - void userOnline( const TQString& userId ); - void userOffline( const TQString& userId ); - void updateAwayMessage( const TQString& userId, const TQString& message ); - void updateProfile( const TQString& contact, const TQString& profile ); - void gotWarning( const TQString& contact, TQ_UINT16, TQ_UINT16 ); - -signals: - void updatedProfile(); - -protected slots: - virtual void slotSendMsg(Kopete::Message& message, Kopete::ChatSession *); - virtual void updateFeatures(); - -private slots: - void requestBuddyIcon(); - void haveIcon( const TQString&, TQByteArray ); - void closeUserInfoDialog(); - void warnUser(); - - void slotVisibleTo(); - void slotInvisibleTo(); - -private: - AIMProtocol* mProtocol; - AIMUserInfoDialog* m_infoDialog; - TQString mUserProfile; - bool m_haveAwayMessage; - bool m_mobile; // Is this user mobile (i.e. do they have message forwarding on, or mobile AIM) - TQDateTime m_lastAutoresponseTime; - - TDEAction* m_warnUserAction; - TDEToggleAction *m_actionVisibleTo; - TDEToggleAction *m_actionInvisibleTo; -}; -#endif -//kate: tab-width 4; indent-mode csands; diff --git a/kopete/protocols/oscar/aim/aimjoinchat.cpp b/kopete/protocols/oscar/aim/aimjoinchat.cpp deleted file mode 100644 index bc4a3edf..00000000 --- a/kopete/protocols/oscar/aim/aimjoinchat.cpp +++ /dev/null @@ -1,94 +0,0 @@ -// aimjoinchat.cpp - -// Copyright (C) 2005 Matt Rogers <[email protected]> - -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License, or (at your option) any later version. - -// This library 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 -// Lesser General Public License for more details. - -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -// 02110-1301 USA - -#include "aimjoinchat.h" - -#include <tqlineedit.h> -#include <tqcombobox.h> -#include <tdelocale.h> - -#include "aimjoinchatbase.h" -#include "aimaccount.h" - -AIMJoinChatUI::AIMJoinChatUI( AIMAccount* account, bool modal, - TQWidget* parent, const char* name ) - : KDialogBase( parent, name, modal, i18n( "Join AIM Chat Room" ), - Cancel | User1, User1, true, i18n( "Join" ) ) -{ - - kdDebug(OSCAR_AIM_DEBUG) << k_funcinfo << "Account " << account->accountId() - << " joining a chat room" << endl; - - m_account = account; - - m_joinUI = new AIMJoinChatBase( this, "aimjoinchatbase" ); - - setMainWidget( m_joinUI ); - - TQObject::connect( this, TQT_SIGNAL( user1Clicked() ), this, TQT_SLOT( joinChat() ) ); - TQObject::connect( this, TQT_SIGNAL( cancelClicked() ), this, TQT_SLOT( closeClicked() ) ); -} - -AIMJoinChatUI::~AIMJoinChatUI() -{ - m_exchanges.clear(); -} - -void AIMJoinChatUI::setExchangeList( const TQValueList<int>& list ) -{ - m_exchanges = list; - TQStringList exchangeList; - TQValueList<int>::const_iterator it = list.begin(); - while ( it != list.end() ) - { - exchangeList.append( TQString::number( ( *it ) ) ); - ++it; - } - - - m_joinUI->exchange->insertStringList( exchangeList ); -} - -void AIMJoinChatUI::joinChat() -{ - m_roomName = m_joinUI->roomName->text(); - int item = m_joinUI->exchange->currentItem(); - m_exchange = m_joinUI->exchange->text( item ); - - emit closing( TQDialog::Accepted ); -} - -void AIMJoinChatUI::closeClicked() -{ - //hmm, do nothing? - emit closing( TQDialog::Rejected ); -} - -TQString AIMJoinChatUI::roomName() const -{ - return m_roomName; -} - -TQString AIMJoinChatUI::exchange() const -{ - return m_exchange; -} - -#include "aimjoinchat.moc" -//kate: space-indent on; indent-width 4; diff --git a/kopete/protocols/oscar/aim/aimjoinchat.h b/kopete/protocols/oscar/aim/aimjoinchat.h deleted file mode 100644 index 828aab35..00000000 --- a/kopete/protocols/oscar/aim/aimjoinchat.h +++ /dev/null @@ -1,63 +0,0 @@ -// aimjoinchat.h - -// Copyright (C) 2005 Matt Rogers <[email protected]> - -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License, or (at your option) any later version. - -// This library 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 -// Lesser General Public License for more details. - -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -// 02110-1301 USA - -#ifndef AIMJOINCHAT_H -#define AIMJOINCHAT_H - -#include <kdialogbase.h> - -#include "oscartypes.h" - -class AIMAccount; -class AIMJoinChatBase; - -class AIMJoinChatUI : public KDialogBase -{ -Q_OBJECT - -public: - AIMJoinChatUI( AIMAccount*, bool modal, TQWidget* parent = 0, - const char* name = 0 ); - ~AIMJoinChatUI(); - - void setExchangeList( const TQValueList<int>& ); - TQValueList<int> exchangeList() const; - - TQString roomName() const; - TQString exchange() const; - - -protected slots: - void joinChat(); - void closeClicked(); - -signals: - void closing( int ); - -private: - AIMJoinChatBase* m_joinUI; - AIMAccount* m_account; - TQValueList<int> m_exchanges; - TQString m_roomName; - TQString m_exchange; - -}; - -#endif -//kate: space-indent on; indent-width 4; diff --git a/kopete/protocols/oscar/aim/aimprotocol.cpp b/kopete/protocols/oscar/aim/aimprotocol.cpp deleted file mode 100644 index f71e1848..00000000 --- a/kopete/protocols/oscar/aim/aimprotocol.cpp +++ /dev/null @@ -1,320 +0,0 @@ -/* - oscarprotocol.cpp - Oscar Protocol Plugin - - Copyright (c) 2002 by Tom Linsky <[email protected]> - - Kopete (c) 2002-2003 by the Kopete developers <[email protected]> - - ************************************************************************* - * * - * 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 <tqstringlist.h> -#include <kgenericfactory.h> -#include <tdemessagebox.h> -#include <kdebug.h> - -#include "aimprotocol.h" -#include "aimaccount.h" -#include "aimcontact.h" -#include "aimaddcontactpage.h" -#include "aimeditaccountwidget.h" - -#include "accountselector.h" -#include "kopeteaccountmanager.h" -#include "kopeteonlinestatusmanager.h" -#include "kopeteglobal.h" -#include "kopeteuiglobal.h" -#include "kopetemetacontact.h" - -#include <kdialogbase.h> -#include <tdemessagebox.h> -#include <kimageio.h> - -typedef KGenericFactory<AIMProtocol> AIMProtocolFactory; - -K_EXPORT_COMPONENT_FACTORY( kopete_aim, AIMProtocolFactory( "kopete_aim" ) ) - -AIMProtocol* AIMProtocol::protocolStatic_ = 0L; - - -AIMProtocolHandler::AIMProtocolHandler() : Kopete::MimeTypeHandler(false) -{ - registerAsProtocolHandler(TQString::fromLatin1("aim")); -} - -void AIMProtocolHandler::handleURL(const KURL &url) const -{ -/** - * Send a Message ================================================= - * aim:goim - * aim:goim?screenname=screen+name - * aim:goim?screenname=screen+name&message=message - * Add Buddy ====================================================== - * aim:addbuddy - * aim:addbuddy?screenname=screen+name - * Buddy Icon ===================================================== - * aim:buddyicon - * aim:buddyicon?src=image_source - * aim:buddyicon?screename=screen+name - * aim:buddyicon?src=image_source&screename=screen+name - * Get and Send Files ============================================= - * aim:getfile?screename=(sn) - * aim:sendfile?screenname=(sn) - * Register User ================================================== - * aim:RegisterUser?ScreenName=sn&Password=pw&SignonNow=False - * Away Message =================================================== - * aim:goaway?message=brb+or+something - * Chat Rooms ===================================================== - * aim:GoChat?RoomName=room+name&Exchange=number - **/ - - AIMProtocol *proto = AIMProtocol::protocol(); - kdDebug(14152) << k_funcinfo << "URL url : '" << url.url() << "'" << endl; - kdDebug(14152) << k_funcinfo << "URL path : '" << url.path() << "'" << endl; - TQString command = url.path(); - TQString realCommand, firstParam, secondParam; - bool needContactAddition = false; - if ( command.find( "goim", 0, false ) != -1 ) - { - realCommand = "goim"; - kdDebug(14152) << k_funcinfo << "Handling send IM request" << endl; - command.remove(0,4); - if ( command.find( "?screenname=", 0, false ) == -1 ) - { - kdWarning(14152) << k_funcinfo << "Unhandled AIM URI:" << url.url() << endl; - return; - } - command.remove( 0, 12 ); - int andSign = command.find( "&" ); - if ( andSign > 0 ) - command = command.left( andSign ); - - firstParam = command; - firstParam.replace( "+", " " ); - needContactAddition = true; - } - else - if ( command.find( "addbuddy", 0, false ) != -1 ) - { - realCommand = "addbuddy"; - kdDebug(14152) << k_funcinfo << "Handling AIM add buddy request" << endl; - command.remove( 0, 8 ); - if ( command.find( "?screenname=", 0, false ) == -1 ) - { - kdWarning(14152) << k_funcinfo << "Unhandled AIM URI:" << url.url() << endl; - return; - } - - command.remove(0, 12); - int andSign = command.find("&"); - if ( andSign > 0 ) - command = command.left(andSign); - command.replace("+", " "); - - firstParam = command; - needContactAddition = true; - } - else - if ( command.find( "gochat", 0, false ) != -1 ) - { - realCommand = "gochat"; - kdDebug(14152) << k_funcinfo << "Handling AIM chat room request" << endl; - command.remove( 0, 6 ); - - if ( command.find( "?RoomName=", 0, false ) == -1 ) - { - kdWarning(14152) << "Unhandled AIM URI: " << url.url() << endl; - return; - } - - command.remove( 0, 10 ); - - int andSign = command.find("&"); - if (andSign > 0) // strip off anything else for now - { - firstParam = command.left(andSign); - } - command.remove( 0, andSign ); - kdDebug(14152) << "command is now: " << command << endl; - command.remove( 0, 10 ); //remove "&Exchange=" - secondParam = command; - kdDebug(14152) << k_funcinfo << firstParam << " " << secondParam << endl; - firstParam.replace("+", " "); - } - - Kopete::Account *account = 0; - TQDict<Kopete::Account> accounts = Kopete::AccountManager::self()->accounts(proto); - - if (accounts.count() == 1) - { - TQDictIterator<Kopete::Account> it(accounts); - account = it.current(); - - } - else - { - KDialogBase *chooser = new KDialogBase(0, "chooser", true, - i18n("Choose Account"), KDialogBase::Ok|KDialogBase::Cancel, - KDialogBase::Ok, false); - AccountSelector *accSelector = new AccountSelector(proto, chooser, "accSelector"); - chooser->setMainWidget(accSelector); - - int ret = chooser->exec(); - account = accSelector->selectedItem(); - - delete chooser; - if (ret == TQDialog::Rejected || account == 0) - { - kdDebug(14152) << k_funcinfo << "Cancelled" << endl; - return; - } - } - - Kopete::MetaContact* mc = 0; - if ( needContactAddition || realCommand == "addbuddy" ) - { - if ( !account->isConnected() ) - { - kdDebug(14152) << k_funcinfo << "Can't add contact, we are offline!" << endl; - KMessageBox::sorry( Kopete::UI::Global::mainWidget(), i18n("You need to be connected to be able to add contacts."), - i18n("AIM") ); - return; - } - - if (KMessageBox::questionYesNo(Kopete::UI::Global::mainWidget(), - i18n("Do you want to add '%1' to your contact list?").arg(command), - TQString(), i18n("Add"), i18n("Do Not Add")) - != KMessageBox::Yes) - { - kdDebug(14152) << k_funcinfo << "Cancelled" << endl; - return; - } - - kdDebug(14152) << k_funcinfo << - "Adding Contact; screenname = " << firstParam << endl; - mc = account->addContact(firstParam, command, 0L, Kopete::Account::Temporary); - } - - if ( realCommand == "gochat" ) - { - AIMAccount* aimAccount = dynamic_cast<AIMAccount*>( account ); - if ( aimAccount && aimAccount->isConnected() ) - { - aimAccount->engine()->joinChatRoom( firstParam, secondParam.toInt() ); - } - else - KMessageBox::sorry( Kopete::UI::Global::mainWidget(), - i18n( "Unable to connect to the chat room %1 because the account" - " for %2 is not connected." ).arg( firstParam ).arg( aimAccount->accountId() ), - TQString() ); - - } - - if ( mc && realCommand == "goim" ) - { - mc->execute(); - } - -} - - - - -AIMProtocol::AIMProtocol(TQObject *parent, const char *name, const TQStringList &) - : Kopete::Protocol( AIMProtocolFactory::instance(), parent, name ), - statusOnline( Kopete::OnlineStatus::Online, 2, this, 0, TQString(), i18n("Online"), i18n("Online"), Kopete::OnlineStatusManager::Online ), - statusOffline( Kopete::OnlineStatus::Offline, 2, this, 10, TQString(), i18n("Offline"), i18n("Offline"), Kopete::OnlineStatusManager::Offline ), - statusAway( Kopete::OnlineStatus::Away, 2, this, 20, "contact_away_overlay", i18n("Away"), i18n("Away"), Kopete::OnlineStatusManager::Away, - Kopete::OnlineStatusManager::HasAwayMessage ), - statusWirelessOnline( Kopete::OnlineStatus::Online, 1, this, 30, "contact_phone_overlay", i18n("Mobile"), i18n("Mobile"), - Kopete::OnlineStatusManager::Online, Kopete::OnlineStatusManager::HideFromMenu ), - statusWirelessAway( Kopete::OnlineStatus::Away, 1, this, 31, TQStringList::split( " ", "contact_phone_overlay contact_away_overlay"), - i18n("Mobile Away"), i18n("Mobile Away"), Kopete::OnlineStatusManager::Away, Kopete::OnlineStatusManager::HideFromMenu ), - statusConnecting(Kopete::OnlineStatus::Connecting, 99, this, 99, "aim_connecting", i18n("Connecting...")), - awayMessage(Kopete::Global::Properties::self()->awayMessage()), - clientFeatures("clientFeatures", i18n("Client Features"), 0, false), - clientProfile( "clientProfile", i18n( "User Profile"), 0, false, true), - iconHash("iconHash", i18n("Buddy Icon MD5 Hash"), TQString(), true, false, true) -{ - if (protocolStatic_) - kdDebug(14152) << k_funcinfo << "AIM plugin already initialized" << endl; - else - protocolStatic_ = this; - - setCapabilities(0x1FFF); // setting capabilities - FIXME to use proper enum - kdDebug(14152) << k_funcinfo << "capabilities set to 0x1FFF" << endl; - addAddressBookField("messaging/aim", Kopete::Plugin::MakeIndexField); - KImageIO::registerFormats(); -} - -AIMProtocol::~AIMProtocol() -{ - protocolStatic_ =0L; -} - -AIMProtocol *AIMProtocol::protocol(void) -{ - return protocolStatic_; -} - -Kopete::Contact *AIMProtocol::deserializeContact(Kopete::MetaContact *metaContact, - const TQMap<TQString, TQString> &serializedData, - const TQMap<TQString, TQString> &/*addressBookData*/) -{ - - TQString contactId = serializedData["contactId"]; - TQString accountId = serializedData["accountId"]; - TQString displayName = serializedData["displayName"]; - - // Get the account it belongs to - TQDict<Kopete::Account> accounts = Kopete::AccountManager::self()->accounts( this ); - Kopete::Account *account = accounts[accountId]; - - if ( !account ) //no account - return 0; - - uint ssiGid = 0, ssiBid = 0, ssiType = 0xFFFF; - TQString ssiName; - bool ssiWaitingAuth = false; - if ( serializedData.contains( "ssi_type" ) ) - { - ssiName = serializedData["ssi_name"]; - TQString authStatus = serializedData["ssi_waitingAuth"]; - if ( authStatus == "true" ) - ssiWaitingAuth = true; - ssiGid = serializedData["ssi_gid"].toUInt(); - ssiBid = serializedData["ssi_bid"].toUInt(); - ssiType = serializedData["ssi_type"].toUInt(); - } - - Oscar::SSI item( ssiName, ssiGid, ssiBid, ssiType, TQValueList<TLV>(), 0 ); - item.setWaitingAuth( ssiWaitingAuth ); - - AIMContact *c = new AIMContact( account, contactId, metaContact, TQString(), item ); - return c; -} - -AddContactPage *AIMProtocol::createAddContactWidget(TQWidget *parent, Kopete::Account *account) -{ - return ( new AIMAddContactPage( account->isConnected(), parent ) ); -} - -KopeteEditAccountWidget *AIMProtocol::createEditAccountWidget(Kopete::Account *account, TQWidget *parent) -{ - return ( new AIMEditAccountWidget( this, account, parent ) ); -} - -Kopete::Account *AIMProtocol::createNewAccount(const TQString &accountId) -{ - return ( new AIMAccount( this, accountId ) ); -} - -#include "aimprotocol.moc" -// vim: set noet ts=4 sts=4 sw=4: diff --git a/kopete/protocols/oscar/aim/aimprotocol.h b/kopete/protocols/oscar/aim/aimprotocol.h deleted file mode 100644 index 26d092b6..00000000 --- a/kopete/protocols/oscar/aim/aimprotocol.h +++ /dev/null @@ -1,86 +0,0 @@ -/* - oscarprotocol.h - Oscar Protocol Plugin - - Copyright (c) 2002 by Tom Linsky <[email protected]> - Copyright (c) 2005 by Matt Rogers <[email protected]> - Kopete (c) 2002 by the Kopete developers <[email protected]> - - ************************************************************************* - * * - * 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. * - * * - ************************************************************************* - */ - -#ifndef AIMPROTOCOL_H -#define AIMPROTOCOL_H - -#include "kopeteprotocol.h" -#include "kopetecontactproperty.h" -#include "kopetemimetypehandler.h" -#include "kopeteonlinestatus.h" - -#include <tqmap.h> - -namespace Kopete -{ -class OnlineStatus; -} - -class AIMProtocolHandler : public Kopete::MimeTypeHandler -{ -public: - AIMProtocolHandler(); - void handleURL( const KURL & url ) const; -}; - -class AIMProtocol : public Kopete::Protocol -{ - Q_OBJECT - - -public: - AIMProtocol( TQObject *parent, const char *name, const TQStringList &args ); - virtual ~AIMProtocol(); - /** - * Return the active instance of the protocol - * because it's a singleton, can only be used inside AIM classes, not in oscar lib - */ - static AIMProtocol *protocol(); - - bool canSendOffline() const { return false; } - - virtual Kopete::Contact *deserializeContact( Kopete::MetaContact *metaContact, - const TQMap<TQString, TQString> &serializedData, - const TQMap<TQString, TQString> &addressBookData ); - - AddContactPage*createAddContactWidget( TQWidget *parent, Kopete::Account *account ); - KopeteEditAccountWidget* createEditAccountWidget( Kopete::Account *account, TQWidget *parent ); - Kopete::Account* createNewAccount( const TQString &accountId ); - - /** - * The set of online statuses that AIM contacts can have - */ - const Kopete::OnlineStatus statusOnline; - const Kopete::OnlineStatus statusOffline; - const Kopete::OnlineStatus statusAway; - const Kopete::OnlineStatus statusWirelessOnline; - const Kopete::OnlineStatus statusWirelessAway; - const Kopete::OnlineStatus statusConnecting; - - const Kopete::ContactPropertyTmpl awayMessage; - const Kopete::ContactPropertyTmpl clientFeatures; - const Kopete::ContactPropertyTmpl clientProfile; - const Kopete::ContactPropertyTmpl iconHash; - -private: - /** The active instance of oscarprotocol */ - static AIMProtocol *protocolStatic_; - AIMProtocolHandler protohandler; -}; - -#endif -//kate: tab-width 4; indent-mode csands; diff --git a/kopete/protocols/oscar/aim/aimuserinfo.cpp b/kopete/protocols/oscar/aim/aimuserinfo.cpp deleted file mode 100644 index 0cce3a5c..00000000 --- a/kopete/protocols/oscar/aim/aimuserinfo.cpp +++ /dev/null @@ -1,224 +0,0 @@ -/* - oscaruserinfo.cpp - Oscar Protocol Plugin - - Copyright (c) 2002 by Tom Linsky <[email protected]> - - Kopete (c) 2002 by the Kopete developers <[email protected]> - - ************************************************************************* - * * - * 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 "aimuserinfo.h" - -#include "aimaccount.h" -#include "aimcontact.h" -#include "aimprotocol.h" - -#include <tqlineedit.h> -#include <tqlabel.h> -#include <tqlayout.h> -#include <tqpushbutton.h> -#include <tqtimer.h> - -#include <tdelocale.h> -#include <kstandarddirs.h> -#include <ktextbrowser.h> -#include <kdebug.h> -#include <tdeapplication.h> - -#include <ktextedit.h> -#include <krun.h> - -AIMUserInfoDialog::AIMUserInfoDialog( Kopete::Contact *c, AIMAccount *acc, bool modal, - TQWidget *parent, const char* name ) - : KDialogBase( parent, name, modal, i18n( "User Information on %1" ) - .arg( c->property( Kopete::Global::Properties::self()->nickName() ).value().toString() ), - Cancel | Ok , Ok, true ) -{ - kdDebug(14200) << k_funcinfo << "for contact '" << c->contactId() << "'" << endl; - - m_contact = c; - mAccount = acc; - - mMainWidget = new AIMUserInfoWidget(this, "aimuserinfowidget"); - setMainWidget(mMainWidget); - - TQObject::connect(this, TQT_SIGNAL(okClicked()), this, TQT_SLOT(slotSaveClicked())); - TQObject::connect(this, TQT_SIGNAL(user1Clicked()), this, TQT_SLOT(slotUpdateClicked())); - TQObject::connect(this, TQT_SIGNAL(cancelClicked()), this, TQT_SLOT(slotCloseClicked())); - TQObject::connect(c, TQT_SIGNAL(updatedProfile()), this, TQT_SLOT(slotUpdateProfile())); - - mMainWidget->txtScreenName->setText( c->contactId() ); - - TQString nickName = c->property( Kopete::Global::Properties::self()->nickName() ).value().toString(); - if( nickName.isEmpty() ) - mMainWidget->txtNickName->setText( c->contactId() ); - else - mMainWidget->txtNickName->setText( nickName ); - - if(m_contact == mAccount->myself()) // edit own account profile - { - mMainWidget->lblWarnLevel->hide(); - mMainWidget->txtWarnLevel->hide(); - mMainWidget->lblIdleTime->hide(); - mMainWidget->txtIdleTime->hide(); - mMainWidget->lblOnlineSince->hide(); - mMainWidget->txtOnlineSince->hide(); - mMainWidget->txtAwayMessage->hide(); - mMainWidget->lblAwayMessage->hide(); - - userInfoView=0L; - mMainWidget->userInfoFrame->setFrameStyle(TQFrame::NoFrame | TQFrame::Plain); - TQVBoxLayout *l = new TQVBoxLayout(mMainWidget->userInfoFrame); - userInfoEdit = new KTextEdit(TQString(), TQString(), - mMainWidget->userInfoFrame, "userInfoEdit"); - userInfoEdit->setTextFormat(PlainText); - - AIMMyselfContact* aimmc = dynamic_cast<AIMMyselfContact*>( c ); - if ( aimmc ) - userInfoEdit->setText( aimmc->userProfile() ); - else - userInfoEdit->setText( TQString() ); - - setButtonText(Ok, i18n("&Save Profile")); - showButton(User1, false); - l->addWidget(userInfoEdit); - } - else - { - userInfoEdit=0L; - mMainWidget->userInfoFrame->setFrameStyle(TQFrame::NoFrame | TQFrame::Plain); - TQVBoxLayout *l = new TQVBoxLayout(mMainWidget->userInfoFrame); - userInfoView = new KTextBrowser(mMainWidget->userInfoFrame, "userInfoView"); - userInfoView->setTextFormat(AutoText); - userInfoView->setNotifyClick(true); - TQObject::connect( - userInfoView, TQT_SIGNAL(urlClick(const TQString&)), - this, TQT_SLOT(slotUrlClicked(const TQString&))); - TQObject::connect( - userInfoView, TQT_SIGNAL(mailClick(const TQString&, const TQString&)), - this, TQT_SLOT(slotMailClicked(const TQString&, const TQString&))); - showButton(Cancel, false); - setButtonText(Ok, i18n("&Close")); - setEscapeButton(Ok); - l->addWidget(userInfoView); - - if(m_contact->isOnline()) - { - // Update the user view to indicate that we're requesting the user's profile - userInfoView->setText(i18n("Requesting User Profile, please wait...")); - } - TQTimer::singleShot(0, this, TQT_SLOT(slotUpdateProfile())); - } -} - -AIMUserInfoDialog::~AIMUserInfoDialog() -{ - kdDebug(14200) << k_funcinfo << "Called." << endl; -} - -void AIMUserInfoDialog::slotUpdateClicked() -{ - kdDebug(14200) << k_funcinfo << "Called." << endl; - TQString newNick = mMainWidget->txtNickName->text(); - TQString currentNick = m_contact->property( Kopete::Global::Properties::self()->nickName() ).value().toString(); - if ( !newNick.isEmpty() && ( newNick != currentNick ) ) - { - //m_contact->rename(newNick); - //emit updateNickname(newNick); - setCaption(i18n("User Information on %1").arg(newNick)); - } - -} - -void AIMUserInfoDialog::slotSaveClicked() -{ - kdDebug(14200) << k_funcinfo << "Called." << endl; - - if (userInfoEdit) - { // editable mode, set profile - TQString newNick = mMainWidget->txtNickName->text(); - TQString currentNick = m_contact->property( Kopete::Global::Properties::self()->nickName() ).value().toString(); - if(!newNick.isEmpty() && ( newNick != currentNick ) ) - { - //m_contact->rename(newNick); - //emit updateNickname(newNick); - setCaption(i18n("User Information on %1").arg(newNick)); - } - - mAccount->setUserProfile(userInfoEdit->text()); - } - - emit closing(); -} - -void AIMUserInfoDialog::slotCloseClicked() -{ - kdDebug(14200) << k_funcinfo << "Called." << endl; - emit closing(); -} - -void AIMUserInfoDialog::slotUpdateProfile() -{ - kdDebug(14152) << k_funcinfo << "Got User Profile." << endl; - AIMProtocol* p = static_cast<AIMProtocol*>( mAccount->protocol() ); - TQString awayMessage = m_contact->property( p->awayMessage ).value().toString(); - mMainWidget->txtAwayMessage->setText( awayMessage ); - - if ( awayMessage.isNull() ) - { - mMainWidget->txtAwayMessage->hide(); - mMainWidget->lblAwayMessage->hide(); - } - else - { - mMainWidget->txtAwayMessage->show(); - mMainWidget->lblAwayMessage->show(); - } - - TQString onlineSince = m_contact->property("onlineSince").value().toString(); - //TQString onlineSince = m_details.onlineSinceTime().toString(); - mMainWidget->txtOnlineSince->setText( onlineSince ); - - AIMContact* c = static_cast<AIMContact*>( m_contact ); - mMainWidget->txtIdleTime->setText(c->formattedIdleTime()); - mMainWidget->txtWarnLevel->setText(TQString::number(c->warningLevel())); - - TQString contactProfile = m_contact->property( p->clientProfile ).value().toString(); - if ( contactProfile.isNull() ) - { - contactProfile = - i18n("<html><body><I>No user information provided</I></body></html>"); - } - - if(userInfoEdit) - { - userInfoEdit->setText(contactProfile); - } - else if(userInfoView) - { - userInfoView->setText(contactProfile); - } - -} - -void AIMUserInfoDialog::slotUrlClicked(const TQString &url) -{ - new KRun(KURL(url)); -} - -void AIMUserInfoDialog::slotMailClicked(const TQString&, const TQString &address) -{ - new KRun(KURL(address)); -} - -#include "aimuserinfo.moc" - -//kate: indent-mode csands; tab-width 4; space-indent off; replace-tabs off; diff --git a/kopete/protocols/oscar/aim/aimuserinfo.h b/kopete/protocols/oscar/aim/aimuserinfo.h deleted file mode 100644 index d9e77fc5..00000000 --- a/kopete/protocols/oscar/aim/aimuserinfo.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - oscaruserinfo.h - Oscar Protocol Plugin - - Copyright (c) 2002 by Tom Linsky <[email protected]> - - Kopete (c) 2002 by the Kopete developers <[email protected]> - - ************************************************************************* - * * - * 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. * - * * - ************************************************************************* -*/ - -#ifndef AIMUSERINFO_H -#define AIMUSERINFO_H - -#include <kdialogbase.h> -#include "aiminfobase.h" - -namespace Kopete { class Contact; } -class KTextEdit; -class OscarAccount; -class AIMMyselfContact; -class AIMAccount; - -class AIMUserInfoDialog : public KDialogBase -{ - Q_OBJECT - - public: - AIMUserInfoDialog(Kopete::Contact *c, AIMAccount *acc, bool modal, - TQWidget *parent, const char* name); - ~AIMUserInfoDialog(); - - private: - AIMAccount *mAccount; - Kopete::Contact* m_contact; - AIMUserInfoWidget *mMainWidget; - KTextBrowser *userInfoView; - KTextEdit *userInfoEdit; - - private slots: - void slotSaveClicked(); - void slotCloseClicked(); - void slotUpdateClicked(); - void slotUpdateProfile(); - void slotUrlClicked(const TQString&); - void slotMailClicked(const TQString&, const TQString&); - - signals: -// void updateNickname(const TQString &); - void closing(); -}; - -#endif - diff --git a/kopete/protocols/oscar/aim/kopete_aim.desktop b/kopete/protocols/oscar/aim/kopete_aim.desktop deleted file mode 100644 index cf590551..00000000 --- a/kopete/protocols/oscar/aim/kopete_aim.desktop +++ /dev/null @@ -1,77 +0,0 @@ -[Desktop Entry] -Type=Service -X-Kopete-Version=1000900 -Icon=aim_protocol -X-TDE-ServiceTypes=Kopete/Protocol -X-TDE-Library=kopete_aim -X-Kopete-Messaging-Protocol=messaging/aim -X-TDE-PluginInfo-Author=Kopete Developers -X-TDE-PluginInfo-Name=kopete_aim -X-TDE-PluginInfo-Version=0.10.0 -X-TDE-PluginInfo-Website=http://kopete.kde.org -X-TDE-PluginInfo-Category=Protocols -X-TDE-PluginInfo-Depends= -X-TDE-PluginInfo-License=GPL -X-TDE-PluginInfo-EnabledByDefault=false -Name=AIM -Name[bn]=এ-আই-এম -Name[hi]=एआरईएम -Name[ne]=एआईएम -Comment=Protocol to connect to AIM -Comment[ar]=البرتوكول سيتصل بـ AIM -Comment[be]=Пратакол AIM -Comment[bg]=Протокол за връзка с AIM -Comment[bn]=এ-আই-এমতে সংযোগ করতে প্রোটোকল -Comment[br]=Komenad kevreañ ouzh AIM -Comment[bs]=AIM protokol -Comment[ca]=Protocol per a connectar-se a AIM -Comment[cs]=Protokol k připojení k AIM -Comment[cy]=Protocol i gysylltu ag AIM -Comment[da]=Protokol til at forbinde til AIM -Comment[de]=Protokoll zur Verbindung mit dem AIM -Comment[el]=Πρωτόκολλο για σύνδεση στο AIM -Comment[es]=Protocolo para conectar a AIM -Comment[et]=Protokoll ühendumiseks AIM-iga -Comment[eu]=AIM-era konektatzeko protokoloa -Comment[fa]=قرارداد برای اتصال به AIM -Comment[fi]=Yhteyskäytäntö AIM-verkkoon kytkeytymiseen -Comment[fr]=Protocole pour se connecter sur AIM -Comment[ga]=Prótacal chun ceangal le AIM -Comment[gl]=Protocolo para se conectar ó AIM -Comment[he]=פרוטוקול התחברות ל- AIM -Comment[hi]=से जुड़ने का प्रोटोकॉल -Comment[hr]=Protokol za povezivanje na AIM -Comment[hu]=Protokoll az AIM használatához -Comment[is]=Samskiptamáti til að tengjast AIM -Comment[it]=Protocollo per connessione a AIM -Comment[ja]=AIM に接続するプロトコル -Comment[ka]=AIM დაკავშირების ოქმი -Comment[kk]=AIM-ге қосылу протоколы -Comment[km]=ពិធីការភ្ជាប់ទៅ AIM -Comment[lt]=Protokolas prisijungimui prie AIM -Comment[mk]=Протокол за поврзување на AIM -Comment[nb]=Protokoll for å koble til AIM -Comment[nds]=Protokoll för't Tokoppeln na AIM -Comment[ne]=एआईएम मा जडान गर्नुपर्ने प्रोटोकल -Comment[nl]=Protocol voor AOL Instant Messenger -Comment[nn]=Protokoll for å kopla til AIM -Comment[pl]=Protokół połączenia z serwerem AIM -Comment[pt]=Um protocolo para se ligar ao AIM -Comment[pt_BR]=Protocolo de conexão ao AIM -Comment[ro]=Protocol de conectare la AIM -Comment[ru]=Протокол для подключения к AIM -Comment[sk]=Protokol pre pripojenie k AIM -Comment[sl]=Protokol za povezavo na AIM -Comment[sr]=Протокол за повезивање на AIM -Comment[sr@Latn]=Protokol za povezivanje na AIM -Comment[sv]=Protokoll för att ansluta till AIM -Comment[ta]=IRC உடன் இணைக்க விதிமுறை -Comment[tg]=Қарордоди пайвастшавӣ ба AIM -Comment[tr]=AIM'e bağlantı iletişim kuralı -Comment[uk]=Протокол для з'єднання з AIM -Comment[uz]=AIM bilan aloqa oʻrnatish uchun protokol -Comment[uz@cyrillic]=AIM билан алоқа ўрнатиш учун протокол -Comment[zh_CN]=连接到 AIM 协议 -Comment[zh_HK]=用來連接至 AIM 的通訊協定 -Comment[zh_TW]=連線到 AIM 的協定 diff --git a/kopete/protocols/oscar/aim/ui/CMakeLists.txt b/kopete/protocols/oscar/aim/ui/CMakeLists.txt deleted file mode 100644 index 8f5ff329..00000000 --- a/kopete/protocols/oscar/aim/ui/CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ -################################################# -# -# (C) 2010-2011 Serghei Amelian -# serghei (DOT) amelian (AT) gmail.com -# -# Improvements and feedback are welcome -# -# This file is released under GPL >= 2 -# -################################################# - -include_directories( - ${CMAKE_CURRENT_BINARY_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/.. - ${CMAKE_CURRENT_SOURCE_DIR}/../.. - ${CMAKE_CURRENT_SOURCE_DIR}/../../liboscar - ${CMAKE_BINARY_DIR}/kopete/libkopete/ui - ${CMAKE_SOURCE_DIR}/kopete/libkopete - ${CMAKE_SOURCE_DIR}/kopete/libkopete/ui - ${TDE_INCLUDE_DIR} - ${TQT_INCLUDE_DIRS} -) - - -##### kopeteaimui (static) ###################### - -tde_add_library( kopeteaimui STATIC_PIC AUTOMOC - SOURCES - aimaddcontactui.ui aimeditaccountui.ui aiminfobase.ui - aimjoinchatbase.ui aimaddcontactpage.cpp aimeditaccountwidget.cpp -) diff --git a/kopete/protocols/oscar/aim/ui/Makefile.am b/kopete/protocols/oscar/aim/ui/Makefile.am deleted file mode 100644 index aa690449..00000000 --- a/kopete/protocols/oscar/aim/ui/Makefile.am +++ /dev/null @@ -1,15 +0,0 @@ -METASOURCES = AUTO -AM_CPPFLAGS = $(KOPETE_INCLUDES) \ - -I$(srcdir)/.. \ - -I$(srcdir)/../.. \ - -I$(srcdir)/../../liboscar \ - $(all_includes) - -noinst_LTLIBRARIES = libkopeteaimui.la - -libkopeteaimui_la_SOURCES = aimaddcontactui.ui aimeditaccountui.ui \ - aiminfobase.ui aimjoinchatbase.ui aimaddcontactpage.cpp aimeditaccountwidget.cpp - -libkopeteaimui_la_LIBADD = $(top_builddir)/kopete/libkopete/libkopete.la - - diff --git a/kopete/protocols/oscar/aim/ui/aimaddcontactpage.cpp b/kopete/protocols/oscar/aim/ui/aimaddcontactpage.cpp deleted file mode 100644 index c6612027..00000000 --- a/kopete/protocols/oscar/aim/ui/aimaddcontactpage.cpp +++ /dev/null @@ -1,83 +0,0 @@ -/*************************************************************************** - description - ------------------- - begin : - copyright : (C) 2002 by nbetcher - email : [email protected] - ***************************************************************************/ - -/*************************************************************************** - * * - * 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 "aimaddcontactui.h" -#include "aimaddcontactpage.h" - -#include "kopeteaccount.h" - -#include <tqlayout.h> -#include <tqlineedit.h> -#include <tdelocale.h> -#include <tdemessagebox.h> - -AIMAddContactPage::AIMAddContactPage(bool connected, TQWidget *parent, - const char *name ) - : AddContactPage(parent,name) -{ - m_gui = 0; - (new TQVBoxLayout(this))->setAutoAdd(true); - - if(connected) - { - m_gui = new aimAddContactUI(this); - canadd = true; - } - else - { - noaddMsg1 = new TQLabel(i18n("You need to be connected to be able to add contacts."), this); - noaddMsg2 = new TQLabel(i18n("Connect to the AIM network and try again."), this); - canadd = false; - } -} - - -AIMAddContactPage::~AIMAddContactPage() -{ -} - -bool AIMAddContactPage::validateData() -{ - if ( !canadd ) - return false; - - if ( !m_gui ) - return false; - - TQString sn = m_gui->addSN->text(); - if ( sn.isEmpty() ) - { - KMessageBox::sorry ( this, - i18n("<qt>You must enter a valid screen name.</qt>"), - i18n("No Screen Name") ); - return false; - } - return true; -} - -bool AIMAddContactPage::apply(Kopete::Account *account, - Kopete::MetaContact *metaContact) -{ - if(validateData()) - { // If everything is ok - return account->addContact( m_gui->addSN->text(), metaContact, Kopete::Account::ChangeKABC ); - } - return false; -} -//kate: tab-width 4; indent-mode csands; - -#include "aimaddcontactpage.moc" diff --git a/kopete/protocols/oscar/aim/ui/aimaddcontactpage.h b/kopete/protocols/oscar/aim/ui/aimaddcontactpage.h deleted file mode 100644 index c3bcaa36..00000000 --- a/kopete/protocols/oscar/aim/ui/aimaddcontactpage.h +++ /dev/null @@ -1,42 +0,0 @@ - -#ifndef AIMADDCONTACTPAGE_H -#define AIMADDCONTACTPAGE_H - -#include <tqwidget.h> -#include <tqlabel.h> -#include "addcontactpage.h" - -class aimAddContactUI; -class AIMAccount; -namespace Kopete -{ -class Account; -class MetaContact; -} - -class AIMAddContactPage : public AddContactPage -{ -Q_OBJECT - - -public: - AIMAddContactPage(bool connected, TQWidget *parent=0, - const char *name=0); - ~AIMAddContactPage(); - - /** Validates the data entered */ - virtual bool validateData(); - /** Applies the addition to the account */ - virtual bool apply( Kopete::Account *account, Kopete::MetaContact *); - -protected: - /** The actual GUI */ - aimAddContactUI *m_gui; - TQLabel *noaddMsg1; - TQLabel *noaddMsg2; - bool canadd; -}; -#endif - -//kate: tab-width 4; indent-mode csands; - diff --git a/kopete/protocols/oscar/aim/ui/aimaddcontactui.ui b/kopete/protocols/oscar/aim/ui/aimaddcontactui.ui deleted file mode 100644 index 663d2fc5..00000000 --- a/kopete/protocols/oscar/aim/ui/aimaddcontactui.ui +++ /dev/null @@ -1,64 +0,0 @@ -<!DOCTYPE UI><UI version="3.1" stdsetdef="1"> -<class>aimAddContactUI</class> -<widget class="TQWidget"> - <property name="name"> - <cstring>aimAddContactUI</cstring> - </property> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>455</width> - <height>131</height> - </rect> - </property> - <vbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <property name="margin"> - <number>0</number> - </property> - <widget class="TQGroupBox"> - <property name="name"> - <cstring>GroupBox1</cstring> - </property> - <property name="title"> - <string>Contact Information</string> - </property> - <property name="layoutMargin" stdset="0"> - </property> - <property name="layoutSpacing" stdset="0"> - </property> - <grid> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <property name="margin"> - <number>11</number> - </property> - <property name="spacing"> - <number>6</number> - </property> - <widget class="TQLineEdit" row="0" column="1"> - <property name="name"> - <cstring>addSN</cstring> - </property> - </widget> - <widget class="TQLabel" row="0" column="0"> - <property name="name"> - <cstring>TextLabel1</cstring> - </property> - <property name="text"> - <string>AIM screen name:</string> - </property> - </widget> - </grid> - </widget> - </vbox> -</widget> -<tabstops> - <tabstop>addSN</tabstop> -</tabstops> -<layoutdefaults spacing="6" margin="11"/> -</UI> diff --git a/kopete/protocols/oscar/aim/ui/aimeditaccountui.ui b/kopete/protocols/oscar/aim/ui/aimeditaccountui.ui deleted file mode 100644 index c2ec9844..00000000 --- a/kopete/protocols/oscar/aim/ui/aimeditaccountui.ui +++ /dev/null @@ -1,540 +0,0 @@ -<!DOCTYPE UI><UI version="3.3" stdsetdef="1"> -<class>aimEditAccountUI</class> -<widget class="TQWidget"> - <property name="name"> - <cstring>aimEditAccountUI</cstring> - </property> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>560</width> - <height>583</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>5</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="caption"> - <string>Account Preferences - AIM</string> - </property> - <grid> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <property name="margin"> - <number>0</number> - </property> - <property name="spacing"> - <number>0</number> - </property> - <widget class="TQLabel" row="1" column="0"> - <property name="name"> - <cstring>labelStatusMessage</cstring> - </property> - <property name="text"> - <string></string> - </property> - <property name="alignment"> - <set>AlignCenter</set> - </property> - </widget> - <widget class="TQTabWidget" row="0" column="0"> - <property name="name"> - <cstring>tabWidget6</cstring> - </property> - <widget class="TQWidget"> - <property name="name"> - <cstring>tab</cstring> - </property> - <attribute name="title"> - <string>&Basic Setup</string> - </attribute> - <vbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="TQGroupBox"> - <property name="name"> - <cstring>groupBox72</cstring> - </property> - <property name="title"> - <string>Account Information</string> - </property> - <grid> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="TQLayoutWidget" row="0" column="0"> - <property name="name"> - <cstring>layout4</cstring> - </property> - <hbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="TQLabel"> - <property name="name"> - <cstring>lblAccountId</cstring> - </property> - <property name="text"> - <string>AIM &screen name:</string> - </property> - <property name="buddy" stdset="0"> - <cstring>edtAccountId</cstring> - </property> - <property name="toolTip" stdset="0"> - <string>The screen name of your AIM account.</string> - </property> - <property name="whatsThis" stdset="0"> - <string>The screen name of your AIM account. This should be in the form of an alphanumeric string (spaces allowed, not case sensitive).</string> - </property> - </widget> - <widget class="TQLineEdit"> - <property name="name"> - <cstring>edtAccountId</cstring> - </property> - <property name="toolTip" stdset="0"> - <string>The screen name of your AIM account.</string> - </property> - <property name="whatsThis" stdset="0"> - <string>The screen name of your AIM account. This should be in the form of an alphanumeric string (spaces allowed, not case sensitive).</string> - </property> - </widget> - </hbox> - </widget> - <widget class="Kopete::UI::PasswordWidget" row="1" column="0"> - <property name="name"> - <cstring>mPasswordWidget</cstring> - </property> - </widget> - <widget class="TQCheckBox" row="3" column="0"> - <property name="name"> - <cstring>mGlobalIdentity</cstring> - </property> - <property name="text"> - <string>Exclu&de from Global Identity</string> - </property> - </widget> - <widget class="TQCheckBox" row="2" column="0"> - <property name="name"> - <cstring>mAutoLogon</cstring> - </property> - <property name="text"> - <string>E&xclude from connect all</string> - </property> - <property name="whatsThis" stdset="0"> - <string>If you check that case, the account will not be connected when you press the "Connect All" button, or at startup even if you selected to automatically connect at startup</string> - </property> - </widget> - </grid> - </widget> - <widget class="TQGroupBox"> - <property name="name"> - <cstring>groupBox5</cstring> - </property> - <property name="sizePolicy"> - <sizepolicy> - <hsizetype>3</hsizetype> - <vsizetype>1</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="title"> - <string>Registration</string> - </property> - <hbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="TQLabel"> - <property name="name"> - <cstring>textLabel6</cstring> - </property> - <property name="sizePolicy"> - <sizepolicy> - <hsizetype>3</hsizetype> - <vsizetype>1</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize"> - <size> - <width>0</width> - <height>0</height> - </size> - </property> - <property name="text"> - <string>To connect to the AOL Instant Messaging network, you will need to use a screen name from AIM, AOL, or .Mac.<br><br>If you do not currently have an AIM screen name, please click the button to create one.</string> - </property> - <property name="alignment"> - <set>WordBreak|AlignVCenter</set> - </property> - </widget> - <widget class="TQPushButton"> - <property name="name"> - <cstring>buttonRegister</cstring> - </property> - <property name="text"> - <string>Re&gister New Account</string> - </property> - </widget> - </hbox> - </widget> - <spacer> - <property name="name"> - <cstring>spacer7</cstring> - </property> - <property name="orientation"> - <enum>Vertical</enum> - </property> - <property name="sizeType"> - <enum>Expanding</enum> - </property> - <property name="sizeHint"> - <size> - <width>20</width> - <height>90</height> - </size> - </property> - </spacer> - </vbox> - </widget> - <widget class="TQWidget"> - <property name="name"> - <cstring>tab</cstring> - </property> - <attribute name="title"> - <string>Accou&nt Preferences</string> - </attribute> - <grid> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="TQGroupBox" row="0" column="0" rowspan="1" colspan="2"> - <property name="name"> - <cstring>groupBox73</cstring> - </property> - <property name="title"> - <string>Connection Preferences</string> - </property> - <vbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="TQCheckBox"> - <property name="name"> - <cstring>optionOverrideServer</cstring> - </property> - <property name="text"> - <string>&Override default server information</string> - </property> - <property name="checked"> - <bool>false</bool> - </property> - </widget> - <widget class="TQLayoutWidget"> - <property name="name"> - <cstring>layout58</cstring> - </property> - <hbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="TQLabel"> - <property name="name"> - <cstring>lblServer</cstring> - </property> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Ser&ver:</string> - </property> - <property name="buddy" stdset="0"> - <cstring>edtServerAddress</cstring> - </property> - <property name="toolTip" stdset="0"> - <string>The IP address or hostmask of the AIM server you wish to connect to.</string> - </property> - <property name="whatsThis" stdset="0"> - <string>The IP address or hostmask of the AIM server you wish to connect to. Normally you will want the default (login.oscar.aol.com).</string> - </property> - </widget> - <widget class="TQLineEdit"> - <property name="name"> - <cstring>edtServerAddress</cstring> - </property> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>login.oscar.aol.com</string> - </property> - <property name="toolTip" stdset="0"> - <string>The IP address or hostmask of the AIM server you wish to connect to.</string> - </property> - <property name="whatsThis" stdset="0"> - <string>The IP address or hostmask of the AIM server you wish to connect to. Normally you will want the default (login.oscar.aol.com).</string> - </property> - </widget> - <widget class="TQLabel"> - <property name="name"> - <cstring>lblPort</cstring> - </property> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Po&rt:</string> - </property> - <property name="buddy" stdset="0"> - <cstring>sbxServerPort</cstring> - </property> - <property name="toolTip" stdset="0"> - <string>The port on the AIM server that you would like to connect to.</string> - </property> - <property name="whatsThis" stdset="0"> - <string>The port on the AIM server that you would like to connect to. Normally this is 5190.</string> - </property> - </widget> - <widget class="TQSpinBox"> - <property name="name"> - <cstring>sbxServerPort</cstring> - </property> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="maxValue"> - <number>65534</number> - </property> - <property name="minValue"> - <number>1</number> - </property> - <property name="value"> - <number>5190</number> - </property> - <property name="toolTip" stdset="0"> - <string>The port on the AIM server that you would like to connect to.</string> - </property> - <property name="whatsThis" stdset="0"> - <string>The port on the AIM server that you would like to connect to. Normally this is 5190.</string> - </property> - </widget> - </hbox> - </widget> - </vbox> - </widget> - <spacer row="2" column="0"> - <property name="name"> - <cstring>spacer21</cstring> - </property> - <property name="orientation"> - <enum>Vertical</enum> - </property> - <property name="sizeType"> - <enum>Expanding</enum> - </property> - <property name="sizeHint"> - <size> - <width>20</width> - <height>200</height> - </size> - </property> - </spacer> - <widget class="TQComboBox" row="1" column="1"> - <property name="name"> - <cstring>encodingCombo</cstring> - </property> - <property name="enabled"> - <bool>false</bool> - </property> - </widget> - <widget class="TQLabel" row="1" column="0"> - <property name="name"> - <cstring>textLabel1</cstring> - </property> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Default to the following &encoding for messages:</string> - </property> - <property name="buddy" stdset="0"> - <cstring>encodingCombo</cstring> - </property> - </widget> - </grid> - </widget> - <widget class="TQWidget"> - <property name="name"> - <cstring>tab</cstring> - </property> - <attribute name="title"> - <string>Pri&vacy</string> - </attribute> - <grid> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="TQButtonGroup" row="0" column="0"> - <property name="name"> - <cstring>buttonGroup1</cstring> - </property> - <property name="title"> - <string>Visibility settings</string> - </property> - <grid> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="TQRadioButton" row="2" column="0"> - <property name="name"> - <cstring>rbAllowPerimtList</cstring> - </property> - <property name="text"> - <string>Allow only from visible list</string> - </property> - </widget> - <widget class="TQRadioButton" row="0" column="1"> - <property name="name"> - <cstring>rbBlockAll</cstring> - </property> - <property name="text"> - <string>Block all users</string> - </property> - </widget> - <widget class="TQRadioButton" row="1" column="1"> - <property name="name"> - <cstring>rbBlockAIM</cstring> - </property> - <property name="text"> - <string>Block AIM users</string> - </property> - </widget> - <widget class="TQRadioButton" row="2" column="1"> - <property name="name"> - <cstring>rbBlockDenyList</cstring> - </property> - <property name="text"> - <string>Block only from invisible list</string> - </property> - </widget> - <widget class="TQRadioButton" row="0" column="0"> - <property name="name"> - <cstring>rbAllowAll</cstring> - </property> - <property name="text"> - <string>Allow all users</string> - </property> - </widget> - <widget class="TQRadioButton" row="1" column="0"> - <property name="name"> - <cstring>rbAllowMyContacts</cstring> - </property> - <property name="text"> - <string>Allow only contact list's users</string> - </property> - </widget> - </grid> - </widget> - <spacer row="1" column="0"> - <property name="name"> - <cstring>spacer3</cstring> - </property> - <property name="orientation"> - <enum>Vertical</enum> - </property> - <property name="sizeType"> - <enum>Expanding</enum> - </property> - <property name="sizeHint"> - <size> - <width>31</width> - <height>225</height> - </size> - </property> - </spacer> - </grid> - </widget> - </widget> - </grid> -</widget> -<customwidgets> - <customwidget> - <class>Kopete::UI::PasswordWidget</class> - <header location="local">kopetepasswordwidget.h</header> - <sizehint> - <width>50</width> - <height>50</height> - </sizehint> - <container>0</container> - <sizepolicy> - <hordata>1</hordata> - <verdata>0</verdata> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - <pixmap>image0</pixmap> - <signal>changed()</signal> - </customwidget> -</customwidgets> -<images> - <image name="image0"> - <data format="PNG" length="1002">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000003b149444154388dad945f4c5b551cc73fe7dc4b7b4bcba0762d45c43114323599ee6192609c51d883892ce083f1718b3ebb185f8dc91e972cf39d2d2a2f1af664b6f1e0fe3863a0718969700eb0c52142da0242a1bd6d696f7bcff101585203ceb8fd9ece39f99dcff9fe7edf939f88c562ec465f5f9fe609442c161362173c3e3eae7b7a7ac8e7f36432196cdbfe4f907c3e4f2291201e8fe338cec3737357e9e8e828aded1e229d650e1f2d51754b082110124c13a4dc5ea341eb9dc284c0558a853f3ce8cb0677ef500fde7d39d2596679e326597b8e9abb85d7a770ab16ab6983ec5a05b487a70e36f0f4e10afe408d6a558310980108478dba4a1e8233990c5d474b64ed39aa3a8fe5f3317fbf81dbd70bccfeb205947632fd74f6589c1c6ea2f70d03a58ba0c1f2c9bdc1b66de3b8256a6e11cbe7e3ee1d181b590124fe2693aeee08d223c82c3a2c24b7b874bec8f26288774f7bd054504aef0dde6e99c0eb83f9fb266323cb80a27fb0958141836044605a2ee5523393371cc646fee2da37195aa35d0c0c5b4859ac03d7e91712dcaac5adab3650a3ff9d08ef7dd8404bb48869e5d958b5b87dadc4c9a1464e9f0d0326df7ebd86bd2e310cb1bf62d384d59441f2d70a070e1c60e09489929b988681bdd9cc97170bcc4c65595f71f8e0e3301337fc24a7732467831875a47f289652b0be5e4151e6d07316c1b0c0340d8ab92023e76d66a6b2840e36d2fb7a13fee632475e6edc367ea98a90fb98b7dd6310ca0328a44761582e1bab41befabcc0ec940d28bc5e93b68e064cab84e1d9beaeb48934eac1f53b01c1b000fca496aa54b61a99fcde61662a4b4b4b23d1680be9d426173e4df3602a48ea411989a4fd590f52a8fd156b05ed9d350e3defe3cfdf4b4c7ce770ea7d3fb9f520afbe1620daeee5c26735d20b9b9cfb6811a754a439e4e5c5639a4caa1e5caf586bfc0197b78702005cb9b4cae4cd3267ce8638fe964bd72b393e39d74928d242617303a756a37f284447770dcdbffc6384a05a85de1306e9a52057c7527c7131c3c42d3f475eb2303c82d4fc3276d6811db37efeb148723082d9b08f79f97c1e5729109a9a28307cc622d2d6cdf52b2b24efe548dedb00142009862cfa879ee1a71f6cec928353511472fbf4389148b0b0e0c108081412458dfe21c9f11351e67e7358595468246d1d1e5e38a6e9e851bc39d84ab502a669331dafec0d8ec7e3e8cb06e1a881d727d1ae40180a434a8c9db129a54126ad48a7358c2b4c5352c8c374bcccdab2bb37d8719cba79fab8211f9df218e0582c261e95f8bfc04f1a1e8bc5c4dfe0a190172af6a9690000000049454e44ae426082</data> - </image> -</images> -<connections> - <connection> - <sender>optionOverrideServer</sender> - <signal>toggled(bool)</signal> - <receiver>lblServer</receiver> - <slot>setEnabled(bool)</slot> - </connection> - <connection> - <sender>optionOverrideServer</sender> - <signal>toggled(bool)</signal> - <receiver>lblPort</receiver> - <slot>setEnabled(bool)</slot> - </connection> - <connection> - <sender>optionOverrideServer</sender> - <signal>toggled(bool)</signal> - <receiver>edtServerAddress</receiver> - <slot>setEnabled(bool)</slot> - </connection> - <connection> - <sender>optionOverrideServer</sender> - <signal>toggled(bool)</signal> - <receiver>sbxServerPort</receiver> - <slot>setEnabled(bool)</slot> - </connection> -</connections> -<tabstops> - <tabstop>tabWidget6</tabstop> - <tabstop>edtAccountId</tabstop> - <tabstop>mAutoLogon</tabstop> - <tabstop>buttonRegister</tabstop> - <tabstop>optionOverrideServer</tabstop> - <tabstop>edtServerAddress</tabstop> - <tabstop>sbxServerPort</tabstop> - <tabstop>encodingCombo</tabstop> - <tabstop>rbAllowAll</tabstop> - <tabstop>rbAllowMyContacts</tabstop> - <tabstop>rbAllowPerimtList</tabstop> - <tabstop>rbBlockAll</tabstop> - <tabstop>rbBlockAIM</tabstop> - <tabstop>rbBlockDenyList</tabstop> -</tabstops> -<layoutdefaults spacing="6" margin="11"/> -<includehints> - <includehint>kopetepasswordwidget.h</includehint> -</includehints> -</UI> diff --git a/kopete/protocols/oscar/aim/ui/aimeditaccountwidget.cpp b/kopete/protocols/oscar/aim/ui/aimeditaccountwidget.cpp deleted file mode 100644 index e3c1f62b..00000000 --- a/kopete/protocols/oscar/aim/ui/aimeditaccountwidget.cpp +++ /dev/null @@ -1,172 +0,0 @@ -#include "aimeditaccountwidget.h" -#include "aimeditaccountui.h" - -#include <tqlayout.h> -#include <tqcheckbox.h> -#include <tqpushbutton.h> -#include <tqradiobutton.h> -#include <tqlineedit.h> -#include <tqspinbox.h> - -#include <kdebug.h> -#include <krun.h> -#include <kpassdlg.h> -#include <tdeconfig.h> - -#include "kopetepassword.h" -#include "kopetepasswordwidget.h" - -#include "aimprotocol.h" -#include "aimaccount.h" - -AIMEditAccountWidget::AIMEditAccountWidget( AIMProtocol *protocol, - Kopete::Account *account, TQWidget *parent, const char *name ) - : TQWidget( parent, name ), KopeteEditAccountWidget( account ) -{ - //kdDebug(14152) << k_funcinfo << "Called." << endl; - - mAccount = dynamic_cast<AIMAccount*>( account ); - mProtocol = protocol; - - // create the gui (generated from a .ui file) - ( new TQVBoxLayout( this ) )->setAutoAdd( true ); - mGui = new aimEditAccountUI( this, "AIMEditAccountWidget::mGui" ); - - // Read in the settings from the account if it exists - if ( mAccount ) - { - mGui->mPasswordWidget->load( &mAccount->password() ); - mGui->edtAccountId->setText( account->accountId() ); - //Remove me after we can change Account IDs (Matt) - mGui->edtAccountId->setDisabled( true ); - mGui->mAutoLogon->setChecked( account->excludeConnect() ); - TQString serverEntry = account->configGroup()->readEntry( "Server", "login.oscar.aol.com" ); - int portEntry = account->configGroup()->readNumEntry( "Port", 5190 ); - if ( serverEntry != "login.oscar.aol.com" || portEntry != 5190 ) - mGui->optionOverrideServer->setChecked( true ); - else - mGui->optionOverrideServer->setChecked( false ); - - mGui->edtServerAddress->setText( serverEntry ); - mGui->sbxServerPort->setValue( portEntry ); - - using namespace AIM::PrivacySettings; - - int privacySetting = mAccount->configGroup()->readNumEntry( "PrivacySetting", AllowAll ); - switch( privacySetting ) - { - case AllowAll: - mGui->rbAllowAll->setChecked( true ); - break; - case AllowMyContacts: - mGui->rbAllowMyContacts->setChecked( true ); - break; - case AllowPremitList: - mGui->rbAllowPerimtList->setChecked( true ); - break; - case BlockAll: - mGui->rbBlockAll->setChecked( true ); - break; - case BlockAIM: - mGui->rbBlockAIM->setChecked( true ); - break; - case BlockDenyList: - mGui->rbBlockDenyList->setChecked( true ); - break; - default: - mGui->rbAllowAll->setChecked( true ); - } - - // Global Identity - mGui->mGlobalIdentity->setChecked( account->configGroup()->readBoolEntry("ExcludeGlobalIdentity", false) ); - } - TQObject::connect( mGui->buttonRegister, TQT_SIGNAL( clicked() ), this, TQT_SLOT( slotOpenRegister() ) ); - - /* Set tab order to password custom widget correctly */ - TQWidget::setTabOrder( mGui->edtAccountId, mGui->mPasswordWidget->mRemembered ); - TQWidget::setTabOrder( mGui->mPasswordWidget->mRemembered, mGui->mPasswordWidget->mPassword ); - TQWidget::setTabOrder( mGui->mPasswordWidget->mPassword, mGui->mAutoLogon ); -} - -AIMEditAccountWidget::~AIMEditAccountWidget() -{} - -Kopete::Account *AIMEditAccountWidget::apply() -{ - kdDebug( 14152 ) << k_funcinfo << "Called." << endl; - - // If this is a new account, create it - if ( !mAccount ) - { - kdDebug( 14152 ) << k_funcinfo << "creating a new account" << endl; - TQString newId = mGui->edtAccountId->text(); - mAccount = new AIMAccount( mProtocol, newId ); - } - - mGui->mPasswordWidget->save( &mAccount->password() ); - - mAccount->setExcludeConnect( mGui->mAutoLogon->isChecked() ); // save the autologon choice - if ( mGui->optionOverrideServer->isChecked() ) - { - static_cast<OscarAccount *>( mAccount )->setServerAddress( mGui->edtServerAddress->text() ); - static_cast<OscarAccount *>( mAccount )->setServerPort( mGui->sbxServerPort->value() ); - } - else - { - static_cast<OscarAccount *>( mAccount )->setServerAddress( "login.oscar.aol.com" ); - static_cast<OscarAccount *>( mAccount )->setServerPort( 5190 ); - } - - using namespace AIM::PrivacySettings; - int privacySetting = AllowAll; - - if ( mGui->rbAllowAll->isChecked() ) - privacySetting = AllowAll; - else if ( mGui->rbAllowMyContacts->isChecked() ) - privacySetting = AllowMyContacts; - else if ( mGui->rbAllowPerimtList->isChecked() ) - privacySetting = AllowPremitList; - else if ( mGui->rbBlockAll->isChecked() ) - privacySetting = BlockAll; - else if ( mGui->rbBlockAIM->isChecked() ) - privacySetting = BlockAIM; - else if ( mGui->rbBlockDenyList->isChecked() ) - privacySetting = BlockDenyList; - - mAccount->configGroup()->writeEntry( "PrivacySetting", privacySetting ); - mAccount->setPrivacySettings( privacySetting ); - - // Global Identity - mAccount->configGroup()->writeEntry( "ExcludeGlobalIdentity", mGui->mGlobalIdentity->isChecked() ); - return mAccount; -} - -bool AIMEditAccountWidget::validateData() -{ - //kdDebug(14152) << k_funcinfo << "Called." << endl; - - TQString userName = mGui->edtAccountId->text(); - TQString server = mGui->edtServerAddress->text(); - int port = mGui->sbxServerPort->value(); - - if ( userName.length() < 1 ) - return false; - - if ( port < 1 ) - return false; - - if ( server.length() < 1 ) - return false; - - // Seems good to me - //kdDebug(14152) << k_funcinfo << "Account data validated successfully." << endl; - return true; -} - -void AIMEditAccountWidget::slotOpenRegister() -{ - KRun::runURL( "http://my.screenname.aol.com/_cqr/login/login.psp?siteId=snshomepage&mcState=initialized&createSn=1", "text/html" ); -} - -#include "aimeditaccountwidget.moc" -// vim: set noet ts=4 sts=4 sw=4: diff --git a/kopete/protocols/oscar/aim/ui/aimeditaccountwidget.h b/kopete/protocols/oscar/aim/ui/aimeditaccountwidget.h deleted file mode 100644 index 6ccaceb5..00000000 --- a/kopete/protocols/oscar/aim/ui/aimeditaccountwidget.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - AIMeditaccountwidget.h - AIM Account Widget - - Copyright (c) 2003 by Chris TenHarmsel <[email protected]> - - Kopete (c) 2003 by the Kopete developers <[email protected]> - - ************************************************************************* - * * - * 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. * - * * - ************************************************************************* -*/ - - -#ifndef AIMEDITACCOUNTWIDGET_H -#define AIMEDITACCOUNTWIDGET_H - -#include <tqwidget.h> -#include "editaccountwidget.h" -/** - * @author Chris TenHarmsel <[email protected]> - */ - -namespace Kopete -{ -class Account; -} - -class AIMAccount; -class AIMProtocol; -class aimEditAccountUI; - -class AIMEditAccountWidget : public TQWidget, public KopeteEditAccountWidget -{ -Q_OBJECT - - -public: - AIMEditAccountWidget(AIMProtocol *protocol, Kopete::Account *account, - TQWidget *parent=0, const char *name=0); - virtual ~AIMEditAccountWidget(); - - virtual bool validateData(); - virtual Kopete::Account *apply(); - -private slots: - void slotOpenRegister(); - -protected: - AIMAccount *mAccount; - AIMProtocol *mProtocol; - aimEditAccountUI *mGui; -}; -#endif -//kate: tab-width 4; indent-mode csands; diff --git a/kopete/protocols/oscar/aim/ui/aiminfobase.ui b/kopete/protocols/oscar/aim/ui/aiminfobase.ui deleted file mode 100644 index 188e4aad..00000000 --- a/kopete/protocols/oscar/aim/ui/aiminfobase.ui +++ /dev/null @@ -1,246 +0,0 @@ -<!DOCTYPE UI><UI version="3.1" stdsetdef="1"> -<class>AIMUserInfoWidget</class> -<widget class="TQWidget"> - <property name="name"> - <cstring>AIMUserInfoWidget</cstring> - </property> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>360</width> - <height>408</height> - </rect> - </property> - <property name="minimumSize"> - <size> - <width>360</width> - <height>400</height> - </size> - </property> - <property name="layoutMargin" stdset="0"> - </property> - <vbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <property name="margin"> - <number>0</number> - </property> - <widget class="TQLayoutWidget"> - <property name="name"> - <cstring>layout9</cstring> - </property> - <hbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="TQLabel"> - <property name="name"> - <cstring>lblNickName</cstring> - </property> - <property name="sizePolicy"> - <sizepolicy> - <hsizetype>4</hsizetype> - <vsizetype>4</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string>Nickname:</string> - </property> - </widget> - <widget class="TQLineEdit"> - <property name="name"> - <cstring>txtNickName</cstring> - </property> - <property name="sizePolicy"> - <sizepolicy> - <hsizetype>7</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - </widget> - <widget class="TQLabel"> - <property name="name"> - <cstring>lblScreenName</cstring> - </property> - <property name="sizePolicy"> - <sizepolicy> - <hsizetype>4</hsizetype> - <vsizetype>4</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string>Screen name:</string> - </property> - </widget> - <widget class="TQLineEdit"> - <property name="name"> - <cstring>txtScreenName</cstring> - </property> - <property name="readOnly"> - <bool>true</bool> - </property> - </widget> - </hbox> - </widget> - <widget class="TQLayoutWidget"> - <property name="name"> - <cstring>layout10</cstring> - </property> - <hbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="TQLabel"> - <property name="name"> - <cstring>lblWarnLevel</cstring> - </property> - <property name="text"> - <string>Warning level:</string> - </property> - </widget> - <widget class="TQLineEdit"> - <property name="name"> - <cstring>txtWarnLevel</cstring> - </property> - <property name="readOnly"> - <bool>true</bool> - </property> - </widget> - <widget class="TQLabel"> - <property name="name"> - <cstring>lblIdleTime</cstring> - </property> - <property name="text"> - <string>Idle minutes:</string> - </property> - </widget> - <widget class="TQLineEdit"> - <property name="name"> - <cstring>txtIdleTime</cstring> - </property> - <property name="readOnly"> - <bool>true</bool> - </property> - </widget> - </hbox> - </widget> - <widget class="TQLayoutWidget"> - <property name="name"> - <cstring>layout11</cstring> - </property> - <hbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="TQLabel"> - <property name="name"> - <cstring>lblOnlineSince</cstring> - </property> - <property name="text"> - <string>Online since:</string> - </property> - </widget> - <widget class="TQLineEdit"> - <property name="name"> - <cstring>txtOnlineSince</cstring> - </property> - <property name="readOnly"> - <bool>true</bool> - </property> - </widget> - </hbox> - </widget> - <widget class="TQLabel"> - <property name="name"> - <cstring>lblAwayMessage</cstring> - </property> - <property name="sizePolicy"> - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>1</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string>Away message:</string> - </property> - <property name="alignment"> - <set>AlignTop</set> - </property> - </widget> - <widget class="KTextBrowser"> - <property name="name"> - <cstring>txtAwayMessage</cstring> - </property> - <property name="sizePolicy"> - <sizepolicy> - <hsizetype>7</hsizetype> - <vsizetype>5</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="textFormat"> - <enum>AutoText</enum> - </property> - </widget> - <widget class="TQLabel"> - <property name="name"> - <cstring>textLabel1</cstring> - </property> - <property name="text"> - <string>Profile:</string> - </property> - </widget> - <widget class="TQFrame"> - <property name="name"> - <cstring>userInfoFrame</cstring> - </property> - <property name="sizePolicy"> - <sizepolicy> - <hsizetype>7</hsizetype> - <vsizetype>7</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize"> - <size> - <width>64</width> - <height>16</height> - </size> - </property> - <property name="frameShape"> - <enum>NoFrame</enum> - </property> - <property name="frameShadow"> - <enum>Plain</enum> - </property> - <property name="lineWidth"> - <number>0</number> - </property> - </widget> - </vbox> -</widget> -<tabstops> - <tabstop>txtNickName</tabstop> - <tabstop>txtScreenName</tabstop> - <tabstop>txtWarnLevel</tabstop> - <tabstop>txtIdleTime</tabstop> - <tabstop>txtOnlineSince</tabstop> - <tabstop>txtAwayMessage</tabstop> -</tabstops> -<layoutdefaults spacing="6" margin="11"/> -<includehints> - <includehint>ktextbrowser.h</includehint> -</includehints> -</UI> diff --git a/kopete/protocols/oscar/aim/ui/aimjoinchatbase.ui b/kopete/protocols/oscar/aim/ui/aimjoinchatbase.ui deleted file mode 100644 index 5b2d084b..00000000 --- a/kopete/protocols/oscar/aim/ui/aimjoinchatbase.ui +++ /dev/null @@ -1,124 +0,0 @@ -<!DOCTYPE UI><UI version="3.3" stdsetdef="1"> -<class>AIMJoinChatBase</class> -<widget class="TQWidget"> - <property name="name"> - <cstring>AIMJoinChatBase</cstring> - </property> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>343</width> - <height>99</height> - </rect> - </property> - <grid> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <property name="margin"> - <number>0</number> - </property> - <widget class="TQLabel" row="0" column="0" rowspan="1" colspan="3"> - <property name="name"> - <cstring>textLabel3</cstring> - </property> - <property name="text"> - <string>Please enter the name of the chat room you wish to join.</string> - </property> - </widget> - <spacer row="1" column="0"> - <property name="name"> - <cstring>spacer4</cstring> - </property> - <property name="orientation"> - <enum>Vertical</enum> - </property> - <property name="sizeType"> - <enum>Fixed</enum> - </property> - <property name="sizeHint"> - <size> - <width>20</width> - <height>16</height> - </size> - </property> - </spacer> - <spacer row="2" column="0"> - <property name="name"> - <cstring>spacer3</cstring> - </property> - <property name="orientation"> - <enum>Horizontal</enum> - </property> - <property name="sizeType"> - <enum>Maximum</enum> - </property> - <property name="sizeHint"> - <size> - <width>60</width> - <height>20</height> - </size> - </property> - </spacer> - <widget class="TQLabel" row="2" column="1"> - <property name="name"> - <cstring>textLabel1</cstring> - </property> - <property name="text"> - <string>Room &name:</string> - </property> - <property name="buddy" stdset="0"> - <cstring>roomName</cstring> - </property> - </widget> - <widget class="TQLabel" row="3" column="1"> - <property name="name"> - <cstring>textLabel2</cstring> - </property> - <property name="text"> - <string>E&xchange:</string> - </property> - <property name="buddy" stdset="0"> - <cstring>exchange</cstring> - </property> - </widget> - <widget class="TQLineEdit" row="2" column="2"> - <property name="name"> - <cstring>roomName</cstring> - </property> - <property name="sizePolicy"> - <sizepolicy> - <hsizetype>3</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - </widget> - <widget class="TQComboBox" row="3" column="2"> - <property name="name"> - <cstring>exchange</cstring> - </property> - </widget> - <spacer row="4" column="2"> - <property name="name"> - <cstring>spacer2</cstring> - </property> - <property name="orientation"> - <enum>Vertical</enum> - </property> - <property name="sizeType"> - <enum>Expanding</enum> - </property> - <property name="sizeHint"> - <size> - <width>20</width> - <height>16</height> - </size> - </property> - </spacer> - </grid> -</widget> -<layoutdefaults spacing="6" margin="11"/> -</UI> |