[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