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

List:       kde-commits
Subject:    extragear/network/ktorrent
From:       Joris Guisson <joris.guisson () gmail ! com>
Date:       2009-12-08 17:43:41
Message-ID: 1260294221.047219.9998.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1060369 by guisson:

Expand open url dialog, it is now possible to open silently and to select the group


 M  +1 -0      ChangeLog  
 M  +29 -14    ktorrent/core.cpp  
 M  +3 -3      ktorrent/core.h  
 M  +53 -7     ktorrent/dialogs/pastedialog.cpp  
 M  +23 -9     ktorrent/dialogs/pastedialog.h  
 M  +61 -29    ktorrent/dialogs/pastedlgbase.ui  
 M  +2 -0      ktorrent/gui.cpp  
 M  +2 -2      libktcore/interfaces/coreinterface.h  


--- trunk/extragear/network/ktorrent/ChangeLog #1060368:1060369
@@ -10,6 +10,7 @@
 - DHT can no longer be disabled at compile time
 - Add support for magnet URL's (214375)
 - Fix crash due to uncaught warning 
+- Expand open url dialog, it is now possible to open silently and to select the \
group  
 Changes in 3.3.2:
 - Fix crash when loading Feed in syndication plugin at startup (216207)
--- trunk/extragear/network/ktorrent/ktorrent/core.cpp #1060368:1060369
@@ -407,10 +407,11 @@
 				dir = QDir::homePath();
 			
 			QString group;
-			if (add_to_groups.contains(j))
+			QMap<KUrl,QString>::iterator i = add_to_groups.find(j->url());
+			if (i != add_to_groups.end())
 			{
-				group = add_to_groups[j];
-				add_to_groups.remove(j);
+				group = i.value();
+				add_to_groups.erase(i);
 			}
 		
 			if (dir != QString::null && loadFromData(j->data(),dir,group,false, j->url()))
@@ -424,7 +425,7 @@
 	{
 		if (url.protocol() == "magnet")
 		{
-			load(bt::MagnetLink(url.prettyUrl()));
+			load(bt::MagnetLink(url.prettyUrl()),group);
 		}
 		else if (url.isLocalFile())
 		{
@@ -443,7 +444,7 @@
 			KIO::Job* j = KIO::storedGet(url);
 			connect(j,SIGNAL(result(KJob*)),this,SLOT(downloadFinished( KJob* )));
 			if (!group.isNull())
-				add_to_groups.insert(j,group);
+				add_to_groups.insert(url,group);
 		}
 	}
 
@@ -482,10 +483,11 @@
 			}
 			
 			QString group;
-			if (add_to_groups.contains(j))
+			QMap<KUrl,QString>::iterator i = add_to_groups.find(j->url());
+			if (i != add_to_groups.end())
 			{
-				group = add_to_groups[j];
-				add_to_groups.remove(j);
+				group = i.value();
+				add_to_groups.erase(i);
 			}
 				
 			
@@ -500,7 +502,7 @@
 	{
 		if (url.protocol() == "magnet")
 		{
-			loadSilently(bt::MagnetLink(url.prettyUrl()));
+			loadSilently(bt::MagnetLink(url.prettyUrl()),group);
 		}
 		else if (url.isLocalFile())
 		{
@@ -524,7 +526,7 @@
 			KIO::Job* j = KIO::storedGet(url);
 			connect(j,SIGNAL(result(KJob*)),this,SLOT(downloadFinishedSilently( KJob* )));
 			if (!group.isNull())
-				add_to_groups.insert(j,group);
+				add_to_groups.insert(url,group);
 		}
 	}
 	
@@ -1248,7 +1250,7 @@
 		gui->updateActions();
 	}
 	
-	void Core::load(const bt::MagnetLink& mlink)
+	void Core::load(const bt::MagnetLink& mlink,const QString & group)
 	{
 		if (!mlink.isValid())
 		{
@@ -1261,10 +1263,12 @@
 						"For optimum results enable DHT."));
 			magnet->download(mlink,false);
 			startUpdateTimer();
+			if (!group.isNull())
+				add_to_groups.insert(KUrl(mlink.toString()),group);
 		}
 	}
 	
-	void Core::loadSilently(const bt::MagnetLink& mlink)
+	void Core::loadSilently(const bt::MagnetLink& mlink,const QString & group)
 	{
 		if (!mlink.isValid())
 		{
@@ -1278,6 +1282,8 @@
 							"For optimum results enable DHT."));
 			magnet->download(mlink,true);
 			startUpdateTimer();
+			if (!group.isNull())
+				add_to_groups.insert(KUrl(mlink.toString()),group);
 		}
 	}
 
@@ -1296,10 +1302,19 @@
 		out->write(data.data(),data.size());
 		enc.end();
 		
