Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Marco Bubke
flatpak-qt-creator
Commits
5c663082
Commit
5c663082
authored
Jul 31, 2009
by
Maurice Kalinowski
Browse files
add pastebin.ca support for codepaster
- cannot list and does not need any preferences, as there is only one server
parent
435207a2
Changes
4
Hide whitespace changes
Inline
Side-by-side
src/plugins/cpaster/cpaster.pro
View file @
5c663082
...
...
@@ -10,7 +10,8 @@ HEADERS += cpasterplugin.h \
pasteview
.
h
\
codepastersettings
.
h
\
pastebindotcomprotocol
.
h
\
pastebindotcomsettings
.
h
pastebindotcomsettings
.
h
\
pastebindotcaprotocol
.
h
SOURCES
+=
cpasterplugin
.
cpp
\
settingspage
.
cpp
\
protocol
.
cpp
\
...
...
@@ -18,7 +19,8 @@ SOURCES += cpasterplugin.cpp \
pasteview
.
cpp
\
codepastersettings
.
cpp
\
pastebindotcomprotocol
.
cpp
\
pastebindotcomsettings
.
cpp
pastebindotcomsettings
.
cpp
\
pastebindotcaprotocol
.
cpp
FORMS
+=
settingspage
.
ui
\
pasteselect
.
ui
\
pasteview
.
ui
\
...
...
src/plugins/cpaster/cpasterplugin.cpp
View file @
5c663082
...
...
@@ -35,6 +35,7 @@
#include
"pasteview.h"
#include
"codepasterprotocol.h"
#include
"pastebindotcomprotocol.h"
#include
"pastebindotcaprotocol.h"
#include
<coreplugin/actionmanager/actionmanager.h>
#include
<coreplugin/coreconstants.h>
...
...
@@ -92,6 +93,7 @@ bool CodepasterPlugin::initialize(const QStringList &arguments, QString *error_m
// Create the protocols and append them to the Settings
Protocol
*
protos
[]
=
{
new
CodePasterProtocol
(),
new
PasteBinDotComProtocol
(),
new
PasteBinDotCaProtocol
(),
0
};
for
(
int
i
=
0
;
protos
[
i
]
!=
0
;
++
i
)
{
connect
(
protos
[
i
],
SIGNAL
(
pasteDone
(
QString
)),
this
,
SLOT
(
finishPost
(
QString
)));
...
...
src/plugins/cpaster/pastebindotcaprotocol.cpp
0 → 100644
View file @
5c663082
/**************************************************************************
**
** This file is part of Qt Creator
**
** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
**
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** Commercial Usage
**
** Licensees holding valid Qt Commercial licenses may use this file in
** accordance with the Qt Commercial License Agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Nokia.
**
** GNU Lesser General Public License Usage
**
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** If you are unsure which license is appropriate for your use, please
** contact the sales department at http://www.qtsoftware.com/contact.
**
**************************************************************************/
#include
"pastebindotcaprotocol.h"
#include
"cgi.h"
using
namespace
Core
;
PasteBinDotCaProtocol
::
PasteBinDotCaProtocol
()
{
connect
(
&
http
,
SIGNAL
(
requestFinished
(
int
,
bool
)),
this
,
SLOT
(
postRequestFinished
(
int
,
bool
)));
}
void
PasteBinDotCaProtocol
::
fetch
(
const
QString
&
id
)
{
QString
link
=
QLatin1String
(
"http://pastebin.ca/raw/"
);
link
.
append
(
id
);
QUrl
url
(
link
);
QNetworkRequest
r
(
url
);
reply
=
manager
.
get
(
r
);
connect
(
reply
,
SIGNAL
(
finished
()),
this
,
SLOT
(
fetchFinished
()));
fetchId
=
id
;
}
void
PasteBinDotCaProtocol
::
paste
(
const
QString
&
text
,
const
QString
&
username
,
const
QString
&
comment
,
const
QString
&
description
)
{
Q_UNUSED
(
comment
);
Q_UNUSED
(
description
);
QString
data
=
"content="
;
data
+=
CGI
::
encodeURL
(
text
);
data
+=
"&description="
;
data
+=
CGI
::
encodeURL
(
description
);
data
+=
"&type=1&expiry=1%20day&name="
;
data
+=
CGI
::
encodeURL
(
username
);
QHttpRequestHeader
header
(
"POST"
,
"/quiet-paste.php"
);
header
.
setValue
(
"host"
,
"pastebin.ca"
);
header
.
setContentType
(
"application/x-www-form-urlencoded"
);
http
.
setHost
(
"pastebin.ca"
,
QHttp
::
ConnectionModeHttp
);
header
.
setValue
(
"User-Agent"
,
"CreatorPastebin"
);
postId
=
http
.
request
(
header
,
data
.
toAscii
());
}
void
PasteBinDotCaProtocol
::
postRequestFinished
(
int
id
,
bool
error
)
{
QString
link
;
if
(
id
==
postId
)
{
if
(
!
error
)
{
QByteArray
data
=
http
.
readAll
();
link
=
QString
::
fromLatin1
(
"http://pastebin.ca/"
)
+
QString
(
data
).
remove
(
"SUCCESS:"
);
}
else
link
=
http
.
errorString
();
emit
pasteDone
(
link
);
}
}
void
PasteBinDotCaProtocol
::
fetchFinished
()
{
QString
title
;
QString
content
;
bool
error
=
reply
->
error
();
if
(
error
)
{
content
=
reply
->
errorString
();
}
else
{
title
=
QString
::
fromLatin1
(
"Pastebin.ca: %1"
).
arg
(
fetchId
);
content
=
reply
->
readAll
();
}
reply
->
deleteLater
();
reply
=
0
;
emit
fetchDone
(
title
,
content
,
error
);
}
src/plugins/cpaster/pastebindotcaprotocol.h
0 → 100644
View file @
5c663082
/**************************************************************************
**
** This file is part of Qt Creator
**
** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
**
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** Commercial Usage
**
** Licensees holding valid Qt Commercial licenses may use this file in
** accordance with the Qt Commercial License Agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Nokia.
**
** GNU Lesser General Public License Usage
**
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** If you are unsure which license is appropriate for your use, please
** contact the sales department at http://www.qtsoftware.com/contact.
**
**************************************************************************/
#ifndef PASTEBINDOTCAPROTOCOL_H
#define PASTEBINDOTCAPROTOCOL_H
#include
"protocol.h"
#include
<QtNetwork/QNetworkAccessManager>
#include
<QtNetwork/QNetworkReply>
#include
<QtNetwork/QHttp>
class
PasteBinDotCaProtocol
:
public
Protocol
{
Q_OBJECT
public:
PasteBinDotCaProtocol
();
QString
name
()
const
{
return
QLatin1String
(
"Pastebin.Ca"
);
}
bool
hasSettings
()
const
{
return
false
;
}
bool
canList
()
const
{
return
false
;
}
void
fetch
(
const
QString
&
id
);
void
paste
(
const
QString
&
text
,
const
QString
&
username
=
""
,
const
QString
&
comment
=
""
,
const
QString
&
description
=
""
);
public
slots
:
void
fetchFinished
();
void
postRequestFinished
(
int
id
,
bool
error
);
private:
QNetworkAccessManager
manager
;
QNetworkReply
*
reply
;
QString
fetchId
;
QHttp
http
;
int
postId
;
};
#endif // PASTEBINDOTCAPROTOCOL_H
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment