From dbb21e0b1691024a6dcaf8995837c469af0b023f Mon Sep 17 00:00:00 2001 From: thunder2 Date: Tue, 14 Sep 2010 19:38:47 +0000 Subject: [PATCH] The forum details (name and description) can be edited by the owner. Recompile of the gui needed. git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3488 b45a01b8-16f6-495d-af2f-9b41ad6348cc --- libretroshare/src/retroshare/rsforums.h | 8 ++ libretroshare/src/services/p3forums.cc | 16 +++ libretroshare/src/services/p3forums.h | 1 + retroshare-gui/src/RetroShare.pro | 3 + retroshare-gui/src/gui/ForumsDialog.cpp | 25 +++- retroshare-gui/src/gui/ForumsDialog.h | 2 + .../src/gui/forums/EditForumDetails.cpp | 79 +++++++++++ .../src/gui/forums/EditForumDetails.h | 53 +++++++ .../src/gui/forums/EditForumDetails.ui | 130 ++++++++++++++++++ retroshare-gui/src/lang/retroshare_de.qm | Bin 235445 -> 236054 bytes retroshare-gui/src/lang/retroshare_de.ts | 93 +++++++++---- 11 files changed, 384 insertions(+), 26 deletions(-) create mode 100644 retroshare-gui/src/gui/forums/EditForumDetails.cpp create mode 100644 retroshare-gui/src/gui/forums/EditForumDetails.h create mode 100644 retroshare-gui/src/gui/forums/EditForumDetails.ui diff --git a/libretroshare/src/retroshare/rsforums.h b/libretroshare/src/retroshare/rsforums.h index af13b414b..1446c8f49 100644 --- a/libretroshare/src/retroshare/rsforums.h +++ b/libretroshare/src/retroshare/rsforums.h @@ -130,6 +130,14 @@ virtual bool forumsChanged(std::list &forumIds) = 0; virtual std::string createForum(std::wstring forumName, std::wstring forumDesc, uint32_t forumFlags) = 0; virtual bool getForumInfo(std::string fId, ForumInfo &fi) = 0; + +/*! + * allows peers to change information for the forum: + * can only change name and descriptions + * + */ +virtual bool setForumInfo(std::string fId, ForumInfo &fi) = 0; + virtual bool getForumList(std::list &forumList) = 0; virtual bool getForumThreadList(std::string fId, std::list &msgs) = 0; virtual bool getForumThreadMsgList(std::string fId, std::string pId, std::list &msgs) = 0; diff --git a/libretroshare/src/services/p3forums.cc b/libretroshare/src/services/p3forums.cc index d563b5b41..e82e2436f 100644 --- a/libretroshare/src/services/p3forums.cc +++ b/libretroshare/src/services/p3forums.cc @@ -128,6 +128,22 @@ bool p3Forums::getForumInfo(std::string fId, ForumInfo &fi) return true; } +/*! + * allows peers to change information for the forum: + * can only change name and descriptions + * + */ +bool p3Forums::setForumInfo(std::string fId, ForumInfo &fi) +{ + GroupInfo gi; + + RsStackMutex stack(distribMtx); + + gi.grpName = fi.forumName; + gi.grpDesc = fi.forumDesc; + + return locked_editGroup(fId, gi); + } bool p3Forums::getForumList(std::list &forumList) { diff --git a/libretroshare/src/services/p3forums.h b/libretroshare/src/services/p3forums.h index 4b3706ec1..3f0ec8b82 100644 --- a/libretroshare/src/services/p3forums.h +++ b/libretroshare/src/services/p3forums.h @@ -50,6 +50,7 @@ virtual bool forumsChanged(std::list &forumIds); virtual std::string createForum(std::wstring forumName, std::wstring forumDesc, uint32_t forumFlags); virtual bool getForumInfo(std::string fId, ForumInfo &fi); +virtual bool setForumInfo(std::string fId, ForumInfo &fi); virtual bool getForumList(std::list &forumList); virtual bool getForumThreadList(std::string fId, std::list &msgs); virtual bool getForumThreadMsgList(std::string fId, std::string tId, std::list &msgs); diff --git a/retroshare-gui/src/RetroShare.pro b/retroshare-gui/src/RetroShare.pro index 0bf4abe90..f6eb549bc 100644 --- a/retroshare-gui/src/RetroShare.pro +++ b/retroshare-gui/src/RetroShare.pro @@ -182,6 +182,7 @@ HEADERS += rshare.h \ gui/LinksDialog.h \ gui/ForumsDialog.h \ gui/forums/ForumDetails.h \ + gui/forums/EditForumDetails.h \ gui/forums/CreateForum.h \ gui/forums/CreateForumMsg.h \ gui/NetworkView.h \ @@ -325,6 +326,7 @@ FORMS += gui/StartDialog.ui \ gui/forums/CreateForum.ui \ gui/forums/CreateForumMsg.ui \ gui/forums/ForumDetails.ui \ + gui/forums/EditForumDetails.ui \ gui/NetworkView.ui \ gui/TrustView.ui \ gui/MessengerWindow.ui \ @@ -405,6 +407,7 @@ SOURCES += main.cpp \ gui/LinksDialog.cpp \ gui/ForumsDialog.cpp \ gui/forums/ForumDetails.cpp \ + gui/forums/EditForumDetails.cpp \ gui/forums/CreateForum.cpp \ gui/forums/CreateForumMsg.cpp \ gui/NetworkView.cpp \ diff --git a/retroshare-gui/src/gui/ForumsDialog.cpp b/retroshare-gui/src/gui/ForumsDialog.cpp index b969e161d..a86cdc0ea 100644 --- a/retroshare-gui/src/gui/ForumsDialog.cpp +++ b/retroshare-gui/src/gui/ForumsDialog.cpp @@ -30,6 +30,7 @@ #include "forums/CreateForum.h" #include "forums/CreateForumMsg.h" #include "forums/ForumDetails.h" +#include "forums/EditForumDetails.h" #include "msgs/MessageComposer.h" #include "settings/rsharesettings.h" #include "common/Emoticons.h" @@ -168,6 +169,7 @@ ForumsDialog::ForumsDialog(QWidget *parent) m_bProcessSettings = false; m_bIsForumSubscribed = false; + m_bIsForumAdmin = false; connect( ui.forumTreeWidget, SIGNAL( customContextMenuRequested( QPoint ) ), this, SLOT( forumListCustomPopupMenu( QPoint ) ) ); connect( ui.threadTreeWidget, SIGNAL( customContextMenuRequested( QPoint ) ), this, SLOT( threadListCustomPopupMenu( QPoint ) ) ); @@ -356,8 +358,13 @@ void ForumsDialog::forumListCustomPopupMenu( QPoint point ) detailsForumAct->setDisabled (true); connect( detailsForumAct , SIGNAL( triggered() ), this, SLOT( showForumDetails() ) ); + QAction *editForumDetailsAct = new QAction(QIcon(":/images/settings16.png"), tr("Edit Forum Details"), this); + editForumDetailsAct->setDisabled (true); + connect( editForumDetailsAct, SIGNAL( triggered() ), this, SLOT( editForumDetails() ) ); + if (!mCurrForumId.empty ()) { detailsForumAct->setEnabled (true); + editForumDetailsAct->setEnabled(m_bIsForumAdmin); } contextMnu.addAction( subForumAct ); @@ -365,6 +372,7 @@ void ForumsDialog::forumListCustomPopupMenu( QPoint point ) contextMnu.addSeparator(); contextMnu.addAction( newForumAct ); contextMnu.addAction( detailsForumAct ); + contextMnu.addAction( editForumDetailsAct ); contextMnu.exec(QCursor::pos()); } @@ -896,6 +904,7 @@ void ForumsDialog::insertThreads() std::cerr << "ForumsDialog::insertThreads()" << std::endl; m_bIsForumSubscribed = false; + m_bIsForumAdmin = false; QTreeWidgetItem *forumItem = ui.forumTreeWidget->currentItem(); if ((!forumItem) || (forumItem->parent() == NULL)) @@ -924,6 +933,9 @@ void ForumsDialog::insertThreads() ForumInfo fi; if (rsForums->getForumInfo (fId, fi)) { + if (fi.subscribeFlags & RS_DISTRIB_ADMIN) { + m_bIsForumAdmin = true; + } if (fi.subscribeFlags & (RS_DISTRIB_ADMIN | RS_DISTRIB_SUBSCRIBED)) { m_bIsForumSubscribed = true; } @@ -1628,7 +1640,7 @@ void ForumsDialog::createmessage() void ForumsDialog::createthread() { if (mCurrForumId.empty ()) { - QMessageBox::information(this, tr("RetroShare"),tr("No Forum Selected!")); + QMessageBox::information(this, tr("RetroShare"), tr("No Forum Selected!")); return; } @@ -1676,6 +1688,17 @@ void ForumsDialog::showForumDetails() fui.exec (); } +void ForumsDialog::editForumDetails() +{ + if (mCurrForumId == "") + { + return; + } + + EditForumDetails editUi(mCurrForumId, this); + editUi.exec(); +} + void ForumsDialog::replytomessage() { if (mCurrForumId.empty()) { diff --git a/retroshare-gui/src/gui/ForumsDialog.h b/retroshare-gui/src/gui/ForumsDialog.h index b5662f76a..177400dd5 100644 --- a/retroshare-gui/src/gui/ForumsDialog.h +++ b/retroshare-gui/src/gui/ForumsDialog.h @@ -69,6 +69,7 @@ private slots: void unsubscribeToForum(); void showForumDetails(); + void editForumDetails(); void previousMessage (); void nextMessage (); @@ -112,6 +113,7 @@ private: std::string mCurrForumId; std::string mCurrThreadId; bool m_bIsForumSubscribed; + bool m_bIsForumAdmin; QFont m_ForumNameFont; QFont m_ItemFont; diff --git a/retroshare-gui/src/gui/forums/EditForumDetails.cpp b/retroshare-gui/src/gui/forums/EditForumDetails.cpp new file mode 100644 index 000000000..1323f19ed --- /dev/null +++ b/retroshare-gui/src/gui/forums/EditForumDetails.cpp @@ -0,0 +1,79 @@ +/**************************************************************** + * RetroShare is distributed under the following license: + * + * Copyright (C) 2010 RetroShare Team + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + ****************************************************************/ + +#include "EditForumDetails.h" + +#include + +#include +#include +#include + + +/** Default constructor */ +EditForumDetails::EditForumDetails(std::string forumId, QWidget *parent, Qt::WFlags flags) + : QDialog(parent, flags), m_forumId(forumId) +{ + /* Invoke Qt Designer generated QObject setup routine */ + ui.setupUi(this); + + connect(ui.applyButton, SIGNAL(clicked()), this, SLOT(applyDialog())); + + loadForum(); +} + +void EditForumDetails::loadForum() +{ + if (!rsForums) { + return; + } + + ForumInfo info; + rsForums->getForumInfo(m_forumId, info); + + // set name + ui.nameline->setText(QString::fromStdWString(info.forumName)); + + // set description + ui.DescriptiontextEdit->setText(QString::fromStdWString(info.forumDesc)); +} + +void EditForumDetails::applyDialog() +{ + if (!rsForums) { + return; + } + + // if text boxes have not been edited leave alone + if (!ui.nameline->isModified() && !ui.DescriptiontextEdit->document()->isModified()) { + return; + } + + ForumInfo info; + + info.forumName = ui.nameline->text().toStdWString(); + info.forumDesc = ui.DescriptiontextEdit->document()->toPlainText().toStdWString(); + + rsForums->setForumInfo(m_forumId, info); + + /* close the Dialog after the Changes applied */ + close(); +} diff --git a/retroshare-gui/src/gui/forums/EditForumDetails.h b/retroshare-gui/src/gui/forums/EditForumDetails.h new file mode 100644 index 000000000..17e700a77 --- /dev/null +++ b/retroshare-gui/src/gui/forums/EditForumDetails.h @@ -0,0 +1,53 @@ +/**************************************************************** + * RetroShare is distributed under the following license: + * + * Copyright (C) 2010 RetroShare Team + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + ****************************************************************/ + +#ifndef _EDITFORUMDETAILS_H +#define _EDITFORUMDETAILS_H + +#include + +#include "ui_EditForumDetails.h" + +class EditForumDetails : public QDialog +{ + Q_OBJECT + +public: + /** Default constructor */ + EditForumDetails(std::string forumId = "", QWidget *parent = 0, Qt::WFlags flags = 0); + +signals: + void configChanged(); + +private slots: + void applyDialog(); + +private: + void loadForum(); + + std::string m_forumId; + + /** Qt Designer generated object */ + Ui::EditForumDetails ui; +}; + +#endif + diff --git a/retroshare-gui/src/gui/forums/EditForumDetails.ui b/retroshare-gui/src/gui/forums/EditForumDetails.ui new file mode 100644 index 000000000..e5cdb8992 --- /dev/null +++ b/retroshare-gui/src/gui/forums/EditForumDetails.ui @@ -0,0 +1,130 @@ + + + EditForumDetails + + + + 0 + 0 + 436 + 355 + + + + Forum Details + + + + :/images/rstray3.png:/images/rstray3.png + + + + + + + + Qt::Horizontal + + + + 311 + 20 + + + + + + + + Cancel + + + + + + + OK + + + false + + + true + + + + + + + + + 0 + + + + + :/images/info16.png:/images/info16.png + + + Edit Forum Details + + + + + + Forum Info + + + + + + Forum Name + + + + + + + + + + Forum Description + + + + + + + + + + + + + + + + + + + + + + + cancelButton + clicked() + EditForumDetails + close() + + + 307 + 333 + + + 217 + 177 + + + + + diff --git a/retroshare-gui/src/lang/retroshare_de.qm b/retroshare-gui/src/lang/retroshare_de.qm index 89037262751c79cf27df8281257894ca7a5e8696..b76aa1580f16c6c02fbb326b609595e3d5e64257 100644 GIT binary patch delta 14256 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 diff --git a/retroshare-gui/src/lang/retroshare_de.ts b/retroshare-gui/src/lang/retroshare_de.ts index 9789a588f..91e678033 100644 --- a/retroshare-gui/src/lang/retroshare_de.ts +++ b/retroshare-gui/src/lang/retroshare_de.ts @@ -1150,7 +1150,7 @@ Keine Beschreibung Abbrechen - + Quick Message Schnelle Nachrricht @@ -1244,7 +1244,7 @@ Keine Beschreibung Verlauf - + Incoming message in history Eingehehende Nachricht aus dem Verlauf @@ -1267,7 +1267,7 @@ Keine Beschreibung ChatStyle - + Standard style for group chat Standard Stil für den Gruppenchat @@ -2344,7 +2344,7 @@ p, li { white-space: pre-wrap; } Erstelle Forumbeitrag - + Paste retroshare Link RetroShare Link einfügen @@ -2364,7 +2364,7 @@ p, li { white-space: pre-wrap; } Bitte einen Betreff und eine Beitrag eingeben - + Add Extra File Zusätzliche Datei hinzufügen @@ -2731,6 +2731,44 @@ p, li { white-space: pre-wrap; } Kanal Logo hinzufügen + + EditForumDetails + + + Forum Details + Forum-Details + + + + Cancel + Abbrechen + + + + OK + OK + + + + Edit Forum Details + Forum-Details bearbeiten + + + + Forum Info + Forum Info + + + + Forum Name + Forum Name + + + + Forum Description + Forum Beschreibung + + EmailPage @@ -3111,12 +3149,12 @@ p, li { white-space: pre-wrap; } Forum Details - + Forum Details Forum Info - + Forum Info @@ -3258,7 +3296,7 @@ p, li { white-space: pre-wrap; } ForumsDialog - + Subscribe to Forum Forum abonnieren @@ -3278,7 +3316,12 @@ p, li { white-space: pre-wrap; } Zeige Foren-Details - + + Edit Forum Details + + + + Reply Antwort @@ -3298,7 +3341,7 @@ p, li { white-space: pre-wrap; } Alle reduzieren - + Hide Verbergen @@ -3315,7 +3358,7 @@ p, li { white-space: pre-wrap; } Beliebtheit: - + Anonymous Anonym @@ -3333,18 +3376,18 @@ p, li { white-space: pre-wrap; } keine - - + + RetroShare - + No Forum Selected! Kein Forum ausgewählt! - + Re: @@ -3354,7 +3397,7 @@ p, li { white-space: pre-wrap; } Du kannst einem anonymen Autor nicht antworten - + Your Forums Deine Foren @@ -3496,8 +3539,8 @@ p, li { white-space: pre-wrap; } Druckvorschau - - + + Start New Thread Erstelle neues Thema @@ -3525,7 +3568,7 @@ p, li { white-space: pre-wrap; } Inhalt - + Mark as read Als gelesen markieren @@ -4337,7 +4380,7 @@ p, li { white-space: pre-wrap; } - + Copy Kopieren @@ -6794,7 +6837,7 @@ p, li { white-space: pre-wrap; } Verbinde zum Freund - + Profile Profil @@ -6804,7 +6847,7 @@ p, li { white-space: pre-wrap; } RetroShare Link einfügen - + Welcome to RetroShare's group chat. Willkommen bei RetroShare's Gruppenchat. @@ -7067,12 +7110,12 @@ p, li { white-space: pre-wrap; } Status Spalte ausblenden - + Friends Storm Aktivitäten - + Recomend this Friend to... Freund weiterempfehlen... @@ -8071,7 +8114,7 @@ p, li { white-space: pre-wrap; } Prüfsumme - + Multiple instances Mehrere Instanzen