From af522fd8c282b06ead97b29daef09be8f8daec88 Mon Sep 17 00:00:00 2001 From: defnax <9952056+defnax@users.noreply.github.com> Date: Tue, 23 Jun 2026 17:59:21 +0200 Subject: [PATCH 1/2] Fixed feeds issues --- retroshare-gui/src/gui/Posted/PostedItem.cpp | 4 ++-- retroshare-gui/src/gui/feeds/GxsChannelGroupItem.cpp | 4 ++-- retroshare-gui/src/gui/feeds/GxsForumGroupItem.cpp | 4 ++-- retroshare-gui/src/gui/feeds/PeerItem.ui | 3 +++ retroshare-gui/src/gui/feeds/PostedGroupItem.cpp | 4 ++-- .../src/gui/gxschannels/GxsChannelPostThumbnail.cpp | 4 ++++ retroshare-gui/src/gui/gxschannels/GxsChannelPostThumbnail.h | 1 + retroshare-gui/src/gui/qss/stylesheet/Standard_Light.qss | 2 +- 8 files changed, 17 insertions(+), 9 deletions(-) diff --git a/retroshare-gui/src/gui/Posted/PostedItem.cpp b/retroshare-gui/src/gui/Posted/PostedItem.cpp index 186580b7a..bd33883cb 100644 --- a/retroshare-gui/src/gui/Posted/PostedItem.cpp +++ b/retroshare-gui/src/gui/Posted/PostedItem.cpp @@ -589,12 +589,12 @@ void PostedItem::fill() else if (urlOkay && (mPost.mImage.mData == NULL)) { ui->expandButton->setDisabled(true); - ui->thumbnailLabel->setPixmap(FilesDefs::getPixmapFromQtResourcePath(LINK_IMAGE)); + ui->thumbnailLabel->setPicture(FilesDefs::getPixmapFromQtResourcePath(LINK_IMAGE)); } else { ui->expandButton->setDisabled(true); - ui->thumbnailLabel->setPixmap(sqpixmap2); + ui->thumbnailLabel->setPicture(sqpixmap2); } } diff --git a/retroshare-gui/src/gui/feeds/GxsChannelGroupItem.cpp b/retroshare-gui/src/gui/feeds/GxsChannelGroupItem.cpp index 54a967639..66764e45d 100644 --- a/retroshare-gui/src/gui/feeds/GxsChannelGroupItem.cpp +++ b/retroshare-gui/src/gui/feeds/GxsChannelGroupItem.cpp @@ -204,9 +204,9 @@ void GxsChannelGroupItem::fill() QPixmap chanImage; GxsIdDetails::loadPixmapFromData(mGroup.mImage.mData, mGroup.mImage.mSize, chanImage,GxsIdDetails::ORIGINAL); - ui->logoLabel->setPixmap(chanImage); + ui->logoLabel->setPicture(chanImage); } else { - ui->logoLabel->setPixmap(FilesDefs::getPixmapFromQtResourcePath(":/icons/feeds_channel.png")); + ui->logoLabel->setPicture(FilesDefs::getPixmapFromQtResourcePath(":/icons/feeds_channel.png")); } if (IS_GROUP_SUBSCRIBED(mGroup.mMeta.mSubscribeFlags)) { diff --git a/retroshare-gui/src/gui/feeds/GxsForumGroupItem.cpp b/retroshare-gui/src/gui/feeds/GxsForumGroupItem.cpp index 3c71544d4..4c764d8b3 100644 --- a/retroshare-gui/src/gui/feeds/GxsForumGroupItem.cpp +++ b/retroshare-gui/src/gui/feeds/GxsForumGroupItem.cpp @@ -212,9 +212,9 @@ void GxsForumGroupItem::fill() ui->forumlogo_label->setFixedSize(ITEM_PICTURE_FORMAT_RATIO*desired_height,desired_height); if (IS_GROUP_PUBLISHER(mGroup.mMeta.mSubscribeFlags)) { - ui->forumlogo_label->setPixmap(FilesDefs::getPixmapFromQtResourcePath(":/icons/feeds_forum.png")); + ui->forumlogo_label->setPicture(FilesDefs::getPixmapFromQtResourcePath(":/icons/feeds_forum.png")); } else { - ui->forumlogo_label->setPixmap(FilesDefs::getPixmapFromQtResourcePath(":/icons/feeds_forum_default.png")); + ui->forumlogo_label->setPicture(FilesDefs::getPixmapFromQtResourcePath(":/icons/feeds_forum_default.png")); } if (IS_GROUP_SUBSCRIBED(mGroup.mMeta.mSubscribeFlags)) { diff --git a/retroshare-gui/src/gui/feeds/PeerItem.ui b/retroshare-gui/src/gui/feeds/PeerItem.ui index 2433cdf09..596ae1d4a 100644 --- a/retroshare-gui/src/gui/feeds/PeerItem.ui +++ b/retroshare-gui/src/gui/feeds/PeerItem.ui @@ -56,6 +56,9 @@ 0 + + 0 + 0 diff --git a/retroshare-gui/src/gui/feeds/PostedGroupItem.cpp b/retroshare-gui/src/gui/feeds/PostedGroupItem.cpp index 7e39a03de..c88c99505 100644 --- a/retroshare-gui/src/gui/feeds/PostedGroupItem.cpp +++ b/retroshare-gui/src/gui/feeds/PostedGroupItem.cpp @@ -182,9 +182,9 @@ void PostedGroupItem::fill() if (mGroup.mGroupImage.mData != NULL) { QPixmap postedImage; GxsIdDetails::loadPixmapFromData(mGroup.mGroupImage.mData, mGroup.mGroupImage.mSize, postedImage,GxsIdDetails::ORIGINAL); - ui->logoLabel->setPixmap(QPixmap(postedImage)); + ui->logoLabel->setPicture(QPixmap(postedImage)); } else { - ui->logoLabel->setPixmap(FilesDefs::getPixmapFromQtResourcePath(":/icons/feeds_board.png")); + ui->logoLabel->setPicture(FilesDefs::getPixmapFromQtResourcePath(":/icons/feeds_board.png")); } if(mGroup.mMeta.mLastPost==0) diff --git a/retroshare-gui/src/gui/gxschannels/GxsChannelPostThumbnail.cpp b/retroshare-gui/src/gui/gxschannels/GxsChannelPostThumbnail.cpp index dd0163371..105a0a9e0 100644 --- a/retroshare-gui/src/gui/gxschannels/GxsChannelPostThumbnail.cpp +++ b/retroshare-gui/src/gui/gxschannels/GxsChannelPostThumbnail.cpp @@ -352,6 +352,10 @@ void ZoomableLabel::setPicture(const QPixmap& pix) reset(); updateView(); } +void ZoomableLabel::setPixmap(const QPixmap& pix) +{ + setPicture(pix); +} void ZoomableLabel::resizeEvent(QResizeEvent *e) { QLabel::resizeEvent(e); diff --git a/retroshare-gui/src/gui/gxschannels/GxsChannelPostThumbnail.h b/retroshare-gui/src/gui/gxschannels/GxsChannelPostThumbnail.h index da30f2083..3f8ae5645 100644 --- a/retroshare-gui/src/gui/gxschannels/GxsChannelPostThumbnail.h +++ b/retroshare-gui/src/gui/gxschannels/GxsChannelPostThumbnail.h @@ -43,6 +43,7 @@ public: ZoomableLabel(QWidget *parent): QLabel(parent),mUseStyleSheet(true),mZoomFactor(1.0),mCenterX(0.0),mCenterY(0.0),mZoomEnabled(true),mClearEnabled(false) {} void setPicture(const QPixmap& pix); + void setPixmap(const QPixmap& pix); void setEnableZoom(bool b) { mZoomEnabled = b; } void setEnableClear(bool b) { mClearEnabled = b; } void reset(); diff --git a/retroshare-gui/src/gui/qss/stylesheet/Standard_Light.qss b/retroshare-gui/src/gui/qss/stylesheet/Standard_Light.qss index 16da89a57..0f9ad2237 100644 --- a/retroshare-gui/src/gui/qss/stylesheet/Standard_Light.qss +++ b/retroshare-gui/src/gui/qss/stylesheet/Standard_Light.qss @@ -2672,4 +2672,4 @@ StartDialog QPushButton#loadButton:hover { } /* AvatarWidget */ -AvatarWidget{border-width: 10px;} +AvatarWidget{border-width: 1px;} From 51abec72f23841d2a7b5472a7a4ba18382d028a9 Mon Sep 17 00:00:00 2001 From: defnax <9952056+defnax@users.noreply.github.com> Date: Thu, 25 Jun 2026 19:55:23 +0200 Subject: [PATCH 2/2] Added new method, which looks better for group feeds --- .../src/gui/feeds/GxsChannelGroupItem.cpp | 2 +- .../src/gui/feeds/GxsChannelGroupItem.ui | 6 +- .../src/gui/feeds/GxsForumGroupItem.cpp | 4 +- .../src/gui/feeds/GxsForumGroupItem.ui | 6 +- .../src/gui/feeds/PostedGroupItem.cpp | 2 +- .../src/gui/feeds/PostedGroupItem.ui | 6 +- .../gxschannels/GxsChannelPostThumbnail.cpp | 2 + .../gui/gxschannels/GxsChannelPostThumbnail.h | 74 +++++++++++++++++++ 8 files changed, 89 insertions(+), 13 deletions(-) diff --git a/retroshare-gui/src/gui/feeds/GxsChannelGroupItem.cpp b/retroshare-gui/src/gui/feeds/GxsChannelGroupItem.cpp index 66764e45d..112881977 100644 --- a/retroshare-gui/src/gui/feeds/GxsChannelGroupItem.cpp +++ b/retroshare-gui/src/gui/feeds/GxsChannelGroupItem.cpp @@ -206,7 +206,7 @@ void GxsChannelGroupItem::fill() ui->logoLabel->setPicture(chanImage); } else { - ui->logoLabel->setPicture(FilesDefs::getPixmapFromQtResourcePath(":/icons/feeds_channel.png")); + ui->logoLabel->setPicture(FilesDefs::getPixmapFromQtResourcePath(":/icons/png/channels.png")); } if (IS_GROUP_SUBSCRIBED(mGroup.mMeta.mSubscribeFlags)) { diff --git a/retroshare-gui/src/gui/feeds/GxsChannelGroupItem.ui b/retroshare-gui/src/gui/feeds/GxsChannelGroupItem.ui index eccaf2018..71ccbd7b5 100644 --- a/retroshare-gui/src/gui/feeds/GxsChannelGroupItem.ui +++ b/retroshare-gui/src/gui/feeds/GxsChannelGroupItem.ui @@ -311,7 +311,7 @@ - + 70 @@ -411,7 +411,7 @@ - ZoomableLabel + GroupFeedLogoLabel QLabel
gui/gxschannels/GxsChannelPostThumbnail.h
@@ -420,4 +420,4 @@ - + diff --git a/retroshare-gui/src/gui/feeds/GxsForumGroupItem.cpp b/retroshare-gui/src/gui/feeds/GxsForumGroupItem.cpp index 4c764d8b3..d826fdca7 100644 --- a/retroshare-gui/src/gui/feeds/GxsForumGroupItem.cpp +++ b/retroshare-gui/src/gui/feeds/GxsForumGroupItem.cpp @@ -212,9 +212,9 @@ void GxsForumGroupItem::fill() ui->forumlogo_label->setFixedSize(ITEM_PICTURE_FORMAT_RATIO*desired_height,desired_height); if (IS_GROUP_PUBLISHER(mGroup.mMeta.mSubscribeFlags)) { - ui->forumlogo_label->setPicture(FilesDefs::getPixmapFromQtResourcePath(":/icons/feeds_forum.png")); + ui->forumlogo_label->setPicture(FilesDefs::getPixmapFromQtResourcePath(":/icons/png/forum.png")); } else { - ui->forumlogo_label->setPicture(FilesDefs::getPixmapFromQtResourcePath(":/icons/feeds_forum_default.png")); + ui->forumlogo_label->setPicture(FilesDefs::getPixmapFromQtResourcePath(":/icons/png/forums-default.png")); } if (IS_GROUP_SUBSCRIBED(mGroup.mMeta.mSubscribeFlags)) { diff --git a/retroshare-gui/src/gui/feeds/GxsForumGroupItem.ui b/retroshare-gui/src/gui/feeds/GxsForumGroupItem.ui index 27ff509ba..a11805973 100644 --- a/retroshare-gui/src/gui/feeds/GxsForumGroupItem.ui +++ b/retroshare-gui/src/gui/feeds/GxsForumGroupItem.ui @@ -135,7 +135,7 @@ - + 70 @@ -421,7 +421,7 @@ - ZoomableLabel + GroupFeedLogoLabel QLabel
gui/gxschannels/GxsChannelPostThumbnail.h
@@ -430,4 +430,4 @@ - + diff --git a/retroshare-gui/src/gui/feeds/PostedGroupItem.cpp b/retroshare-gui/src/gui/feeds/PostedGroupItem.cpp index c88c99505..d0e358551 100644 --- a/retroshare-gui/src/gui/feeds/PostedGroupItem.cpp +++ b/retroshare-gui/src/gui/feeds/PostedGroupItem.cpp @@ -184,7 +184,7 @@ void PostedGroupItem::fill() GxsIdDetails::loadPixmapFromData(mGroup.mGroupImage.mData, mGroup.mGroupImage.mSize, postedImage,GxsIdDetails::ORIGINAL); ui->logoLabel->setPicture(QPixmap(postedImage)); } else { - ui->logoLabel->setPicture(FilesDefs::getPixmapFromQtResourcePath(":/icons/feeds_board.png")); + ui->logoLabel->setPicture(FilesDefs::getPixmapFromQtResourcePath(":/icons/png/postedlinks.png")); } if(mGroup.mMeta.mLastPost==0) diff --git a/retroshare-gui/src/gui/feeds/PostedGroupItem.ui b/retroshare-gui/src/gui/feeds/PostedGroupItem.ui index aae3ac659..866d95186 100644 --- a/retroshare-gui/src/gui/feeds/PostedGroupItem.ui +++ b/retroshare-gui/src/gui/feeds/PostedGroupItem.ui @@ -311,7 +311,7 @@
- + 70 @@ -411,7 +411,7 @@ - ZoomableLabel + GroupFeedLogoLabel QLabel
gui/gxschannels/GxsChannelPostThumbnail.h
@@ -420,4 +420,4 @@ - + diff --git a/retroshare-gui/src/gui/gxschannels/GxsChannelPostThumbnail.cpp b/retroshare-gui/src/gui/gxschannels/GxsChannelPostThumbnail.cpp index 105a0a9e0..72c6bf798 100644 --- a/retroshare-gui/src/gui/gxschannels/GxsChannelPostThumbnail.cpp +++ b/retroshare-gui/src/gui/gxschannels/GxsChannelPostThumbnail.cpp @@ -22,6 +22,8 @@ #include #include +#include +#include #include "gui/common/FilesDefs.h" #include "gui/gxschannels/GxsChannelPostThumbnail.h" diff --git a/retroshare-gui/src/gui/gxschannels/GxsChannelPostThumbnail.h b/retroshare-gui/src/gui/gxschannels/GxsChannelPostThumbnail.h index 3f8ae5645..22f0f38d7 100644 --- a/retroshare-gui/src/gui/gxschannels/GxsChannelPostThumbnail.h +++ b/retroshare-gui/src/gui/gxschannels/GxsChannelPostThumbnail.h @@ -25,6 +25,10 @@ #include #include #include +#include +#include +#include +#include #include "retroshare/rsgxschannels.h" #include "retroshare/rsidentity.h" @@ -85,6 +89,76 @@ protected: bool mClearEnabled; }; +class GroupFeedLogoLabel: public QLabel +{ + Q_OBJECT + +public: + GroupFeedLogoLabel(QWidget *parent = nullptr) : QLabel(parent), mHovered(false) {} + + void setPicture(const QPixmap& pix) { + mImage = pix; + update(); + } + + void setEnableZoom(bool) {} + +protected: +#if QT_VERSION >= QT_VERSION_CHECK (6, 0, 0) + void enterEvent(QEnterEvent *event) override { + mHovered = true; + update(); + QLabel::enterEvent(event); + } +#else + void enterEvent(QEvent *event) override { + mHovered = true; + update(); + QLabel::enterEvent(event); + } +#endif + + void leaveEvent(QEvent *event) override { + mHovered = false; + update(); + QLabel::leaveEvent(event); + } + + void paintEvent(QPaintEvent *event) override { + QPainter painter(this); + painter.setRenderHint(QPainter::Antialiasing); + painter.setRenderHint(QPainter::SmoothPixmapTransform); + + // Draw silver/grey gradient background + QLinearGradient gradient(0, 0, 0, height()); + gradient.setColorAt(0, QColor(220, 220, 220)); // silver + gradient.setColorAt(1, QColor(170, 170, 170)); // grey + painter.fillRect(rect(), gradient); + + if (!mImage.isNull()) { + QPixmap scaled = mImage.scaled(width(), height(), Qt::KeepAspectRatio, Qt::SmoothTransformation); + int x = (width() - scaled.width()) / 2; + int y = (height() - scaled.height()) / 2; + painter.drawPixmap(x, y, scaled); + } + + // Draw rounded border + QPen pen; + pen.setWidth(2); + if (mHovered) { + pen.setColor(QColor(3, 155, 213)); // #039bd5 + } else { + pen.setColor(QColor(204, 204, 204)); // #CCCCCC + } + painter.setPen(pen); + painter.drawRoundedRect(rect().adjusted(1, 1, -1, -1), 3, 3); + } + +private: + QPixmap mImage; + bool mHovered; +}; + // Class to paint the thumbnails with title class ChannelPostThumbnailView: public QWidget