[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [Konversation] 978a1c8: Added DCC auto-resume feature by Michael
From:       Christian Muehlhaeuser <chris () chris ! de>
Date:       2010-07-01 13:27:26
Message-ID: 20100701132726.2CF4FBB55EB () projects ! kde ! org
[Download RAW message or body]

commit 978a1c83c4fce4f2d55b054b6e355f2e84e5f289
Author: Christian Muehlhaeuser <chris@chris.de>
Date:   Sat Jun 5 01:06:01 2004 +0000

    Added DCC auto-resume feature by Michael Goettsche (thanks!)
    
    CCMAIL:81740-done@bugs.kde.org
    
    svn path=/trunk/kdeextragear-2/konversation/; revision=317808

diff --git a/ChangeLog b/ChangeLog
index 286706c..a63fd25 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,5 @@
 Changes from 0.13 to 0.14
+- Added DCC auto-resume feature by Michael Goettsche (BR 81740) (thanks!)
 - Added systray notification
 - Added shell like nick completion mode (aka uga mode)
 - Implemented a cleaner way of handling tab shortcuts
diff --git a/konversation/dcctransfer.cpp b/konversation/dcctransfer.cpp
index 094e735..1d79854 100644
--- a/konversation/dcctransfer.cpp
+++ b/konversation/dcctransfer.cpp
@@ -134,7 +134,16 @@ void DccTransfer::startGet()
     setPosition(fileSize);
 
     QString newName(fullName);
-    int doResume=DccResumeDialog::ask(0,newName,dir.path());
+    int doResume;
+
+    if(KonversationApplication::preferences.getDccAutoResume())
+    {
+    	doResume=KDialogBase::Ok;
+    }
+    else
+    {
+    	doResume=DccResumeDialog::ask(0,newName,dir.path());
+    }
     /*
     int doResume=KMessageBox::questionYesNoCancel
                  (
diff --git a/konversation/konvdcop.cpp b/konversation/konvdcop.cpp
index 0317bb2..e2bcfe9 100644
--- a/konversation/konvdcop.cpp
+++ b/konversation/konvdcop.cpp
@@ -388,6 +388,10 @@ bool KonvPrefsDCOP::getDccCreateFolder()
 void KonvPrefsDCOP::setDccAutoGet(bool state)
 {
   KonversationApplication::preferences.setDccAutoGet(state);
+  if(KonversationApplication::preferences.getDccAutoResume() == true && state == \
false) +  {
+	  KonversationApplication::preferences.setDccAutoResume(false);
+  }
   static_cast<KonversationApplication *>(kapp)->saveOptions(true);
 }
 
@@ -396,6 +400,21 @@ bool KonvPrefsDCOP::getDccAutoGet()
   return KonversationApplication::preferences.getDccAutoGet();
 }
 
+void KonvPrefsDCOP::setDccAutoResume(bool state)
+{
+  KonversationApplication::preferences.setDccAutoResume(state);
+  if(KonversationApplication::preferences.getDccAutoGet() == false && state == true)
+  {
+	  KonversationApplication::preferences.setDccAutoGet(true);
+  }
+  static_cast<KonversationApplication*>(kapp)->saveOptions(true);
+}
+
+bool KonvPrefsDCOP::getDccAutoResume()
+{
+  return KonversationApplication::preferences.getDccAutoResume();
+}
+
 void KonvPrefsDCOP::setDccBufferSize(unsigned long size)
 {
   KonversationApplication::preferences.setDccBufferSize(size);
diff --git a/konversation/konvdcop.h b/konversation/konvdcop.h
index 2ad3818..b32dde3 100644
--- a/konversation/konvdcop.h
+++ b/konversation/konvdcop.h
@@ -105,6 +105,8 @@ class KonvPrefsDCOP : public QObject, virtual public \
KonvPreferencesIface  bool getDccCreateFolder();
   void setDccAutoGet(bool state);
   bool getDccAutoGet();
+  void setDccAutoResume(bool state);
+  bool getDccAutoResume();
   void setDccBufferSize(unsigned long size);
   unsigned long getDccBufferSize();
   void setDccPath(QString path);
diff --git a/konversation/konversationapplication.cpp \
b/konversation/konversationapplication.cpp index c906df8..23524cb 100644
--- a/konversation/konversationapplication.cpp
+++ b/konversation/konversationapplication.cpp
@@ -533,6 +533,7 @@ void KonversationApplication::readOptions()
   preferences.setDccAddPartner(config->readBoolEntry("AddPartner",preferences.getDccAddPartner()));
  preferences.setDccCreateFolder(config->readBoolEntry("CreateFolder",preferences.getDccCreateFolder()));
  preferences.setDccAutoGet(config->readBoolEntry("AutoGet",preferences.getDccAutoGet()));
 +  preferences.setDccAutoResume(config->readBoolEntry("AutoResume",preferences.getDccAutoResume()));
  
   // Path settings
   config->setGroup("Path Settings");
@@ -777,6 +778,7 @@ void KonversationApplication::saveOptions(bool updateGUI)
   config->writeEntry("BufferSize",preferences.getDccBufferSize());
   config->writeEntry("Rollback",preferences.getDccRollback());
   config->writeEntry("AutoGet",preferences.getDccAutoGet());
+  config->writeEntry("AutoResume",preferences.getDccAutoResume());
 
  // Path Settings
   config->setGroup("Path Settings");
diff --git a/konversation/konviface.h b/konversation/konviface.h
index 42d7f1f..ae7d065 100644
--- a/konversation/konviface.h
+++ b/konversation/konviface.h
@@ -87,6 +87,8 @@ class KonvPreferencesIface : virtual public DCOPObject
     virtual bool getDccCreateFolder() = 0;
     virtual void setDccAutoGet(bool state) = 0;
     virtual bool getDccAutoGet() = 0;
+    virtual void setDccAutoResume(bool state) = 0;
+    virtual bool getDccAutoResume() = 0;
     virtual void setDccBufferSize(unsigned long size) = 0;
     virtual unsigned long getDccBufferSize() = 0;
     virtual void setDccPath(QString path) = 0;
diff --git a/konversation/preferences.cpp b/konversation/preferences.cpp
index 13f7886..1ee4244 100644
--- a/konversation/preferences.cpp
+++ b/konversation/preferences.cpp
@@ -368,6 +368,9 @@ unsigned long Preferences::getDccRollback() { return dccRollback; \
}  void Preferences::setDccAutoGet(bool state) { dccAutoGet=state; }
 bool Preferences::getDccAutoGet() { return dccAutoGet; }
 
+void Preferences::setDccAutoResume(bool state) { dccAutoResume=state; }
+bool Preferences::getDccAutoResume() { return dccAutoResume; }
+
 void Preferences::setDccPath(const QString &path) { dccPath=path; }
 QString Preferences::getDccPath() { return dccPath; }
 
diff --git a/konversation/preferences.h b/konversation/preferences.h
index 94d187f..bf16ecf 100644
--- a/konversation/preferences.h
+++ b/konversation/preferences.h
@@ -111,6 +111,8 @@ class Preferences : public QObject
     bool getDccCreateFolder();
     void setDccAutoGet(bool state);
     bool getDccAutoGet();
+    void setDccAutoResume(bool state);
+    bool getDccAutoResume();
     void setDccBufferSize(unsigned long size);
     unsigned long getDccBufferSize();
     void setDccPath(const QString &path);
@@ -409,6 +411,7 @@ class Preferences : public QObject
     bool dccAddPartner;
     bool dccCreateFolder;   // create folders for each DCC partner?
     bool dccAutoGet;
+    bool dccAutoResume;
     unsigned long dccBufferSize;
     unsigned long dccRollback;  // Rollback for Resume
     QString dccPath;
diff --git a/konversation/prefspagedccsettings.cpp \
b/konversation/prefspagedccsettings.cpp index 697c0f7..473a7bf 100644
--- a/konversation/prefspagedccsettings.cpp
+++ b/konversation/prefspagedccsettings.cpp
@@ -34,7 +34,7 @@ PrefsPageDccSettings::PrefsPageDccSettings(QFrame* \
newParent,Preferences* newPre  {
   setName("DCC Settings");
   // Add a Layout to the DCC settings pane
-  QGridLayout* dccSettingsLayout=new \
QGridLayout(parentFrame,5,3,marginHint(),spacingHint(),"dcc_settings_layout"); +  \
QGridLayout* dccSettingsLayout=new \
QGridLayout(parentFrame,6,3,marginHint(),spacingHint(),"dcc_settings_layout");  
   QLabel* dccFolderLabel=new QLabel(i18n("DCC &folder:"),parentFrame);
   dccFolderInput=new KLineEdit(preferences->getDccPath(),parentFrame);
@@ -63,12 +63,16 @@ PrefsPageDccSettings::PrefsPageDccSettings(QFrame* \
newParent,Preferences* newPre  dccSpinBoxes->setStretchFactor(dccRollbackLabel,10);
 
   dccAutoGet=new QCheckBox(i18n("&Automatically accept DCC \
download"),parentFrame,"dcc_autoget_checkbox"); +  connect(dccAutoGet, \
SIGNAL(stateChanged(int)), this, SLOT(autoGetStateChanged(int))); +  \
dccAutoResume=new QCheckBox(i18n("&Automatically resume DCC download"), \
parentFrame,"dcc_autoresume_checkbox"); +  connect(dccAutoResume, \
SIGNAL(stateChanged(int)), this, SLOT(autoResumeStateChanged(int)));  \
dccAddSender=new QCheckBox(i18n("Add &sender to file \
name"),parentFrame,"dcc_sender_checkbox");  dccCreateFolder=new \
QCheckBox(i18n("&Create folder for \
sender"),parentFrame,"dcc_create_folder_checkbox");  
   dccAddSender->setChecked(preferences->getDccAddPartner());
   dccCreateFolder->setChecked(preferences->getDccCreateFolder());
   dccAutoGet->setChecked(preferences->getDccAutoGet());
+  dccAutoResume->setChecked(preferences->getDccAutoResume());
 
   QHBox* dccSpacer=new QHBox(parentFrame);
 
@@ -84,6 +88,8 @@ PrefsPageDccSettings::PrefsPageDccSettings(QFrame* \
newParent,Preferences* newPre  
   dccSettingsLayout->addMultiCellWidget(dccAutoGet,row,row,0,2);
   row++;
+  dccSettingsLayout->addMultiCellWidget(dccAutoResume,row,row,0,2);
+  row++;
   dccSettingsLayout->addMultiCellWidget(dccAddSender,row,row,0,2);
   row++;
   dccSettingsLayout->addMultiCellWidget(dccCreateFolder,row,row,0,2);
@@ -115,12 +121,29 @@ void PrefsPageDccSettings::folderButtonClicked()
   }
 }
 
+void PrefsPageDccSettings::autoResumeStateChanged(int state)
+{
+	if(state == QButton::On)
+	{
+		dccAutoGet->setChecked(true);
+	}
+}
+
+void PrefsPageDccSettings::autoGetStateChanged(int state)
+{
+	if(state == QButton::Off && dccAutoResume->isChecked())
+	{
+		dccAutoResume->setChecked(false);
+	}
+}
+
 void PrefsPageDccSettings::applyPreferences()
 {
   preferences->setDccPath(dccFolderInput->text());
   preferences->setDccBufferSize(dccBufferSpin->value());
   preferences->setDccRollback(dccRollbackSpin->value());
   preferences->setDccAutoGet(dccAutoGet->isChecked());
+  preferences->setDccAutoResume(dccAutoResume->isChecked());
   preferences->setDccAddPartner(dccAddSender->isChecked());
   preferences->setDccCreateFolder(dccCreateFolder->isChecked());
 }
diff --git a/konversation/prefspagedccsettings.h \
b/konversation/prefspagedccsettings.h index e121f3f..7ace979 100644
--- a/konversation/prefspagedccsettings.h
+++ b/konversation/prefspagedccsettings.h
@@ -39,12 +39,15 @@ class PrefsPageDccSettings : public PrefsPage
 
   protected slots:
     void folderButtonClicked();
+    void autoResumeStateChanged(int state);
+    void autoGetStateChanged(int state);
 
   protected:
     KLineEdit* dccFolderInput;
     QSpinBox* dccBufferSpin;
     QSpinBox* dccRollbackSpin;
     QCheckBox* dccAutoGet;
+    QCheckBox* dccAutoResume;
     QCheckBox* dccAddSender;
     QCheckBox* dccCreateFolder;
 };


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic