summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tomaz.canabrava@intel.com>2014-12-28 21:43:38 -0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-12-29 09:06:55 -0800
commitb84edad59766e5f59f6c3dcf5bb3a2ec24fc3eec (patch)
tree8d25cfc30bf81c244b9fe9b0b78d2d366790af7b
parentecd0f25c04652115477bb1d9fcd78fd7ecaba916 (diff)
downloadsubsurface-b84edad59766e5f59f6c3dcf5bb3a2ec24fc3eec.tar.gz
Facebook integration: Add an interface to select the stuff that's sent
Generate the stub message that will go on the Facebook picture upload. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--qt-ui/socialnetworks.cpp65
-rw-r--r--qt-ui/socialnetworks.h16
-rw-r--r--qt-ui/socialnetworksdialog.ui59
-rw-r--r--subsurface.pro3
4 files changed, 113 insertions, 30 deletions
diff --git a/qt-ui/socialnetworks.cpp b/qt-ui/socialnetworks.cpp
index b722c34c5..8d24b2269 100644
--- a/qt-ui/socialnetworks.cpp
+++ b/qt-ui/socialnetworks.cpp
@@ -18,6 +18,7 @@
#include "mainwindow.h"
#include "profile/profilewidget2.h"
#include "pref.h"
+#include "ui_socialnetworksdialog.h"
#define GET_TXT(name, field) \
v = s.value(QString(name)); \
@@ -191,13 +192,12 @@ void FacebookManager::setDesiredAlbumName(const QString& a)
* and send erroniously *all* of them to facebook. */
void FacebookManager::sendDive()
{
- bool ok;
- albumName = QInputDialog::getText(qApp->activeWindow(), tr("Enter Facebook Album"),
- tr("Facebook Album:"), QLineEdit::Normal,
- "Subsurface", &ok);
- if (!ok)
+ SocialNetworkDialog dialog(qApp->activeWindow());
+ if (dialog.exec() != QDialog::Accepted)
return;
+
+ setDesiredAlbumName(dialog.album());
requestAlbumId();
ProfileWidget2 *profile = MainWindow::instance()->graphics();
@@ -210,7 +210,7 @@ void FacebookManager::sendDive()
QUrl url("https://graph.facebook.com/v2.2/" + QString(prefs.facebook.album_id) + "/photos?" +
"&access_token=" + QString(prefs.facebook.access_token) +
"&source=image" +
- "&message=" + QString(d->notes).toHtmlEscaped());
+ "&message=" + dialog.text());
QNetworkAccessManager *am = new QNetworkAccessManager(this);
@@ -237,11 +237,60 @@ void FacebookManager::sendDive()
connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
loop.exec();
- QJsonDocument jsonDoc = QJsonDocument::fromJson(reply->readAll());
+ QByteArray response = reply->readAll();
+ QJsonDocument jsonDoc = QJsonDocument::fromJson(response);
QJsonObject obj = jsonDoc.object();
if (obj.keys().contains("id")){
- QMessageBox::
+ QMessageBox::information(qApp->activeWindow(),
+ tr("Photo Upload Sucessfull"),
+ tr("Your dive profile was updated to facebook."),
+ QMessageBox::Ok);
} else {
+ QMessageBox::information(qApp->activeWindow(),
+ tr("Photo Upload Failed"),
+ tr("Your dive profile was not updated to facebook, \n "
+ "please send the following to the developer. \n"
+ + response),
+ QMessageBox::Ok);
+ }
+}
+SocialNetworkDialog::SocialNetworkDialog(QWidget *parent) : QDialog(parent)
+ , ui( new Ui::SocialnetworksDialog())
+{
+ ui->setupUi(this);
+ connect(ui->date, SIGNAL(clicked()), this, SLOT(selectionChanged()));
+ connect(ui->Buddy, SIGNAL(clicked()), this, SLOT(selectionChanged()));
+ connect(ui->Divemaster, SIGNAL(clicked()), this, SLOT(selectionChanged()));
+ connect(ui->Location, SIGNAL(clicked()), this, SLOT(selectionChanged()));
+ connect(ui->Notes, SIGNAL(clicked()), this, SLOT(selectionChanged()));
+}
+
+void SocialNetworkDialog::selectionChanged() {
+ struct dive *d = current_dive;
+ QString fullText;
+ if (ui->date->isChecked()) {
+ fullText += tr("Dive Date: %1 \n").arg(d->when);
+ }
+ if (ui->Buddy->isChecked()) {
+ fullText += tr("Buddy: %1 \n").arg(d->buddy);
}
+ if (ui->Divemaster->isChecked()) {
+ fullText += tr("Divemaster: %1 \n").arg(d->divemaster);
+ }
+ if (ui->Location->isChecked()) {
+ fullText += tr("Dive Location: %1 \n").arg(d->location);
+ }
+ if (ui->Notes->isChecked()) {
+ fullText += tr("\n %1").arg(d->notes);
+ }
+ ui->text->setPlainText(fullText);
+}
+
+QString SocialNetworkDialog::text() const {
+ return ui->text->toPlainText().toHtmlEscaped();
+}
+
+QString SocialNetworkDialog::album() const {
+ return ui->album->text().toHtmlEscaped();
}
diff --git a/qt-ui/socialnetworks.h b/qt-ui/socialnetworks.h
index 66a95f22a..1a5a2a0ba 100644
--- a/qt-ui/socialnetworks.h
+++ b/qt-ui/socialnetworks.h
@@ -3,6 +3,7 @@
#include <QObject>
#include <QUrl>
+#include <QDialog>
class FacebookManager : public QObject
{
@@ -29,4 +30,19 @@ private:
QString albumName;
};
+namespace Ui {
+ class SocialnetworksDialog;
+}
+
+class SocialNetworkDialog : public QDialog {
+ Q_OBJECT
+public:
+ SocialNetworkDialog(QWidget *parent);
+ QString text() const;
+ QString album() const;
+public slots:
+ void selectionChanged();
+private:
+ Ui::SocialnetworksDialog *ui;
+};
#endif // FACEBOOKMANAGER_H
diff --git a/qt-ui/socialnetworksdialog.ui b/qt-ui/socialnetworksdialog.ui
index 2c7702293..1b88c1b1a 100644
--- a/qt-ui/socialnetworksdialog.ui
+++ b/qt-ui/socialnetworksdialog.ui
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
- <class>Dialog</class>
- <widget class="QDialog" name="Dialog">
+ <class>SocialnetworksDialog</class>
+ <widget class="QDialog" name="SocialnetworksDialog">
<property name="geometry">
<rect>
<x>0</x>
@@ -14,45 +14,69 @@
<string>Dialog</string>
</property>
<layout class="QGridLayout" name="gridLayout">
- <item row="1" column="1" rowspan="7">
+ <item row="2" column="0">
+ <widget class="QLineEdit" name="album"/>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="label_2">
+ <property name="text">
+ <string>Folder</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" rowspan="9">
<widget class="QPlainTextEdit" name="text"/>
</item>
- <item row="3" column="0">
+ <item row="5" column="0">
<widget class="QCheckBox" name="time">
<property name="text">
<string>Time</string>
</property>
</widget>
</item>
- <item row="4" column="0">
+ <item row="6" column="0">
<widget class="QCheckBox" name="Location">
<property name="text">
<string>Location</string>
</property>
</widget>
</item>
- <item row="5" column="0">
+ <item row="7" column="0">
<widget class="QCheckBox" name="Divemaster">
<property name="text">
<string>Divemaster</string>
</property>
</widget>
</item>
- <item row="6" column="0">
+ <item row="8" column="0">
<widget class="QCheckBox" name="Buddy">
<property name="text">
<string>Buddy</string>
</property>
</widget>
</item>
- <item row="7" column="0">
+ <item row="4" column="0">
+ <widget class="QCheckBox" name="date">
+ <property name="text">
+ <string>date</string>
+ </property>
+ </widget>
+ </item>
+ <item row="9" column="0">
<widget class="QCheckBox" name="Notes">
<property name="text">
<string>Notes</string>
</property>
</widget>
</item>
- <item row="8" column="0" colspan="2">
+ <item row="0" column="0" colspan="2">
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Preview Message</string>
+ </property>
+ </widget>
+ </item>
+ <item row="10" column="0" colspan="2">
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
@@ -62,17 +86,10 @@
</property>
</widget>
</item>
- <item row="2" column="0">
- <widget class="QCheckBox" name="date">
- <property name="text">
- <string>date</string>
- </property>
- </widget>
- </item>
- <item row="0" column="0" colspan="2">
- <widget class="QLabel" name="label">
+ <item row="3" column="0">
+ <widget class="QLabel" name="label_3">
<property name="text">
- <string>Preview Message</string>
+ <string>Include</string>
</property>
</widget>
</item>
@@ -83,7 +100,7 @@
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
- <receiver>Dialog</receiver>
+ <receiver>SocialnetworksDialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
@@ -99,7 +116,7 @@
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
- <receiver>Dialog</receiver>
+ <receiver>SocialnetworksDialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
diff --git a/subsurface.pro b/subsurface.pro
index 02a416e88..ec8b0fd51 100644
--- a/subsurface.pro
+++ b/subsurface.pro
@@ -237,7 +237,8 @@ FORMS = \
qt-ui/configuredivecomputerdialog.ui \
qt-ui/listfilter.ui \
qt-ui/diveshareexportdialog.ui \
- qt-ui/filterwidget.ui
+ qt-ui/filterwidget.ui \
+ qt-ui/socialnetworksdialog.ui
# Nether usermanual or printing is supported on android right now
android: FORMS -= qt-ui/printoptions.ui