From 19a4810ce84b5a2a9d25c94035dc0c9a85ca28c6 Mon Sep 17 00:00:00 2001
From: Friedemann Kleint <Friedemann.Kleint@digia.com>
Date: Thu, 4 Apr 2013 17:20:15 +0200
Subject: [PATCH] CodePaster: Add setting for expiry.

Add a setting for expiry in days and additional setting for
PasteView dialog which can be used to override.

Change-Id: Ie45e26b5cefd8f468d2f5c47df148cce582b201e
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
---
 src/plugins/cpaster/codepasterprotocol.cpp    |  2 +-
 src/plugins/cpaster/codepasterprotocol.h      |  1 +
 src/plugins/cpaster/cpasterplugin.cpp         |  4 +-
 src/plugins/cpaster/fileshareprotocol.cpp     |  2 +-
 src/plugins/cpaster/fileshareprotocol.h       |  2 +-
 src/plugins/cpaster/kdepasteprotocol.cpp      |  6 +-
 src/plugins/cpaster/kdepasteprotocol.h        |  1 +
 src/plugins/cpaster/pastebindotcaprotocol.cpp |  6 +-
 src/plugins/cpaster/pastebindotcaprotocol.h   |  1 +
 .../cpaster/pastebindotcomprotocol.cpp        |  8 +--
 src/plugins/cpaster/pastebindotcomprotocol.h  |  1 +
 src/plugins/cpaster/pasteview.cpp             | 18 +++++-
 src/plugins/cpaster/pasteview.h               |  6 +-
 src/plugins/cpaster/pasteview.ui              | 31 +++++++++--
 src/plugins/cpaster/protocol.h                |  1 +
 src/plugins/cpaster/settings.cpp              |  8 ++-
 src/plugins/cpaster/settings.h                |  1 +
 src/plugins/cpaster/settingspage.cpp          |  2 +
 src/plugins/cpaster/settingspage.ui           | 55 +++++++++++++------
 src/plugins/cpaster/urlopenprotocol.cpp       |  2 +-
 src/plugins/cpaster/urlopenprotocol.h         |  2 +-
 21 files changed, 116 insertions(+), 44 deletions(-)

diff --git a/src/plugins/cpaster/codepasterprotocol.cpp b/src/plugins/cpaster/codepasterprotocol.cpp
index 9ac4d6d1483..07447151bb3 100644
--- a/src/plugins/cpaster/codepasterprotocol.cpp
+++ b/src/plugins/cpaster/codepasterprotocol.cpp
@@ -125,7 +125,7 @@ void CodePasterProtocol::list()
 }
 
 void CodePasterProtocol::paste(const QString &text,
-                               ContentType /* ct */,
+                               ContentType /* ct */, int /* expiryDays */,
                                const QString &username,
                                const QString &comment,
                                const QString &description)
diff --git a/src/plugins/cpaster/codepasterprotocol.h b/src/plugins/cpaster/codepasterprotocol.h
index 912f0a3e5b5..097f55e66c1 100644
--- a/src/plugins/cpaster/codepasterprotocol.h
+++ b/src/plugins/cpaster/codepasterprotocol.h
@@ -58,6 +58,7 @@ public:
     void list();
     void paste(const QString &text,
                ContentType ct = Text,
+               int expiryDays = 1,
                const QString &username = QString(),
                const QString &comment = QString(),
                const QString &description = QString());
diff --git a/src/plugins/cpaster/cpasterplugin.cpp b/src/plugins/cpaster/cpasterplugin.cpp
index e22513e1669..5ed8bafae69 100644
--- a/src/plugins/cpaster/cpasterplugin.cpp
+++ b/src/plugins/cpaster/cpasterplugin.cpp
@@ -262,8 +262,8 @@ void CodepasterPlugin::post(QString data, const QString &mimeType)
 
     const FileDataList diffChunks = splitDiffToFiles(data);
     const int dialogResult = diffChunks.isEmpty() ?
