Patch (was Stability)
Vadim Lebedev
vadim at mbdsys.com
Thu Aug 14 16:29:47 CEST 2008
Jan,
Something worn on your side look here:
http://hg.qutecom.org/qutecom-2.2/annotate/f7d53c2f708f/wengophone/src/presentation/qt/chat/QtChatWindow.cpp
Ligne 776
The method is there
Thanks
Vadim
Jan Kaláb wrote:
> 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 <rsc at runtux.com>
>>> # 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
>> QuteCom-dev at lists.qutecom.org
>> http://lists.qutecom.org/mailman/listinfo/qutecom-dev
>>
>
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> QuteCom-dev mailing list
> QuteCom-dev at lists.qutecom.org
> http://lists.qutecom.org/mailman/listinfo/qutecom-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.qutecom.org/pipermail/qutecom-dev/attachments/20080814/c7347a6d/attachment-0001.htm
More information about the QuteCom-dev
mailing list