Hi!

Now the countdown only starts if the user manually changed status to
away/na/etc. but not when just editing the away message (with "set auto
response").
Index: plugins/qt-gui/src/awaymsgdlg.cpp
===================================================================
RCS file: /cvsroot/licq/qt-gui/src/awaymsgdlg.cpp,v
retrieving revision 1.56
diff -u -r1.56 awaymsgdlg.cpp
--- plugins/qt-gui/src/awaymsgdlg.cpp	9 May 2005 23:41:59 -0000	1.56
+++ plugins/qt-gui/src/awaymsgdlg.cpp	10 May 2005 19:10:31 -0000
@@ -105,12 +105,19 @@
   l->addSpacing(20);
   l->addWidget(btnOk);
   l->addWidget(btnCancel);
+
+  m_autocloseCounter = -1;
+  installEventFilter(this);
+  mleAwayMsg->installEventFilter(this);
+  connect(mleAwayMsg, SIGNAL(clicked(int, int)), SLOT(slot_autocloseStop()));
+  connect(mnuSelect, SIGNAL(aboutToShow()), SLOT(slot_autocloseStop()));
+  connect(btnHints, SIGNAL(clicked()), SLOT(slot_autocloseStop()));
 }
 
 
 // -----------------------------------------------------------------------------
 
-void AwayMsgDlg::SelectAutoResponse(unsigned short _status)
+void AwayMsgDlg::SelectAutoResponse(unsigned short _status, bool autoclose)
 {
   if((_status & 0xFF) == ICQ_STATUS_ONLINE || _status == ICQ_STATUS_OFFLINE)
     _status = (_status & 0xFF00) | ICQ_STATUS_AWAY;
@@ -156,14 +163,10 @@
   mleAwayMsg->setFocus();
   QTimer::singleShot(0, mleAwayMsg, SLOT(selectAll()));
 
-  installEventFilter(this);
-  mleAwayMsg->installEventFilter(this);
-  connect(mleAwayMsg, SIGNAL(clicked(int, int)),
-          this, SLOT(slot_autocloseStop()));
-  connect(mnuSelect, SIGNAL(aboutToShow()),
-          this, SLOT(slot_autocloseStop()));
-  m_autocloseCounter = 9;
-  slot_autocloseTick();
+  if (autoclose) {
+    m_autocloseCounter = 9;
+    slot_autocloseTick();
+  }
 
   if (!isVisible())
   {
Index: plugins/qt-gui/src/awaymsgdlg.h
===================================================================
RCS file: /cvsroot/licq/qt-gui/src/awaymsgdlg.h,v
retrieving revision 1.26
diff -u -r1.26 awaymsgdlg.h
--- plugins/qt-gui/src/awaymsgdlg.h	9 May 2005 14:26:11 -0000	1.26
+++ plugins/qt-gui/src/awaymsgdlg.h	10 May 2005 19:10:32 -0000
@@ -13,7 +13,7 @@
 public:
   AwayMsgDlg(QWidget *parent = 0);
   ~AwayMsgDlg();
-  void SelectAutoResponse(unsigned short status);
+  void SelectAutoResponse(unsigned short status, bool autoclose = false);
 
 protected:
   MLEditWrap *mleAwayMsg;
Index: plugins/qt-gui/src/mainwin.cpp
===================================================================
RCS file: /cvsroot/licq/qt-gui/src/mainwin.cpp,v
retrieving revision 1.360
diff -u -r1.360 mainwin.cpp
--- plugins/qt-gui/src/mainwin.cpp	3 May 2005 08:52:01 -0000	1.360
+++ plugins/qt-gui/src/mainwin.cpp	10 May 2005 19:10:43 -0000
@@ -2208,7 +2208,7 @@
 }
 
 
-void CMainWindow::showAwayMsgDlg(unsigned short nStatus)
+void CMainWindow::showAwayMsgDlg(unsigned short nStatus, bool autoclose)
 {
   if(awayMsgDlg == NULL) {
     awayMsgDlg = new AwayMsgDlg();
@@ -2218,7 +2218,7 @@
   else
     awayMsgDlg->raise();
 
-  awayMsgDlg->SelectAutoResponse(nStatus);
+  awayMsgDlg->SelectAutoResponse(nStatus, autoclose);
 }
 
 
@@ -2248,7 +2248,7 @@
     nRealID |= ICQ_STATUS_NA;
   
   if (nRealID != ICQ_STATUS_OFFLINE && (nRealID & 0xFF) != ICQ_STATUS_ONLINE)
-    showAwayMsgDlg(nRealID);
+    showAwayMsgDlg(nRealID, true);
 
   changeStatus(nRealID, nPPID);
 }
@@ -2257,7 +2257,7 @@
 void CMainWindow::changeStatusManual(int id)
 {
   if (id != ICQ_STATUS_OFFLINE && (id & 0xFF) != ICQ_STATUS_ONLINE)
-    showAwayMsgDlg(id);
+    showAwayMsgDlg(id, true);
 
   changeStatus(id);
 }
Index: plugins/qt-gui/src/mainwin.h
===================================================================
RCS file: /cvsroot/licq/qt-gui/src/mainwin.h,v
retrieving revision 1.142
diff -u -r1.142 mainwin.h
--- plugins/qt-gui/src/mainwin.h	3 May 2005 08:52:01 -0000	1.142
+++ plugins/qt-gui/src/mainwin.h	10 May 2005 19:10:44 -0000
@@ -348,7 +348,7 @@
   void showPluginDlg();
   void showGPGKeyManager();
   void slot_AwayMsgDlg();
-  void showAwayMsgDlg(unsigned short status);
+  void showAwayMsgDlg(unsigned short status, bool autoclose = false);
   void showOptionsDlg(int);
   void popupOptionsDlg() { emit showOptionsDlg(0); };
   void showAuthUserDlg();
ciao
  Jörg

Reply via email to