-        view.show(username, QString(), QString(), data) :
-        view.show(username, QString(), QString(), diffChunks);
+        view.show(username, QString(), QString(), m_settings->expiryDays, data) :
+        view.show(username, QString(), QString(), m_settings->expiryDays, diffChunks);
     // Save new protocol in case user changed it.
     if (dialogResult == QDialog::Accepted
         && m_settings->protocol != view.protocol()) {
diff --git a/src/plugins/cpaster/fileshareprotocol.cpp b/src/plugins/cpaster/fileshareprotocol.cpp
index d616439e89d..0663a5463fa 100644
--- a/src/plugins/cpaster/fileshareprotocol.cpp
+++ b/src/plugins/cpaster/fileshareprotocol.cpp
@@ -181,7 +181,7 @@ void FileShareProtocol::list()
 }
 
 void FileShareProtocol::paste(const QString &text,
-                              ContentType /* ct */,
+                              ContentType /* ct */, int /* expiryDays */,
                               const QString &username,
                               const QString & /* comment */,
                               const QString &description)
diff --git a/src/plugins/cpaster/fileshareprotocol.h b/src/plugins/cpaster/fileshareprotocol.h
index aee36c44795..62648918aa5 100644
--- a/src/plugins/cpaster/fileshareprotocol.h
+++ b/src/plugins/cpaster/fileshareprotocol.h
@@ -59,7 +59,7 @@ public:
     virtual void fetch(const QString &id);
     virtual void list();
     virtual void paste(const QString &text,
-                       ContentType ct = Text,
+                       ContentType ct = Text, int expiryDays = 1,
                        const QString &username = QString(),
                        const QString &comment = QString(),
                        const QString &description = QString());
diff --git a/src/plugins/cpaster/kdepasteprotocol.cpp b/src/plugins/cpaster/kdepasteprotocol.cpp
index 8c0fde42431..eca0e9a4448 100644
--- a/src/plugins/cpaster/kdepasteprotocol.cpp
+++ b/src/plugins/cpaster/kdepasteprotocol.cpp
@@ -43,8 +43,6 @@ enum { debug = 0 };
 static const char hostUrlC[]= "http://paste.kde.org/";
 static const char showPhpScriptpC[] = "show.php";
 
-enum { expirySeconds = 86400 };
-
 namespace CodePaster {
 KdePasteProtocol::KdePasteProtocol(const NetworkAccessManagerProxyPtr &nw) :
     NetworkProtocol(nw),
@@ -97,7 +95,7 @@ static inline QByteArray pasteLanguage(Protocol::ContentType ct)
 }
 
 void KdePasteProtocol::paste(const QString &text,
-                                   ContentType ct,
+                                   ContentType ct, int expiryDays,
                                    const QString &username,
                                    const QString &comment,
                                    const QString &description)
@@ -115,7 +113,7 @@ void KdePasteProtocol::paste(const QString &text,
     pasteData += "&paste_data=";
     pasteData += QUrl::toPercentEncoding(fixNewLines(text));
     pasteData += "&paste_expire=";
-    pasteData += QByteArray::number(expirySeconds);
+    pasteData += QByteArray::number(expiryDays * 86400);
     pasteData += '&';
     pasteData += pasteLanguage(ct);
 
diff --git a/src/plugins/cpaster/kdepasteprotocol.h b/src/plugins/cpaster/kdepasteprotocol.h
index 651c9b64d90..8c4f2ac43cf 100644
--- a/src/plugins/cpaster/kdepasteprotocol.h
+++ b/src/plugins/cpaster/kdepasteprotocol.h
@@ -48,6 +48,7 @@ public:
     virtual void fetch(const QString &id);
     virtual void paste(const QString &text,
                        ContentType ct = Text,
+                       int expiryDays = 1,
                        const QString &username = QString(),
                        const QString &comment = QString(),
                        const QString &description = QString());
diff --git a/src/plugins/cpaster/pastebindotcaprotocol.cpp b/src/plugins/cpaster/pastebindotcaprotocol.cpp
index ac62c7e3d91..acce9146488 100644
--- a/src/plugins/cpaster/pastebindotcaprotocol.cpp
+++ b/src/plugins/cpaster/pastebindotcaprotocol.cpp
@@ -90,7 +90,7 @@ static QByteArray toTypeId(Protocol::ContentType ct)
 }
 
 void PasteBinDotCaProtocol::paste(const QString &text,
-                                  ContentType ct,
+                                  ContentType ct, int expiryDays,
                                   const QString &username,
                                   const QString & /* comment */,
                                   const QString &description)
