CMakeFiles/qutecom.dir/chat/moc_QtChatWindow.o: In function
`QtChatWindow::qt_metacall(QMetaObject::Call, int, void**)':
/home/pitel/VoIPEX/qutecom/trunk/build/wengophone/src/presentation/qt/chat/moc_QtChatWindow.cxx:117:
undefined reference to `QtChatWindow::closeAllTabs()'
CMakeFiles/qutecom.dir/QtWengoPhone.o: In function
`QtWengoPhone::closeChatWindow()':
/home/pitel/VoIPEX/qutecom/trunk/wengophone/src/presentation/qt/QtWengoPhone.cpp:327:
undefined reference to `QtChatWindow::closeAllTabs()'

Vadim Lebedev napsal(a):
> Apllied,
> 
> I had to modify it for the main tree bcause QtChatWindow here does not
> had access to config object
> 
> Thanks
> Vadim
> Ralf Schlatterbeck wrote:
>> On Mon, Aug 04, 2008 at 08:46:17PM +0200, Ralf Schlatterbeck wrote:
>>   
>>> So either QtWengoPhone::currentUserProfileWillDieEventHandlerSlot is not
>>> the right spot to call closeAllTabs for the ChatWindow or this isn't the
>>> right approach altogether.
>>>     
>>
>> I'm now closing the chat windows in the Qt method that is called when
>> the disconnect method is selected from the menu. This already has a
>> dialog box that asks for confirmation when there is an active call and
>> seems the right place. Works for us in Kvats.
>>
>> Have you seen my earlier patch for the problem when pressing "Connect"
>> while already connecting
>> http://article.gmane.org/gmane.comp.voip.qutecom.devel/191
>> this probably should be applied first.
>>
>> # HG changeset patch
>> # User Ralf Schlatterbeck <[EMAIL PROTECTED]>
>> # Date 1218534845 -7200
>> # Node ID 6c7f2639cbd8199327352ea75d454930ec164c29
>> # Parent  f2ee82624dba46f951970756e8129b63aab098dc
>> Fix crash when disconnecting/reconnecting with open chat window.
>> The client would crash when reopening the same chat window after
>> reconnect that was open before disconnecting. Fixes Kvats issue99.
>> This is implemented by closing all chat windows in the QT disconnect
>> routine.
>>
>> diff -r f2ee82624dba -r 6c7f2639cbd8 
>> wengophone/src/presentation/qt/QtToolBar.cpp
>> --- a/wengophone/src/presentation/qt/QtToolBar.cpp   Tue Aug 12 11:19:27 
>> 2008 +0200
>> +++ b/wengophone/src/presentation/qt/QtToolBar.cpp   Tue Aug 12 11:54:05 
>> 2008 +0200
>> @@ -426,6 +426,8 @@ void QtToolBar::logOff() {
>>                      }
>>              }
>>              ////
>> +                // Close Chat
>> +                _qtWengoPhone.closeChatWindow ();
>>              
>>              // disable menubar and toolbar to avoid crashes
>>              _ui->menuBar->setEnabled(false);
>> diff -r f2ee82624dba -r 6c7f2639cbd8 
>> wengophone/src/presentation/qt/QtWengoPhone.cpp
>> --- a/wengophone/src/presentation/qt/QtWengoPhone.cpp        Tue Aug 12 
>> 11:19:27 2008 +0200
>> +++ b/wengophone/src/presentation/qt/QtWengoPhone.cpp        Tue Aug 12 
>> 11:54:05 2008 +0200
>> @@ -22,6 +22,7 @@
>>  #include "ui_WengoPhoneWindow.h"
>>  
>>  #include <presentation/PFactory.h>
>> +#include <presentation/qt/chat/QtChatWindow.h>
>>  
>>  #include <cutil/global.h>
>>  
>> @@ -307,6 +308,7 @@ QtCallBar & QtWengoPhone::getQtCallBar()
>>  
>>  void QtWengoPhone::setChatWindow(QWidget * chatWindow) {
>>      if (!chatWindow) {
>> +            _chatWindow = NULL;
>>              _ui->actionOpenChatWindow->setEnabled(false);
>>      }
>>      else {
>> @@ -317,6 +319,13 @@ void QtWengoPhone::setChatWindow(QWidget
>>  
>>  QWidget * QtWengoPhone::getChatWindow() const {
>>      return _chatWindow;
>> +}
>> +
>> +void QtWengoPhone::closeChatWindow() {
>> +        if (_chatWindow)
>> +        {
>> +            ((QtChatWindow *)_chatWindow)->closeAllTabs ();
>> +        }
>>  }
>>  
>>  void QtWengoPhone::setQtContactList(QtContactList * qtContactList) {
>> diff -r f2ee82624dba -r 6c7f2639cbd8 
>> wengophone/src/presentation/qt/QtWengoPhone.h
>> --- a/wengophone/src/presentation/qt/QtWengoPhone.h  Tue Aug 12 11:19:27 
>> 2008 +0200
>> +++ b/wengophone/src/presentation/qt/QtWengoPhone.h  Tue Aug 12 11:54:05 
>> 2008 +0200
>> @@ -132,6 +132,7 @@ public:
>>  
>>      void setChatWindow(QWidget * chatWindow);
>>      QWidget * getChatWindow() const;
>> +        void closeChatWindow ();
>>  
>>      void showHistory();
>>  
>> diff -r f2ee82624dba -r 6c7f2639cbd8 
>> wengophone/src/presentation/qt/chat/QtChatWindow.cpp
>> --- a/wengophone/src/presentation/qt/chat/QtChatWindow.cpp   Tue Aug 12 
>> 11:19:27 2008 +0200
>> +++ b/wengophone/src/presentation/qt/chat/QtChatWindow.cpp   Tue Aug 12 
>> 11:54:05 2008 +0200
>> @@ -435,19 +435,32 @@ void QtChatWindow::updateToolBarActions(
>>      if (widget) {
>>              contactId = widget->getContactId();
>>              qtContactList = _qtWengoPhone.getQtContactList();
>> -            contactProfile = 
>> qtContactList->getCContactList().getContactProfile(contactId.toStdString());
>> -
>> -            _ui->actionCallContact->setEnabled(contactProfile.hasCall()
>> -                    && contactProfile.isAvailable());
>> -            
>> _ui->actionSendSms->setEnabled(!contactProfile.getMobilePhone().empty() && 
>> !config.getSmsFeatureUseSip());
>> -            _ui->actionSendFile->setEnabled(widget->canDoFileTransfer());
>> -
>> -            _ui->actionCreateChatConf->setEnabled(widget->canDoMultiChat());
>> -            _ui->actionContactInfo->setEnabled(true);
>> -            //TODO: uncomment when block a contact will be implemented
>> -            
>> //_ui->actionBlockContact->setEnabled(!contactProfile.isBlocked());
>> -            _ui->actionBlockContact->setEnabled(false);
>> -            ////
>> +                if (qtContactList)
>> +                {
>> +                    contactProfile = 
>> qtContactList->getCContactList().getContactProfile(contactId.toStdString());
>> +
>> +                    
>> _ui->actionCallContact->setEnabled(contactProfile.hasCall()
>> +                            && contactProfile.isAvailable());
>> +                    
>> _ui->actionSendSms->setEnabled(!contactProfile.getMobilePhone().empty() && 
>> !config.getSmsFeatureUseSip());
>> +                    
>> _ui->actionSendFile->setEnabled(widget->canDoFileTransfer());
>> +
>> +                    
>> _ui->actionCreateChatConf->setEnabled(widget->canDoMultiChat());
>> +                    _ui->actionContactInfo->setEnabled(true);
>> +                    //TODO: uncomment when block a contact will be 
>> implemented
>> +                    
>> //_ui->actionBlockContact->setEnabled(!contactProfile.isBlocked());
>> +                    _ui->actionBlockContact->setEnabled(false);
>> +                    ////
>> +                }
>> +                else
>> +                {
>> +                    _ui->actionCallContact->setEnabled(false);
>> +                    _ui->actionSendSms->setEnabled(false);
>> +                    _ui->actionSendFile->setEnabled(false);
>> +
>> +                    _ui->actionCreateChatConf->setEnabled(false);
>> +                    _ui->actionContactInfo->setEnabled(false);
>> +                    _ui->actionBlockContact->setEnabled(false);
>> +                }
>>      }
>>  }
>>  
>> @@ -763,10 +776,14 @@ void QtChatWindow::saveActiveTabChatHist
>>  }
>>  
>>  void QtChatWindow::closeEvent(QCloseEvent *event) {
>> -    //LOG_DEBUG(" femeture des sessions ");
>> -    //while(_tabWidget->count()>0) {
>> -    //      closeActiveTab();
>> -    //}
>> +        //closeAllTabs();
>> +}
>> +
>> +void QtChatWindow::closeAllTabs() {
>> +    LOG_DEBUG("closing all Chat tabs");
>> +    while(_tabWidget->count()>0) {
>> +            closeActiveTab();
>> +    }
>>  }
>>  
>>  static QTextEdit* getActiveTextEdit() {
>> diff -r f2ee82624dba -r 6c7f2639cbd8 
>> wengophone/src/presentation/qt/chat/QtChatWindow.h
>> --- a/wengophone/src/presentation/qt/chat/QtChatWindow.h     Tue Aug 12 
>> 11:19:27 2008 +0200
>> +++ b/wengophone/src/presentation/qt/chat/QtChatWindow.h     Tue Aug 12 
>> 11:54:05 2008 +0200
>> @@ -89,6 +89,8 @@ public Q_SLOTS:
>>  
>>      void closeActiveTab();
>>  
>> +    void closeAllTabs();
>> +
>>      void statusChangedSlot(QString contactId);
>>  
>>      void saveActiveTabChatHistory();
>>
>>   
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> QuteCom-dev mailing list
> [email protected]
> http://lists.qutecom.org/mailman/listinfo/qutecom-dev



Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
QuteCom-dev mailing list
[email protected]
http://lists.qutecom.org/mailman/listinfo/qutecom-dev

Reply via email to