+		KUrl url = mlink.toString();
+		QString group;
+		QMap<KUrl,QString>::iterator i = add_to_groups.find(url);
+		if (i != add_to_groups.end())
+		{
+			group = i.value();
+			add_to_groups.erase(i);
+		}
+		
 		if (silently)
-			loadSilently(data,KUrl(mlink.toString()),QString(),QString());
+			loadSilently(tmp,url,group,QString());
 		else
-			load(tmp,KUrl(mlink.toString()),QString(),QString());
+			load(tmp,url,group,QString());
 		
 	}
 
--- trunk/extragear/network/ktorrent/ktorrent/core.h #1060368:1060369
@@ -67,8 +67,8 @@
 		virtual void load(const QByteArray & data,const KUrl& url,const QString & \
group,const QString & savedir);  virtual void loadSilently(const KUrl& url,const \
QString & group);  virtual void loadSilently(const QByteArray & data,const KUrl& \
                url,const QString & group,const QString & savedir);
-		virtual void load(const bt::MagnetLink & mlink);
-		virtual void loadSilently(const bt::MagnetLink & mlink);
+		virtual void load(const bt::MagnetLink & mlink,const QString & group);
+		virtual void loadSilently(const bt::MagnetLink & mlink,const QString & group);
 		virtual QString findNewTorrentDir() const;
 		virtual void loadExistingTorrent(const QString & tor_dir);
 		virtual void setPausedState(bool pause);
@@ -283,7 +283,7 @@
 		kt::GroupManager* gman;
 		kt::MagnetModel* magnet;
 		QMap<KJob*,KUrl> custom_save_locations; // map to store save locations
-		QMap<KJob*,QString> add_to_groups; // Map to keep track of which group to add a \
torrent to +		QMap<KUrl,QString> add_to_groups; // Map to keep track of which group \
to add a torrent to  int sleep_suppression_cookie;
 		QMap<bt::TorrentInterface*,ScanListener*> active_scans;
 	};
--- trunk/extragear/network/ktorrent/ktorrent/dialogs/pastedialog.cpp \
#1060368:1060369 @@ -27,31 +27,77 @@
 #include <KMessageBox>
 #include <KLocale>
 #include <KStandardGuiItem>