@@ -103,7 +103,9 @@ void PasteBinDotCaProtocol::paste(const QString &text,
     data += toTypeId(ct);
     data += "&description=";
     data += QUrl::toPercentEncoding(description);
-    data += "expiry=1%20day&name=";
+    data += "&expiry=";
+    data += QByteArray::number(expiryDays);
+    data += "%20day&name=";
     data += QUrl::toPercentEncoding(username);
     // fire request
     const QString link = QLatin1String(urlC) + QLatin1String("quiet-paste.php");
diff --git a/src/plugins/cpaster/pastebindotcaprotocol.h b/src/plugins/cpaster/pastebindotcaprotocol.h
index 9910d328725..b045240b90e 100644
--- a/src/plugins/cpaster/pastebindotcaprotocol.h
+++ b/src/plugins/cpaster/pastebindotcaprotocol.h
@@ -48,6 +48,7 @@ public:
     virtual void fetch(const QString &id);
     virtual void paste(const QString &text,
                        ContentType ct = Text,
+                       int expiryDays = 1,
                        const QString &username = QString(),
                        const QString &comment = QString(),
                        const QString &description = QString());
diff --git a/src/plugins/cpaster/pastebindotcomprotocol.cpp b/src/plugins/cpaster/pastebindotcomprotocol.cpp
index 8fceb8a8d5c..031c8383c2e 100644
--- a/src/plugins/cpaster/pastebindotcomprotocol.cpp
+++ b/src/plugins/cpaster/pastebindotcomprotocol.cpp
@@ -99,7 +99,7 @@ static inline QByteArray format(Protocol::ContentType ct)
 }
 
 void PasteBinDotComProtocol::paste(const QString &text,
-                                   ContentType ct,
+                                   ContentType ct, int expiryDays,
                                    const QString &username,
                                    const QString &comment,
                                    const QString &description)
@@ -111,14 +111,14 @@ void PasteBinDotComProtocol::paste(const QString &text,
     // Format body
     QByteArray pasteData = API_KEY;
     pasteData += "api_option=paste&";
-    pasteData += "api_paste_expire_date=1M&";
+    pasteData += "api_paste_expire_date=";
+    pasteData += QByteArray::number(expiryDays);
+    pasteData += "D&";
     pasteData += format(ct);
     pasteData += "api_paste_name=";
     pasteData += QUrl::toPercentEncoding(username);
-
     pasteData += "&api_paste_code=";
     pasteData += QUrl::toPercentEncoding(fixNewLines(text));
-
     // fire request
     m_pasteReply = httpPost(QLatin1String(PASTEBIN_BASE) + QLatin1String(PASTEBIN_API), pasteData);
     connect(m_pasteReply, SIGNAL(finished()), this, SLOT(pasteFinished()));
diff --git a/src/plugins/cpaster/pastebindotcomprotocol.h b/src/plugins/cpaster/pastebindotcomprotocol.h
index 3bbccbd4ad8..685dd8c3f6c 100644
--- a/src/plugins/cpaster/pastebindotcomprotocol.h
+++ b/src/plugins/cpaster/pastebindotcomprotocol.h
@@ -48,6 +48,7 @@ public:
     virtual void fetch(const QString &id);
     virtual void paste(const QString &text,
                        ContentType ct = Text,
+                       int expiryDays = 1,
                        const QString &username = QString(),
                        const QString &comment = QString(),
                        const QString &description = QString());
diff --git a/src/plugins/cpaster/pasteview.cpp b/src/plugins/cpaster/pasteview.cpp
index b201b1ce7c2..f8de8f95335 100644
--- a/src/plugins/cpaster/pasteview.cpp
+++ b/src/plugins/cpaster/pasteview.cpp
@@ -144,7 +144,7 @@ int PasteView::showDialog()
 
 // Show up with checkable list of diff chunks.
 int PasteView::show(const QString &user, const QString &description,
-                    const QString &comment, const FileDataList &parts)
+                    const QString &comment, int expiryDays, const FileDataList &parts)
 {
     setupDialog(user, description, comment);
     m_ui.uiPatchList->clear();
@@ -159,20 +159,32 @@ int PasteView::show(const QString &user, const QString &description,
     }
     m_ui.stackedWidget->setCurrentIndex(0);
     m_ui.uiPatchView->setPlainText(content);
+    setExpiryDays(expiryDays);
     return showDialog();
 }
 
 // Show up with editable plain text.
 int PasteView::show(const QString &user, const QString &description,
-                    const QString &comment, const QString &content)
+                    const QString &comment, int expiryDays, const QString &content)
 {
     setupDialog(user, description, comment);
     m_mode = PlainTextMode;
     m_ui.stackedWidget->setCurrentIndex(1);
     m_ui.plainTextEdit->setPlainText(content);
+    setExpiryDays(expiryDays);
     return showDialog();
 }
 
