diff --git a/retroshare-gui/src/gui/gxsforums/CreateGxsForumMsg.cpp b/retroshare-gui/src/gui/gxsforums/CreateGxsForumMsg.cpp index 4236b6f04..59e0ab3e2 100644 --- a/retroshare-gui/src/gui/gxsforums/CreateGxsForumMsg.cpp +++ b/retroshare-gui/src/gui/gxsforums/CreateGxsForumMsg.cpp @@ -122,6 +122,8 @@ CreateGxsForumMsg::CreateGxsForumMsg(const RsGxsGroupId &fId, const RsGxsMessage ui->hashGroupBox->hide(); + mForumFontSizeHandler.registerFontSize(ui->forumMessage); + #ifndef ENABLE_GENERATE ui->generateCheckBox->hide(); ui->generateSpinBox->hide(); diff --git a/retroshare-gui/src/gui/gxsforums/CreateGxsForumMsg.h b/retroshare-gui/src/gui/gxsforums/CreateGxsForumMsg.h index 8697fbbc3..a860d076d 100644 --- a/retroshare-gui/src/gui/gxsforums/CreateGxsForumMsg.h +++ b/retroshare-gui/src/gui/gxsforums/CreateGxsForumMsg.h @@ -26,6 +26,7 @@ #include #include #include "gui/common/HashBox.h" +#include "util/FontSizeHandler.h" namespace Ui { class CreateGxsForumMsg; @@ -84,6 +85,8 @@ private: UIStateHelper *mStateHelper; + MessageFontSizeHandler mForumFontSizeHandler; + /** Qt Designer generated object */ Ui::CreateGxsForumMsg *ui; }; diff --git a/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.cpp b/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.cpp index fd293560f..e04a30b5d 100644 --- a/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.cpp +++ b/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.cpp @@ -299,6 +299,9 @@ GxsForumThreadWidget::GxsForumThreadWidget(const RsGxsGroupId &forumId, QWidget connect(ui->nextUnreadButton, SIGNAL(clicked()), this, SLOT(nextUnreadMessage())); connect(ui->downloadButton, SIGNAL(clicked()), this, SLOT(downloadAllFiles())); + connect(ui->zoomInButton, SIGNAL(clicked()), this, SLOT(zoom_In())); + connect(ui->zoomOutButton, SIGNAL(clicked()), this, SLOT(zoom_Out())); + connect(ui->filterLineEdit, SIGNAL(textChanged(QString)), this, SLOT(filterItems(QString))); connect(ui->filterLineEdit, SIGNAL(filterChanged(int)), this, SLOT(filterColumnChanged(int))); @@ -380,6 +383,8 @@ GxsForumThreadWidget::GxsForumThreadWidget(const RsGxsGroupId &forumId, QWidget mFontSizeHandler.registerFontSize(ui->threadTreeWidget, 1.4f, [this](QAbstractItemView *view, int) { mThreadModel->setFont(view->font()); }); + + mForumSizeHandler.registerFontSize(ui->postText); } void GxsForumThreadWidget::handleEvent_main_thread(std::shared_ptr event) @@ -2099,3 +2104,14 @@ void GxsForumThreadWidget::showAuthorInPeople(const RsGxsForumMsg& msg) MainWindow::showWindow(MainWindow::People); idDialog->navigate(RsGxsId(msg.mMeta.mAuthorId)); } + +void GxsForumThreadWidget::zoom_In() +{ + ui->postText->zoomIn(1); +} + +void GxsForumThreadWidget::zoom_Out() +{ + ui->postText->zoomOut(1); +} + diff --git a/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.h b/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.h index 8e6b1c01b..5b2e417c3 100644 --- a/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.h +++ b/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.h @@ -161,6 +161,9 @@ private slots: void filterColumnChanged(int column); void filterItems(const QString &text); + void zoom_In(); + void zoom_Out(); + #if QT_VERSION >= QT_VERSION_CHECK(5, 13, 0) void expandSubtree(); #endif @@ -236,6 +239,7 @@ private: QList mSavedExpandedMessages; FontSizeHandler mFontSizeHandler; + ForumFontSizeHandler mForumSizeHandler; Ui::GxsForumThreadWidget *ui; RsEventsHandlerId_t mEventHandlerId; diff --git a/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.ui b/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.ui index 439234047..eaa067701 100644 --- a/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.ui +++ b/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.ui @@ -302,6 +302,63 @@ + + + + Qt::Vertical + + + + + + + + 24 + 24 + + + + Qt::NoFocus + + + + + + + :/images/edit_remove24.png:/images/edit_remove24.png + + + true + + + true + + + + + + + Zoom in + + + + + + + + :/icons/zoom-in.png:/icons/zoom-in.png + + + true + + + + + + + + + + @@ -331,6 +388,13 @@ + + + + + + + @@ -369,6 +433,42 @@ + + + + + 24 + 24 + + + + Qt::NoFocus + + + Download all files + + + Qt::LeftToRight + + + + :/icons/png/download.png:/icons/png/download.png + + + true + + + + + + + Qt::Vertical + + + + + + @@ -433,70 +533,6 @@ - - - - - 24 - 24 - - - - Qt::NoFocus - - - Download all files - - - Qt::LeftToRight - - - - :/icons/png/download.png:/icons/png/download.png - - - true - - - - - - - Qt::Vertical - - - - - - - - - - - - - - - - - Qt::Vertical - - - - - - - By - - - - - - - - - - @@ -510,28 +546,26 @@ - - - - - 24 - 24 - + + + + By - - Qt::NoFocus + + + + + + Zoom out - + - - - :/images/edit_remove24.png:/images/edit_remove24.png + + :/icons/zoom-out.png:/icons/zoom-out.png - - true - - + true diff --git a/retroshare-gui/src/gui/icons.qrc b/retroshare-gui/src/gui/icons.qrc index ff3771075..36d6ffdee 100644 --- a/retroshare-gui/src/gui/icons.qrc +++ b/retroshare-gui/src/gui/icons.qrc @@ -383,5 +383,7 @@ icons/filetype/dll.svg icons/filetype/collection.svg icons/filetype/patch.svg + icons/zoom-in.png + icons/zoom-out.png diff --git a/retroshare-gui/src/gui/icons/zoom-in.png b/retroshare-gui/src/gui/icons/zoom-in.png new file mode 100644 index 000000000..5f4bd87ed Binary files /dev/null and b/retroshare-gui/src/gui/icons/zoom-in.png differ diff --git a/retroshare-gui/src/gui/icons/zoom-out.png b/retroshare-gui/src/gui/icons/zoom-out.png new file mode 100644 index 000000000..61a299841 Binary files /dev/null and b/retroshare-gui/src/gui/icons/zoom-out.png differ diff --git a/retroshare-gui/src/gui/settings/ForumPage.cpp b/retroshare-gui/src/gui/settings/ForumPage.cpp index ee0d32566..b7e0bd2cb 100644 --- a/retroshare-gui/src/gui/settings/ForumPage.cpp +++ b/retroshare-gui/src/gui/settings/ForumPage.cpp @@ -18,9 +18,12 @@ * * *******************************************************************************/ +#include + #include "ForumPage.h" #include "util/misc.h" #include "rsharesettings.h" +#include "gui/notifyqt.h" ForumPage::ForumPage(QWidget * parent, Qt::WindowFlags flags) : ConfigPage(parent, flags) @@ -38,6 +41,14 @@ ForumPage::ForumPage(QWidget * parent, Qt::WindowFlags flags) connect(ui.minimumFontSize , SIGNAL(valueChanged(int)), this, SLOT(updateFonts())); connect(ui.minimumContrast , SIGNAL(valueChanged(int)), this, SLOT(updateFonts())); + // Font size + QFontDatabase db; + foreach(int size, db.standardSizes()) { + ui.minFontSize->addItem(QString::number(size), size); + } + + connect(ui.minFontSize, SIGNAL(activated(QString)), this, SLOT(updateFonts())) ; + ui.groupFrameSettingsWidget->setType(GroupFrameSettings::Forum) ; } @@ -61,6 +72,8 @@ void ForumPage::load() whileBlocking(ui.minimumFontSize)->setValue(Settings->value("MinimumFontSize", 10).toInt()); whileBlocking(ui.minimumContrast)->setValue(Settings->value("MinimumContrast", 4.5).toDouble()); Settings->endGroup(); + whileBlocking(ui.minFontSize)->setCurrentIndex(ui.minFontSize->findData(Settings->getForumFontSize())); + ui.groupFrameSettingsWidget->loadSettings(GroupFrameSettings::Forum); } @@ -71,4 +84,7 @@ void ForumPage::updateFonts() Settings->setValue("MinimumFontSize", ui.minimumFontSize->value()); Settings->setValue("MinimumContrast", ui.minimumContrast->value()); Settings->endGroup(); + Settings->setForumFontSize(ui.minFontSize->currentData().toInt()); + + NotifyQt::getInstance()->notifySettingsChanged(); } diff --git a/retroshare-gui/src/gui/settings/ForumPage.ui b/retroshare-gui/src/gui/settings/ForumPage.ui index a52638987..2fcab51bd 100644 --- a/retroshare-gui/src/gui/settings/ForumPage.ui +++ b/retroshare-gui/src/gui/settings/ForumPage.ui @@ -7,7 +7,7 @@ 0 0 507 - 340 + 406 @@ -106,6 +106,67 @@ + + + + 0 + 0 + + + + Fonts + + + + + + + + Qt::LeftToRight + + + Minimum font size + + + + + + + + MS Sans Serif + 10 + + + + Qt::ClickFocus + + + Font size + + + true + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + Tabs @@ -117,7 +178,7 @@ - + Qt::Vertical @@ -133,6 +194,11 @@ + + RSComboBox + QComboBox +
gui/common/RSComboBox.h
+
GroupFrameSettingsWidget QWidget diff --git a/retroshare-gui/src/gui/settings/rsharesettings.cpp b/retroshare-gui/src/gui/settings/rsharesettings.cpp index d878d6c99..535e81bec 100644 --- a/retroshare-gui/src/gui/settings/rsharesettings.cpp +++ b/retroshare-gui/src/gui/settings/rsharesettings.cpp @@ -1222,6 +1222,22 @@ void RshareSettings::setMessageFontSize(int value) setValueToGroup("Message", "FontSize", value); } +int RshareSettings::getForumFontSize() +{ +#if defined(Q_OS_DARWIN) + int defaultFontSize = 12; +#else + int defaultFontSize = 11; +#endif + + return valueFromGroup("Forum", "FontSize", defaultFontSize).toInt(); +} + +void RshareSettings::setForumFontSize(int value) +{ + setValueToGroup("Forum", "FontSize", value); +} + #ifdef RS_JSONAPI bool RshareSettings::getJsonApiEnabled() { diff --git a/retroshare-gui/src/gui/settings/rsharesettings.h b/retroshare-gui/src/gui/settings/rsharesettings.h index 317dedb56..c8066a88f 100644 --- a/retroshare-gui/src/gui/settings/rsharesettings.h +++ b/retroshare-gui/src/gui/settings/rsharesettings.h @@ -349,6 +349,9 @@ public: int getMessageFontSize(); void setMessageFontSize(int value); + int getForumFontSize(); + void setForumFontSize(int value); + #ifdef RS_JSONAPI bool getJsonApiEnabled(); void setJsonApiEnabled(bool enabled); diff --git a/retroshare-gui/src/util/FontSizeHandler.cpp b/retroshare-gui/src/util/FontSizeHandler.cpp index c184da0de..482287ac0 100644 --- a/retroshare-gui/src/util/FontSizeHandler.cpp +++ b/retroshare-gui/src/util/FontSizeHandler.cpp @@ -136,6 +136,9 @@ int FontSizeHandlerBase::getFontSize() case MESSAGE_FONT_SIZE: return Settings->getMessageFontSize(); + + case FORUM_FONT_SIZE: + return Settings->getForumFontSize(); } return 0; diff --git a/retroshare-gui/src/util/FontSizeHandler.h b/retroshare-gui/src/util/FontSizeHandler.h index bf9c8058b..4b27b0502 100644 --- a/retroshare-gui/src/util/FontSizeHandler.h +++ b/retroshare-gui/src/util/FontSizeHandler.h @@ -46,7 +46,8 @@ public: protected: enum Type { FONT_SIZE, - MESSAGE_FONT_SIZE + MESSAGE_FONT_SIZE, + FORUM_FONT_SIZE }; FontSizeHandlerBase(Type type); @@ -70,4 +71,11 @@ public: MessageFontSizeHandler() : FontSizeHandlerBase(MESSAGE_FONT_SIZE) {} }; +// Class to handle forum font size setting +class ForumFontSizeHandler : public FontSizeHandlerBase +{ +public: + ForumFontSizeHandler() : FontSizeHandlerBase(FORUM_FONT_SIZE) {} +}; + #endif // FONTSIZEHANDLER