+#include <groups/groupmanager.h>
 
 namespace kt
 {
-	PasteDialog::PasteDialog ( Core* core, QWidget* parent, Qt::WFlags fl )
-			:KDialog ( parent, fl )
+	PasteDialog::PasteDialog(Core* core, QWidget* parent, Qt::WFlags fl)
+			:KDialog(parent, fl)
 	{
-		setupUi ( mainWidget() );
+		setupUi(mainWidget());
 		setWindowTitle(i18n("Open an URL"));
 		
 		m_core = core;
 		QClipboard *cb = QApplication::clipboard();
-		QString text = cb->text ( QClipboard::Clipboard );
+		QString text = cb->text(QClipboard::Clipboard);
 
 		KUrl url = KUrl(text);
 
-		if ( url.isValid() )
-			m_url->setText ( text );
+		if (url.isValid())
+			m_url->setText(text);
+		
+		loadGroups();
 	}
+	
+	PasteDialog::~PasteDialog()
+	{
+	}
 
+	void PasteDialog::loadGroups()
+	{
+		GroupManager* gman = m_core->getGroupManager();
+		GroupManager::iterator it = gman->begin();
+		QStringList grps;
+		//First default group
+		grps << i18n("All Torrents");
+		
+		//now custom ones
+		while(it != gman->end())
+		{
+			grps << it->first;
+			++it;
+		}
+		
+		m_groups->addItems(grps);
+	}
+
+	void PasteDialog::loadState(KSharedConfigPtr cfg)
+	{
+		KConfigGroup g = cfg->group("PasteDlg");
+		m_silently->setChecked(g.readEntry("silently",false));
+		m_groups->setCurrentIndex(g.readEntry("group",0));
+	}
+
+	void PasteDialog::saveState(KSharedConfigPtr cfg)
+	{
+		KConfigGroup g = cfg->group("PasteDlg");
+		g.writeEntry("silently",m_silently->isChecked());
+		g.writeEntry("group",m_groups->currentIndex());
+	}
+
 	void PasteDialog::accept()
 	{
 		KUrl url = KUrl( m_url->text() );
 		if ( url.isValid() )
 		{
-			m_core->load(url,QString());
+			QString group;
+			if (m_groups->currentIndex() > 0)
+				group = m_groups->currentText();
+			
+			if (m_silently->isChecked())
+				m_core->loadSilently(url,group);
+			else
+				m_core->load(url,group);
 			QDialog::accept();
 		}
 		else
--- trunk/extragear/network/ktorrent/ktorrent/dialogs/pastedialog.h #1060368:1060369
@@ -35,15 +35,29 @@
 	 **/
 	class PasteDialog: public KDialog, public Ui_PasteDlgBase
 	{
-			Q_OBJECT
-		public slots:
-			virtual void accept();
-
-		public:
-			PasteDialog ( Core* core, QWidget* parent = 0, Qt::WFlags fl = 0 );
-
-		private:
-			Core* m_core;
+		Q_OBJECT
+	public:
+		PasteDialog(Core* core, QWidget* parent = 0, Qt::WFlags fl = 0);
+		virtual ~PasteDialog();
+		
+		/**
+		* Load the state of the dialog
+		*/
+		void loadState(KSharedConfigPtr cfg);
+		
+		/**
+		* Save the state of the dialog
+		*/
+		void saveState(KSharedConfigPtr cfg);
+		
+	public slots:
+		virtual void accept();
+		
+	private:
+		void loadGroups();
+		
+	private:
+		Core* m_core;
 	};
 }
 #endif
--- trunk/extragear/network/ktorrent/ktorrent/dialogs/pastedlgbase.ui \
#1060368:1060369 @@ -1,54 +1,43 @@
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
  <class>PasteDlgBase</class>
- <widget class="QWidget" name="PasteDlgBase" >
-  <property name="geometry" >
+ <widget class="QWidget" name="PasteDlgBase">
+  <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>454</width>
-    <height>45</height>
+    <height>76</height>
    </rect>
   </property>
-  <property name="windowTitle" >
+  <property name="windowTitle">
    <string>Open an URL</string>
   </property>
-  <layout class="QVBoxLayout" >
-   <property name="spacing" >
-    <number>4</number>
-   </property>
-   <property name="leftMargin" >
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="margin">
     <number>0</number>
    </property>
-   <property name="topMargin" >
-    <number>0</number>
-   </property>
-   <property name="rightMargin" >
-    <number>0</number>
-   </property>
-   <property name="bottomMargin" >
-    <number>0</number>
-   </property>
    <item>
-    <layout class="QHBoxLayout" >
+    <layout class="QHBoxLayout" name="horizontalLayout">
      <item>
-      <widget class="QLabel" name="textLabel1" >
-       <property name="text" >
+      <widget class="QLabel" name="textLabel1">
+       <property name="text">
         <string>URL:</string>
        </property>
-       <property name="wordWrap" >
+       <property name="wordWrap">
         <bool>false</bool>
        </property>
       </widget>
      </item>
      <item>
-      <widget class="KLineEdit" name="m_url" >
-       <property name="sizePolicy" >
-        <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+      <widget class="KLineEdit" name="m_url">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
          <horstretch>0</horstretch>
          <verstretch>0</verstretch>
         </sizepolicy>
        </property>
-       <property name="minimumSize" >
+       <property name="minimumSize">
         <size>
          <width>400</width>
          <height>0</height>
@@ -59,8 +48,46 @@
     </layout>
    </item>
    <item>
-    <widget class="Line" name="line" >
-     <property name="orientation" >
+    <layout class="QHBoxLayout" name="horizontalLayout_3">
+     <item>
+      <widget class="QCheckBox" name="m_silently">
+       <property name="text">
+        <string>Open silently</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer name="horizontalSpacer">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>40</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+     <item>
+      <layout class="QHBoxLayout" name="horizontalLayout_2">
+       <item>
+        <widget class="QLabel" name="label">
+         <property name="text">
+          <string>Group:</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="KComboBox" name="m_groups"/>
+       </item>
+      </layout>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="Line" name="line">
+     <property name="orientation">
       <enum>Qt::Horizontal</enum>
      </property>
     </widget>
@@ -73,6 +100,11 @@
    <extends>QLineEdit</extends>
    <header>klineedit.h</header>
   </customwidget>
+  <customwidget>
+   <class>KComboBox</class>
+   <extends>QComboBox</extends>
+   <header>kcombobox.h</header>
+  </customwidget>
  </customwidgets>
  <resources/>
  <connections/>
--- trunk/extragear/network/ktorrent/ktorrent/gui.cpp #1060368:1060369
@@ -292,7 +292,9 @@
 	void GUI::pasteURL()
 	{
 		PasteDialog dlg(core, this);
+		dlg.loadState(KGlobal::config());
 		dlg.exec();
+		dlg.saveState(KGlobal::config());
 	}
 	
 	void GUI::paste()
--- trunk/extragear/network/ktorrent/libktcore/interfaces/coreinterface.h \
#1060368:1060369 @@ -211,10 +211,10 @@
 		virtual void applySettings() = 0;
 		
 		/// Load a magnet link
-		virtual void load(const bt::MagnetLink & mlink) = 0;
+		virtual void load(const bt::MagnetLink & mlink,const QString & group) = 0;
 		
 		/// Load a magnet link silently
-		virtual void loadSilently(const bt::MagnetLink & mlink) = 0;
+		virtual void loadSilently(const bt::MagnetLink & mlink,const QString & group) = 0;
 	signals:
 		/**
 		 * Seeing that when load returns the loading process may not have finished yet,


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

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