+void PasteView::setExpiryDays(int d)
+{
+    m_ui.expirySpinBox->setValue(d);
+}
+
+int PasteView::expiryDays() const
+{
+    return m_ui.expirySpinBox->value();
+}
+
 void PasteView::accept()
 {
     const int index = m_ui.protocolBox->currentIndex();
@@ -189,7 +201,7 @@ void PasteView::accept()
         return;
 
     const Protocol::ContentType ct = Protocol::contentType(m_mimeType);
-    protocol->paste(data, ct, user(), comment(), description());
+    protocol->paste(data, ct, expiryDays(), user(), comment(), description());
     // Store settings and close
     QSettings *settings = Core::ICore::settings();
     settings->beginGroup(QLatin1String(groupC));
diff --git a/src/plugins/cpaster/pasteview.h b/src/plugins/cpaster/pasteview.h
index a919feba2c7..acb2c2fae13 100644
--- a/src/plugins/cpaster/pasteview.h
+++ b/src/plugins/cpaster/pasteview.h
@@ -56,10 +56,10 @@ public:
 
     // Show up with checkable list of diff chunks.
     int show(const QString &user, const QString &description, const QString &comment,
-             const FileDataList &parts);
+             int expiryDays, const FileDataList &parts);
     // Show up with editable plain text.
     int show(const QString &user, const QString &description, const QString &comment,
-             const QString &content);
+             int expiryDays, const QString &content);
 
     void setProtocol(const QString &protocol);
 
@@ -68,6 +68,8 @@ public:
     QString comment() const;
     QString content() const;
     QString protocol() const;
+    void setExpiryDays(int d);
+    int expiryDays() const;
 
     virtual void accept();
 
diff --git a/src/plugins/cpaster/pasteview.ui b/src/plugins/cpaster/pasteview.ui
index 36c19658b0e..714826778a8 100644
--- a/src/plugins/cpaster/pasteview.ui
+++ b/src/plugins/cpaster/pasteview.ui
@@ -26,7 +26,7 @@
      <item row="0" column="1">
       <widget class="QComboBox" name="protocolBox"/>
      </item>
-     <item row="1" column="0">
+     <item row="2" column="0">
       <widget class="QLabel" name="userLabel">
        <property name="text">
         <string>&amp;Username:</string>
@@ -36,14 +36,14 @@
        </property>
       </widget>
      </item>
-     <item row="1" column="1">
+     <item row="2" column="1">
       <widget class="QLineEdit" name="uiUsername">
        <property name="placeholderText">
         <string>&lt;Username&gt;</string>
        </property>
       </widget>
      </item>
-     <item row="2" column="0">
+     <item row="3" column="0">
       <widget class="QLabel" name="descriptionLabel">
        <property name="text">
         <string>&amp;Description:</string>
@@ -53,13 +53,36 @@
        </property>
       </widget>
      </item>
-     <item row="2" column="1">
+     <item row="3" column="1">
       <widget class="QLineEdit" name="uiDescription">
        <property name="placeholderText">
         <string>&lt;Description&gt;</string>
        </property>
       </widget>
      </item>
+     <item row="1" column="1">
+      <widget class="QSpinBox" name="expirySpinBox">
+       <property name="suffix">
+        <string>Days</string>
+       </property>
+       <property name="minimum">
+        <number>1</number>
+       </property>
+       <property name="maximum">
+        <number>365</number>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="0">
+      <widget class="QLabel" name="expiryLabel">
+       <property name="text">
+        <string>&amp;Expires after:</string>
+       </property>
+       <property name="buddy">
+        <cstring>expirySpinBox</cstring>
+       </property>
+      </widget>
+     </item>
     </layout>
    </item>
    <item>
diff --git a/src/plugins/cpaster/protocol.h b/src/plugins/cpaster/protocol.h
index 76c0e569850..6fd81568166 100644
--- a/src/plugins/cpaster/protocol.h
+++ b/src/plugins/cpaster/protocol.h
@@ -74,6 +74,7 @@ public:
     virtual void list();
     virtual void paste(const QString &text,
                        ContentType ct = Text,
+                       int expiryDays = 1,
                        const QString &username = QString(),
                        const QString &comment = QString(),
                        const QString &description = QString()) = 0;
diff --git a/src/plugins/cpaster/settings.cpp b/src/plugins/cpaster/settings.cpp
index de6ebeddd8b..0c724ffe130 100644
--- a/src/plugins/cpaster/settings.cpp
+++ b/src/plugins/cpaster/settings.cpp
@@ -36,20 +36,22 @@
 
 static const char groupC[] = "CodePaster";
 static const char userNameKeyC[] = "UserName";
+static const char expiryDaysKeyC[] = "ExpiryDays";
 static const char defaultProtocolKeyC[] = "DefaultProtocol";
 static const char copyToClipboardKeyC[] = "CopyToClipboard";
 static const char displayOutputKeyC[] = "DisplayOutput";
 
 namespace CodePaster {
 
-Settings::Settings() : copyToClipboard(true), displayOutput(true)
+Settings::Settings() : expiryDays(1), copyToClipboard(true), displayOutput(true)
 {
 }
 
 bool Settings::equals(const Settings &rhs) const
 {
     return copyToClipboard == rhs.copyToClipboard && displayOutput == rhs.displayOutput
-            && username == rhs.username && protocol == rhs.protocol;
+           && expiryDays == rhs.expiryDays && username == rhs.username
+           && protocol == rhs.protocol;
 }
 
 void Settings::toSettings(QSettings *settings) const
@@ -57,6 +59,7 @@ void Settings::toSettings(QSettings *settings) const
     settings->beginGroup(QLatin1String(groupC));
     settings->setValue(QLatin1String(userNameKeyC), username);
     settings->setValue(QLatin1String(defaultProtocolKeyC), protocol);
+    settings->setValue(QLatin1String(expiryDaysKeyC), expiryDays);
     settings->setValue(QLatin1String(copyToClipboardKeyC), copyToClipboard);
     settings->setValue(QLatin1String(displayOutputKeyC), displayOutput);
     settings->endGroup();
@@ -66,6 +69,7 @@ void Settings::fromSettings(const QSettings *settings)
 {
     const QString rootKey = QLatin1String(groupC) + QLatin1Char('/');
     const QString defaultUser = Utils::Environment::systemEnvironment().userName();
+    expiryDays = settings->value(rootKey + QLatin1String(expiryDaysKeyC), 1).toInt();
     username = settings->value(rootKey + QLatin1String(userNameKeyC), defaultUser).toString();
     protocol = settings->value(rootKey + QLatin1String(defaultProtocolKeyC), PasteBinDotComProtocol::protocolName()).toString();
     copyToClipboard = settings->value(rootKey + QLatin1String(copyToClipboardKeyC), true).toBool();
diff --git a/src/plugins/cpaster/settings.h b/src/plugins/cpaster/settings.h
index 59c54f81594..54ebc913aad 100644
--- a/src/plugins/cpaster/settings.h
+++ b/src/plugins/cpaster/settings.h
@@ -46,6 +46,7 @@ struct Settings {
 
     QString username;
     QString protocol;
+    int expiryDays;
     bool copyToClipboard;
     bool displayOutput;
 };
diff --git a/src/plugins/cpaster/settingspage.cpp b/src/plugins/cpaster/settingspage.cpp
index cf87bfb12c6..35060653eb9 100644
--- a/src/plugins/cpaster/settingspage.cpp
+++ b/src/plugins/cpaster/settingspage.cpp
@@ -59,6 +59,7 @@ void SettingsWidget::setSettings(const Settings &settings)
     m_ui.userEdit->setText(settings.username);
     const int index = m_ui.defaultProtocol->findText(settings.protocol);
     m_ui.defaultProtocol->setCurrentIndex(index == -1 ? 0  : index);
+    m_ui.expirySpinBox->setValue(settings.expiryDays);
     m_ui.clipboardBox->setChecked(settings.copyToClipboard);
     m_ui.displayBox->setChecked(settings.displayOutput);
 }
@@ -68,6 +69,7 @@ Settings SettingsWidget::settings()
     Settings rc;
     rc.username = m_ui.userEdit->text();
     rc.protocol = m_ui.defaultProtocol->currentText();
+    rc.expiryDays = m_ui.expirySpinBox->value();
     rc.copyToClipboard = m_ui.clipboardBox->isChecked();
     rc.displayOutput = m_ui.displayBox->isChecked();
     return rc;
diff --git a/src/plugins/cpaster/settingspage.ui b/src/plugins/cpaster/settingspage.ui
index 21ee0564d03..8cb5bc1ce44 100644
--- a/src/plugins/cpaster/settingspage.ui
+++ b/src/plugins/cpaster/settingspage.ui
@@ -11,7 +11,14 @@
    </rect>
   </property>
   <layout class="QGridLayout" name="gridLayout">
-   <item row="8" column="0" colspan="2">
+   <item row="4" column="0" colspan="2">
+    <widget class="QCheckBox" name="clipboardBox">
+     <property name="text">
+      <string>Copy-paste URL to clipboard</string>
+     </property>
+    </widget>
+   </item>
+   <item row="9" column="0" colspan="2">
     <spacer name="verticalSpacer">
      <property name="orientation">
       <enum>Qt::Vertical</enum>
@@ -24,22 +31,35 @@
      </property>
     </spacer>
    </item>
-   <item row="4" column="0" colspan="2">
-    <widget class="QCheckBox" name="displayBox">
+   <item row="1" column="1">
+    <widget class="QLineEdit" name="userEdit"/>
+   </item>
+   <item row="0" column="1">
+    <widget class="QComboBox" name="defaultProtocol"/>
+   </item>
+   <item row="0" column="0">
+    <widget class="QLabel" name="protocolLabel">
      <property name="text">
-      <string>Display Output pane after sending a post</string>
+      <string>Default protocol:</string>
      </property>
     </widget>
    </item>
-   <item row="3" column="0" colspan="2">
-    <widget class="QCheckBox" name="clipboardBox">
+   <item row="2" column="0">
+    <widget class="QLabel" name="expiryLabel">
      <property name="text">
-      <string>Copy-paste URL to clipboard</string>
+      <string>&amp;Expires after:</string>
+     </property>
+     <property name="buddy">
+      <cstring>expirySpinBox</cstring>
      </property>
     </widget>
    </item>
-   <item row="1" column="1">
-    <widget class="QLineEdit" name="userEdit"/>
+   <item row="5" column="0" colspan="2">
+    <widget class="QCheckBox" name="displayBox">
+     <property name="text">
+      <string>Display Output pane after sending a post</string>
+     </property>
+    </widget>
    </item>
    <item row="1" column="0">
     <widget class="QLabel" name="userNameLabel">
@@ -48,13 +68,16 @@
      </property>
     </widget>
    </item>
-   <item row="0" column="1">
-    <widget class="QComboBox" name="defaultProtocol"/>
-   </item>
-   <item row="0" column="0">
-    <widget class="QLabel" name="protocolLabel">
-     <property name="text">
-      <string>Default protocol:</string>
+   <item row="2" column="1">
+    <widget class="QSpinBox" name="expirySpinBox">
+     <property name="suffix">
+      <string>Days</string>
+     </property>
+     <property name="minimum">
+      <number>1</number>
+     </property>
+     <property name="maximum">
+      <number>365</number>
      </property>
     </widget>
    </item>
diff --git a/src/plugins/cpaster/urlopenprotocol.cpp b/src/plugins/cpaster/urlopenprotocol.cpp
index 86589828221..f2e429e671f 100644
--- a/src/plugins/cpaster/urlopenprotocol.cpp
+++ b/src/plugins/cpaster/urlopenprotocol.cpp
@@ -71,7 +71,7 @@ void UrlOpenProtocol::fetchFinished()
     emit fetchDone(title, content, error);
 }
 
-void UrlOpenProtocol::paste(const QString &, ContentType, const QString &,
+void UrlOpenProtocol::paste(const QString &, ContentType, int, const QString &,
                             const QString &, const QString &)
 {
 }
diff --git a/src/plugins/cpaster/urlopenprotocol.h b/src/plugins/cpaster/urlopenprotocol.h
index dbd00674caf..3179078e1e0 100644
--- a/src/plugins/cpaster/urlopenprotocol.h
+++ b/src/plugins/cpaster/urlopenprotocol.h
@@ -43,7 +43,7 @@ public:
     QString name() const;
     unsigned capabilities() const;
     void fetch(const QString &url);
-    void paste(const QString &, ContentType, const QString &, const QString &, const QString &);
+    void paste(const QString &, ContentType, int, const QString &, const QString &, const QString &);
 
 private slots:
     void fetchFinished();
-- 
GitLab