Merge branch 'master' into extra1

This commit is contained in:
Pooh 2020-09-05 09:59:49 +03:00 committed by GitHub
commit 22337c050a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
116 changed files with 1269 additions and 1115 deletions

View File

@ -39,6 +39,14 @@ template<class ID, class MetaDataClass> class t_MetaDataCache
{ {
public: public:
t_MetaDataCache() : mCache_ContainsAllMetas(false) {} t_MetaDataCache() : mCache_ContainsAllMetas(false) {}
virtual ~t_MetaDataCache()
{
for(auto it: mMetas)
delete it.second;
for(auto it: mOldCachedItems)
delete it.second;
}
bool isCacheUpToDate() const { return mCache_ContainsAllMetas ; } bool isCacheUpToDate() const { return mCache_ContainsAllMetas ; }
void setCacheUpToDate(bool b) { mCache_ContainsAllMetas = b; } void setCacheUpToDate(bool b) { mCache_ContainsAllMetas = b; }

View File

@ -282,7 +282,7 @@ bool RsGenExchange::messagePublicationTest(const RsGxsMsgMetaData& meta)
rstime_t storageTimeLimit = meta.mPublishTs + st; rstime_t storageTimeLimit = meta.mPublishTs + st;
return meta.mMsgStatus & GXS_SERV::GXS_MSG_STATUS_KEEP || st == 0 || storageTimeLimit >= time(NULL); return meta.mMsgStatus & GXS_SERV::GXS_MSG_STATUS_KEEP_FOREVER || st == 0 || storageTimeLimit >= time(NULL);
} }
bool RsGenExchange::acknowledgeTokenMsg(const uint32_t& token, bool RsGenExchange::acknowledgeTokenMsg(const uint32_t& token,

View File

@ -196,7 +196,6 @@ bool RsGxsGrpMetaData::deserialise(void *data, uint32_t &pktsize)
return ok; return ok;
} }
int RsGxsMsgMetaData::refcount = 0;
RsGxsMsgMetaData::RsGxsMsgMetaData(){ RsGxsMsgMetaData::RsGxsMsgMetaData(){
clear(); clear();

View File

@ -99,8 +99,6 @@ public:
void clear(); void clear();
void operator =(const RsMsgMetaData& rMeta); void operator =(const RsMsgMetaData& rMeta);
static int refcount;
//Sort data in same order than serialiser and deserializer //Sort data in same order than serialiser and deserializer
RsGxsGroupId mGroupId; RsGxsGroupId mGroupId;
RsGxsMessageId mMsgId; RsGxsMessageId mMsgId;

View File

@ -107,7 +107,7 @@ bool RsGxsMessageCleanUp::clean()
bool remove = store_period > 0 && ((meta->mPublishTs + store_period) < now) && !have_kids; bool remove = store_period > 0 && ((meta->mPublishTs + store_period) < now) && !have_kids;
// check client does not want the message kept regardless of age // check client does not want the message kept regardless of age
remove &= !(meta->mMsgStatus & GXS_SERV::GXS_MSG_STATUS_KEEP); remove &= !(meta->mMsgStatus & GXS_SERV::GXS_MSG_STATUS_KEEP_FOREVER);
// if not subscribed remove messages (can optimise this really) // if not subscribed remove messages (can optimise this really)
remove = remove || (grpMeta->mSubscribeFlags & GXS_SERV::GROUP_SUBSCRIBE_NOT_SUBSCRIBED); remove = remove || (grpMeta->mSubscribeFlags & GXS_SERV::GROUP_SUBSCRIBE_NOT_SUBSCRIBED);

View File

@ -111,27 +111,6 @@ typedef t_RsGxsGenericDataTemporaryMapVector<RsNxsMsg> RsNxsMsgDa
typedef t_RsGxsGenericDataTemporaryList<RsNxsGrp> RsNxsGrpDataTemporaryList ; typedef t_RsGxsGenericDataTemporaryList<RsNxsGrp> RsNxsGrpDataTemporaryList ;
typedef t_RsGxsGenericDataTemporaryList<RsNxsMsg> RsNxsMsgDataTemporaryList ; typedef t_RsGxsGenericDataTemporaryList<RsNxsMsg> RsNxsMsgDataTemporaryList ;
#ifdef UNUSED
template<class T>
class RsGxsMetaDataTemporaryMapVector: public std::vector<T*>
{
public:
virtual ~RsGxsMetaDataTemporaryMapVector()
{
clear() ;
}
virtual void clear()
{
for(typename RsGxsMetaDataTemporaryMapVector<T>::iterator it = this->begin();it!=this->end();++it)
if(it->second != NULL)
delete it->second ;
std::vector<T*>::clear() ;
}
};
#endif
inline RsGxsGrpMsgIdPair getMsgIdPair(RsNxsMsg& msg) inline RsGxsGrpMsgIdPair getMsgIdPair(RsNxsMsg& msg)
{ {
return RsGxsGrpMsgIdPair(std::make_pair(msg.grpId, msg.msgId)); return RsGxsGrpMsgIdPair(std::make_pair(msg.grpId, msg.msgId));
@ -146,7 +125,7 @@ inline RsGxsGrpMsgIdPair getMsgIdPair(RsGxsMsgItem& msg)
* Does message clean up based on individual group expirations first * Does message clean up based on individual group expirations first
* if avialable. If not then deletion s * if avialable. If not then deletion s
*/ */
class RsGxsMessageCleanUp //: public RsThread class RsGxsMessageCleanUp
{ {
public: public:
@ -166,11 +145,6 @@ public:
*/ */
bool clean(); bool clean();
/*!
* TODO: Rather than manual progressions consider running through a thread
*/
//virtual void data_tick(){}
private: private:
RsGeneralDataService* const mDs; RsGeneralDataService* const mDs;

View File

@ -195,8 +195,6 @@ public:
/** /**
* @brief Post event to the event queue. * @brief Post event to the event queue.
* @param[in] event * @param[in] event
* @param[out] errorMessage Optional storage for error messsage, meaningful
* only on failure.
* @return Success or error details. * @return Success or error details.
*/ */
virtual std::error_condition postEvent( virtual std::error_condition postEvent(
@ -206,8 +204,6 @@ public:
* @brief Send event directly to handlers. Blocking API * @brief Send event directly to handlers. Blocking API
* The handlers get exectuded on the caller thread. * The handlers get exectuded on the caller thread.
* @param[in] event * @param[in] event
* @param[out] errorMessage Optional storage for error messsage, meaningful
* only on failure.
* @return Success or error details. * @return Success or error details.
*/ */
virtual std::error_condition sendEvent( virtual std::error_condition sendEvent(

View File

@ -107,7 +107,8 @@ namespace GXS_SERV {
static const uint32_t GXS_MSG_STATUS_UNPROCESSED = 0x00000001; // Flags to store the read/process status of group messages. static const uint32_t GXS_MSG_STATUS_UNPROCESSED = 0x00000001; // Flags to store the read/process status of group messages.
static const uint32_t GXS_MSG_STATUS_GUI_UNREAD = 0x00000002; // The actual meaning may depend on the type of service. static const uint32_t GXS_MSG_STATUS_GUI_UNREAD = 0x00000002; // The actual meaning may depend on the type of service.
static const uint32_t GXS_MSG_STATUS_GUI_NEW = 0x00000004; // static const uint32_t GXS_MSG_STATUS_GUI_NEW = 0x00000004; //
static const uint32_t GXS_MSG_STATUS_KEEP = 0x00000008; // /** Do not delete message even if older then group maximum storage time */
static const uint32_t GXS_MSG_STATUS_KEEP_FOREVER = 0x00000008;
static const uint32_t GXS_MSG_STATUS_DELETE = 0x00000020; // static const uint32_t GXS_MSG_STATUS_DELETE = 0x00000020; //
/** END GXS Msg status flags **/ /** END GXS Msg status flags **/

View File

@ -363,12 +363,25 @@ public:
* @param[in] parentId id of the post of which child posts (aka replies) * @param[in] parentId id of the post of which child posts (aka replies)
* are requested. * are requested.
* @param[out] childPosts storage for the child posts * @param[out] childPosts storage for the child posts
* @return false if something failed, true otherwhise * @return Success or error details
*/ */
virtual std::error_condition getChildPosts( virtual std::error_condition getChildPosts(
const RsGxsGroupId& forumId, const RsGxsMessageId& parentId, const RsGxsGroupId& forumId, const RsGxsMessageId& parentId,
std::vector<RsGxsForumMsg>& childPosts ) = 0; std::vector<RsGxsForumMsg>& childPosts ) = 0;
/**
* @brief Set keep forever flag on a post so it is not deleted even if older
* then group maximum storage time
* @jsonapi{development}
* @param[in] forumId id of the forum of which the post pertain
* @param[in] postId id of the post on which to set the flag
* @param[in] keepForever true to set the flag, false to unset it
* @return Success or error details
*/
virtual std::error_condition setPostKeepForever(
const RsGxsGroupId& forumId, const RsGxsMessageId& postId,
bool keepForever ) = 0;
/** /**
* @brief Create forum. Blocking API. * @brief Create forum. Blocking API.
* @jsonapi{development} * @jsonapi{development}

View File

@ -919,6 +919,9 @@ void p3GxsForums::setMessageReadStatus(uint32_t& token, const RsGxsGrpMsgIdPair&
setMsgStatusFlags(token, msgId, status, mask); setMsgStatusFlags(token, msgId, status, mask);
/* WARNING: The event may be received before the operation is completed!
* TODO: move notification to blocking method markRead(...) which wait the
* operation to complete */
if (rsEvents) if (rsEvents)
{ {
auto ev = std::make_shared<RsGxsForumEvent>(); auto ev = std::make_shared<RsGxsForumEvent>();
@ -933,6 +936,37 @@ void p3GxsForums::setMessageReadStatus(uint32_t& token, const RsGxsGrpMsgIdPair&
/********************************************************************************************/ /********************************************************************************************/
/********************************************************************************************/ /********************************************************************************************/
std::error_condition p3GxsForums::setPostKeepForever(
const RsGxsGroupId& forumId, const RsGxsMessageId& postId,
bool keepForever )
{
if(forumId.isNull() || postId.isNull()) return std::errc::invalid_argument;
uint32_t mask = GXS_SERV::GXS_MSG_STATUS_KEEP_FOREVER;
uint32_t status = keepForever ? GXS_SERV::GXS_MSG_STATUS_KEEP_FOREVER : 0;
uint32_t token;
setMsgStatusFlags(token, RsGxsGrpMsgIdPair(forumId, postId), status, mask);
switch(waitToken(token))
{
case RsTokenService::PENDING: // [[fallthrough]];
case RsTokenService::PARTIAL: return std::errc::timed_out;
case RsTokenService::COMPLETE: // [[fallthrough]];
case RsTokenService::DONE:
{
auto ev = std::make_shared<RsGxsForumEvent>();
ev->mForumGroupId = forumId;
ev->mForumMsgId = postId;
ev->mForumEventCode = RsForumEventCode::UPDATED_MESSAGE;
rsEvents->postEvent(ev);
return std::error_condition();
}
case RsTokenService::CANCELLED: return std::errc::operation_canceled;
default: return std::errc::bad_message;
}
}
/* so we need the same tick idea as wiki for generating dummy forums /* so we need the same tick idea as wiki for generating dummy forums
*/ */

View File

@ -137,6 +137,11 @@ public:
const RsGxsGroupId& forumId, const RsGxsMessageId& parentId, const RsGxsGroupId& forumId, const RsGxsMessageId& parentId,
std::vector<RsGxsForumMsg>& childPosts ) override; std::vector<RsGxsForumMsg>& childPosts ) override;
/// @see RsGxsForums
std::error_condition setPostKeepForever(
const RsGxsGroupId& forumId, const RsGxsMessageId& postId,
bool keepForever );
/// implementation of rsGxsGorums /// implementation of rsGxsGorums
/// ///
bool getGroupData(const uint32_t &token, std::vector<RsGxsForumGroup> &groups) override; bool getGroupData(const uint32_t &token, std::vector<RsGxsForumGroup> &groups) override;

View File

@ -34,6 +34,7 @@
#include "gui/settings/rsharesettings.h" #include "gui/settings/rsharesettings.h"
#include "util/HandleRichText.h" #include "util/HandleRichText.h"
#include "util/QtVersion.h" #include "util/QtVersion.h"
#include "gui/common/FilesDefs.h"
#include "retroshare/rsmsgs.h" #include "retroshare/rsmsgs.h"
#include "retroshare/rspeers.h" #include "retroshare/rspeers.h"
@ -281,7 +282,7 @@ void ChatLobbyWidget::lobbyTreeWidgetCustomPopupMenu(QPoint)
QMenu contextMnu(this); QMenu contextMnu(this);
if (item && item->type() == TYPE_FOLDER) { if (item && item->type() == TYPE_FOLDER) {
QAction *action = contextMnu.addAction(QIcon(IMAGE_CREATE), tr("Create chat room"), this, SLOT(createChatLobby())); QAction *action = contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_CREATE), tr("Create chat room"), this, SLOT(createChatLobby()));
action->setData(item->data(COLUMN_DATA, ROLE_PRIVACYLEVEL).toInt()); action->setData(item->data(COLUMN_DATA, ROLE_PRIVACYLEVEL).toInt());
} }
@ -291,7 +292,7 @@ void ChatLobbyWidget::lobbyTreeWidgetCustomPopupMenu(QPoint)
rsIdentity->getOwnIds(own_identities) ; rsIdentity->getOwnIds(own_identities) ;
if (item->data(COLUMN_DATA, ROLE_SUBSCRIBED).toBool()) if (item->data(COLUMN_DATA, ROLE_SUBSCRIBED).toBool())
contextMnu.addAction(QIcon(IMAGE_UNSUBSCRIBE), tr("Leave this room"), this, SLOT(unsubscribeItem())); contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_UNSUBSCRIBE), tr("Leave this room"), this, SLOT(unsubscribeItem()));
else else
{ {
QTreeWidgetItem *item = ui.lobbyTreeWidget->currentItem(); QTreeWidgetItem *item = ui.lobbyTreeWidget->currentItem();
@ -306,18 +307,18 @@ void ChatLobbyWidget::lobbyTreeWidgetCustomPopupMenu(QPoint)
if(own_identities.empty()) if(own_identities.empty())
{ {
if(removed) if(removed)
contextMnu.addAction(QIcon(IMAGE_SUBSCRIBE), tr("Create a non anonymous identity and enter this room"), this, SLOT(createIdentityAndSubscribe())); contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_SUBSCRIBE), tr("Create a non anonymous identity and enter this room"), this, SLOT(createIdentityAndSubscribe()));
else else
contextMnu.addAction(QIcon(IMAGE_SUBSCRIBE), tr("Create an identity and enter this chat room"), this, SLOT(createIdentityAndSubscribe())); contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_SUBSCRIBE), tr("Create an identity and enter this chat room"), this, SLOT(createIdentityAndSubscribe()));
} }
else if(own_identities.size() == 1) else if(own_identities.size() == 1)
{ {
QAction *action = contextMnu.addAction(QIcon(IMAGE_SUBSCRIBE), tr("Enter this chat room"), this, SLOT(subscribeChatLobbyAs())); QAction *action = contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_SUBSCRIBE), tr("Enter this chat room"), this, SLOT(subscribeChatLobbyAs()));
action->setData(QString::fromStdString((own_identities.front()).toStdString())) ; action->setData(QString::fromStdString((own_identities.front()).toStdString())) ;
} }
else else
{ {
QMenu *mnu = contextMnu.addMenu(QIcon(IMAGE_SUBSCRIBE),tr("Enter this chat room as...")) ; QMenu *mnu = contextMnu.addMenu(FilesDefs::getIconFromQtResourcePath(IMAGE_SUBSCRIBE),tr("Enter this chat room as...")) ;
for(std::list<RsGxsId>::const_iterator it=own_identities.begin();it!=own_identities.end();++it) for(std::list<RsGxsId>::const_iterator it=own_identities.begin();it!=own_identities.end();++it)
{ {
@ -344,7 +345,7 @@ void ChatLobbyWidget::lobbyTreeWidgetCustomPopupMenu(QPoint)
contextMnu.addAction(QIcon(IMAGE_SUBSCRIBE), tr("Add Auto Subscribe"), this, SLOT(autoSubscribeItem())); contextMnu.addAction(QIcon(IMAGE_SUBSCRIBE), tr("Add Auto Subscribe"), this, SLOT(autoSubscribeItem()));
#endif #endif
contextMnu.addAction(QIcon(IMAGE_COPYRSLINK), tr("Copy RetroShare Link"), this, SLOT(copyItemLink())); contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_COPYRSLINK), tr("Copy RetroShare Link"), this, SLOT(copyItemLink()));
} }
contextMnu.addSeparator();//------------------------------------------------------------------- contextMnu.addSeparator();//-------------------------------------------------------------------
@ -435,7 +436,7 @@ void ChatLobbyWidget::addChatPage(ChatLobbyDialog *d)
ChatLobbyInfo linfo ; ChatLobbyInfo linfo ;
if(rsMsgs->getChatLobbyInfo(id,linfo)) if(rsMsgs->getChatLobbyInfo(id,linfo))
_lobby_infos[id].default_icon = (linfo.lobby_flags & RS_CHAT_LOBBY_FLAGS_PUBLIC) ? QIcon(IMAGE_PUBLIC):QIcon(IMAGE_PRIVATE) ; _lobby_infos[id].default_icon = (linfo.lobby_flags & RS_CHAT_LOBBY_FLAGS_PUBLIC) ? FilesDefs::getIconFromQtResourcePath(IMAGE_PUBLIC):FilesDefs::getIconFromQtResourcePath(IMAGE_PRIVATE) ;
else else
std::cerr << "(EE) cannot find info for room " << std::hex << id << std::dec << std::endl; std::cerr << "(EE) cannot find info for room " << std::hex << id << std::dec << std::endl;
} }
@ -615,7 +616,7 @@ void ChatLobbyWidget::updateDisplay()
if (item == NULL) if (item == NULL)
{ {
item = new RSTreeWidgetItem(compareRole, TYPE_LOBBY); item = new RSTreeWidgetItem(compareRole, TYPE_LOBBY);
icon = (lobby.lobby_flags & RS_CHAT_LOBBY_FLAGS_PUBLIC) ? QIcon(IMAGE_PUBLIC) : QIcon(IMAGE_PRIVATE); icon = (lobby.lobby_flags & RS_CHAT_LOBBY_FLAGS_PUBLIC) ? FilesDefs::getIconFromQtResourcePath(IMAGE_PUBLIC) : FilesDefs::getIconFromQtResourcePath(IMAGE_PRIVATE);
lobby_item->addChild(item); lobby_item->addChild(item);
} }
@ -623,7 +624,7 @@ void ChatLobbyWidget::updateDisplay()
{ {
if (item->data(COLUMN_DATA, ROLE_SUBSCRIBED).toBool() != subscribed) { if (item->data(COLUMN_DATA, ROLE_SUBSCRIBED).toBool() != subscribed) {
// Replace icon // Replace icon
icon = (lobby.lobby_flags & RS_CHAT_LOBBY_FLAGS_PUBLIC) ? QIcon(IMAGE_PUBLIC) : QIcon(IMAGE_PRIVATE); icon = (lobby.lobby_flags & RS_CHAT_LOBBY_FLAGS_PUBLIC) ? FilesDefs::getIconFromQtResourcePath(IMAGE_PUBLIC) : FilesDefs::getIconFromQtResourcePath(IMAGE_PRIVATE);
} }
} }
if (!icon.isNull()) { if (!icon.isNull()) {
@ -683,12 +684,12 @@ void ChatLobbyWidget::updateDisplay()
if (item == NULL) if (item == NULL)
{ {
item = new RSTreeWidgetItem(compareRole, TYPE_LOBBY); item = new RSTreeWidgetItem(compareRole, TYPE_LOBBY);
icon = (lobby.lobby_flags & RS_CHAT_LOBBY_FLAGS_PUBLIC) ? QIcon(IMAGE_PUBLIC) : QIcon(IMAGE_PRIVATE); icon = (lobby.lobby_flags & RS_CHAT_LOBBY_FLAGS_PUBLIC) ? FilesDefs::getIconFromQtResourcePath(IMAGE_PUBLIC) : FilesDefs::getIconFromQtResourcePath(IMAGE_PRIVATE);
itemParent->addChild(item); itemParent->addChild(item);
} else { } else {
if (!item->data(COLUMN_DATA, ROLE_SUBSCRIBED).toBool()) { if (!item->data(COLUMN_DATA, ROLE_SUBSCRIBED).toBool()) {
// Replace icon // Replace icon
icon = (lobby.lobby_flags & RS_CHAT_LOBBY_FLAGS_PUBLIC) ? QIcon(IMAGE_PUBLIC) : QIcon(IMAGE_PRIVATE); icon = (lobby.lobby_flags & RS_CHAT_LOBBY_FLAGS_PUBLIC) ? FilesDefs::getIconFromQtResourcePath(IMAGE_PUBLIC) : FilesDefs::getIconFromQtResourcePath(IMAGE_PRIVATE);
} }
} }
if (!icon.isNull()) { if (!icon.isNull()) {
@ -996,7 +997,7 @@ void ChatLobbyWidget::updateTypingStatus(ChatLobbyId id)
if(item != NULL) if(item != NULL)
{ {
item->setIcon(COLUMN_NAME,QIcon(IMAGE_TYPING)) ; item->setIcon(COLUMN_NAME,FilesDefs::getIconFromQtResourcePath(IMAGE_TYPING)) ;
_lobby_infos[id].last_typing_event = time(NULL) ; _lobby_infos[id].last_typing_event = time(NULL) ;
QTimer::singleShot(5000,this,SLOT(resetLobbyTreeIcons())) ; QTimer::singleShot(5000,this,SLOT(resetLobbyTreeIcons())) ;
@ -1008,7 +1009,7 @@ void ChatLobbyWidget::updatePeerLeaving(ChatLobbyId id)
if(item != NULL) if(item != NULL)
{ {
item->setIcon(COLUMN_NAME,QIcon(IMAGE_PEER_LEAVING)) ; item->setIcon(COLUMN_NAME,FilesDefs::getIconFromQtResourcePath(IMAGE_PEER_LEAVING)) ;
_lobby_infos[id].last_typing_event = time(NULL) ; _lobby_infos[id].last_typing_event = time(NULL) ;
QTimer::singleShot(5000,this,SLOT(resetLobbyTreeIcons())) ; QTimer::singleShot(5000,this,SLOT(resetLobbyTreeIcons())) ;
@ -1020,7 +1021,7 @@ void ChatLobbyWidget::updatePeerEntering(ChatLobbyId id)
if(item != NULL) if(item != NULL)
{ {
item->setIcon(COLUMN_NAME,QIcon(IMAGE_PEER_ENTERING)) ; item->setIcon(COLUMN_NAME,FilesDefs::getIconFromQtResourcePath(IMAGE_PEER_ENTERING)) ;
_lobby_infos[id].last_typing_event = time(NULL) ; _lobby_infos[id].last_typing_event = time(NULL) ;
QTimer::singleShot(5000,this,SLOT(resetLobbyTreeIcons())) ; QTimer::singleShot(5000,this,SLOT(resetLobbyTreeIcons())) ;
@ -1105,7 +1106,7 @@ void ChatLobbyWidget::updateCurrentLobby()
if(_lobby_infos.find(id) != _lobby_infos.end()) { if(_lobby_infos.find(id) != _lobby_infos.end()) {
int iPrivacyLevel= item->parent()->data(COLUMN_DATA, ROLE_PRIVACYLEVEL).toInt(); int iPrivacyLevel= item->parent()->data(COLUMN_DATA, ROLE_PRIVACYLEVEL).toInt();
QIcon icon = (iPrivacyLevel==CHAT_LOBBY_PRIVACY_LEVEL_PUBLIC) ? QIcon(IMAGE_PUBLIC) : QIcon(IMAGE_PRIVATE); QIcon icon = (iPrivacyLevel==CHAT_LOBBY_PRIVACY_LEVEL_PUBLIC) ? FilesDefs::getIconFromQtResourcePath(IMAGE_PUBLIC) : FilesDefs::getIconFromQtResourcePath(IMAGE_PRIVATE);
_lobby_infos[id].default_icon = icon ; _lobby_infos[id].default_icon = icon ;
item->setIcon(COLUMN_NAME, icon) ; item->setIcon(COLUMN_NAME, icon) ;
} }
@ -1129,7 +1130,7 @@ void ChatLobbyWidget::updateMessageChanged(bool incoming, ChatLobbyId id, QDateT
if(bIsCurrentItem) if(bIsCurrentItem)
return ; return ;
_lobby_infos[id].default_icon = QIcon(IMAGE_MESSAGE) ; _lobby_infos[id].default_icon = FilesDefs::getIconFromQtResourcePath(IMAGE_MESSAGE) ;
QTreeWidgetItem *item = getTreeWidgetItem(id) ; QTreeWidgetItem *item = getTreeWidgetItem(id) ;

View File

@ -19,9 +19,10 @@
*******************************************************************************/ *******************************************************************************/
#pragma once #pragma once
#include <retroshare-gui/RsAutoUpdatePage.h>
#include "ui_ChatLobbyWidget.h" #include "ui_ChatLobbyWidget.h"
#include "RsAutoUpdatePage.h"
#include "chat/ChatLobbyUserNotify.h" #include "chat/ChatLobbyUserNotify.h"
#include "gui/gxs/GxsIdChooser.h" #include "gui/gxs/GxsIdChooser.h"

View File

@ -20,7 +20,7 @@
#pragma once #pragma once
#include "RsAutoUpdatePage.h" #include <retroshare-gui/RsAutoUpdatePage.h>
#include "ui_BannedFilesDialog.h" #include "ui_BannedFilesDialog.h"
class BannedFilesDialog: public QDialog class BannedFilesDialog: public QDialog

View File

@ -24,7 +24,8 @@
#include <QWidget> #include <QWidget>
#include <QPainter> #include <QPainter>
#include <QBitmap> #include <QBitmap>
#include "RsAutoUpdatePage.h"
#include <retroshare-gui/RsAutoUpdatePage.h>
#include <retroshare/rstypes.h> #include <retroshare/rstypes.h>
struct FileChunksInfo ; struct FileChunksInfo ;

View File

@ -23,7 +23,7 @@
#include <retroshare/rstypes.h> #include <retroshare/rstypes.h>
#include "ui_SearchDialog.h" #include "ui_SearchDialog.h"
#include "mainpage.h" #include <retroshare-gui/mainpage.h>
class AdvancedSearchDialog; class AdvancedSearchDialog;
class RSTreeWidgetItemCompareRole; class RSTreeWidgetItemCompareRole;

File diff suppressed because it is too large Load Diff

View File

@ -23,7 +23,7 @@
#include "ui_SharedFilesDialog.h" #include "ui_SharedFilesDialog.h"
#include "RsAutoUpdatePage.h" #include <retroshare-gui/RsAutoUpdatePage.h>
#include "gui/RetroShareLink.h" #include "gui/RetroShareLink.h"
#include "util/RsProtectedTimer.h" #include "util/RsProtectedTimer.h"
@ -38,10 +38,10 @@ class SharedFilesDialog : public RsAutoUpdatePage
public: public:
/** Default Constructor */ /** Default Constructor */
SharedFilesDialog(RetroshareDirModel *tree_model,RetroshareDirModel *flat_model,QWidget *parent = 0); SharedFilesDialog(bool remote_mode,QWidget *parent = 0);
/** Default Destructor */ /** Default Destructor */
~SharedFilesDialog() {} ~SharedFilesDialog() ;
virtual void hideEvent(QHideEvent *) ; virtual void hideEvent(QHideEvent *) ;
virtual void showEvent(QShowEvent *) ; virtual void showEvent(QShowEvent *) ;

View File

@ -25,7 +25,7 @@
#include <retroshare/rstypes.h> #include <retroshare/rstypes.h>
#include <retroshare/rsevents.h> #include <retroshare/rsevents.h>
#include "RsAutoUpdatePage.h" #include <retroshare-gui/RsAutoUpdatePage.h>
#include "ui_TransfersDialog.h" #include "ui_TransfersDialog.h"

View File

@ -21,9 +21,9 @@
#ifndef _GETTING_STARTED_DIALOG_H #ifndef _GETTING_STARTED_DIALOG_H
#define _GETTING_STARTED_DIALOG_H #define _GETTING_STARTED_DIALOG_H
//#include <retroshare/rstypes.h> #include <retroshare-gui/mainpage.h>
#include "ui_GetStartedDialog.h" #include "ui_GetStartedDialog.h"
#include "mainpage.h"
#include <QTimer> #include <QTimer>

View File

@ -321,10 +321,10 @@ IdDialog::IdDialog(QWidget *parent) : MainPage(parent), ui(new Ui::IdDialog)
connect(idTWHAction, SIGNAL(toggled(bool)), this, SLOT(filterToggled(bool))); connect(idTWHAction, SIGNAL(toggled(bool)), this, SLOT(filterToggled(bool)));
idTWHMenu->addAction(idTWHAction); idTWHMenu->addAction(idTWHAction);
QAction *CreateIDAction = new QAction(QIcon(":/icons/png/person.png"),tr("Create new Identity"), this); QAction *CreateIDAction = new QAction(FilesDefs::getIconFromQtResourcePath(":/icons/png/person.png"),tr("Create new Identity"), this);
connect(CreateIDAction, SIGNAL(triggered()), this, SLOT(addIdentity())); connect(CreateIDAction, SIGNAL(triggered()), this, SLOT(addIdentity()));
QAction *CreateCircleAction = new QAction(QIcon(":/icons/png/circles.png"),tr("Create new circle"), this); QAction *CreateCircleAction = new QAction(FilesDefs::getIconFromQtResourcePath(":/icons/png/circles.png"),tr("Create new circle"), this);
connect(CreateCircleAction, SIGNAL(triggered()), this, SLOT(createExternalCircle())); connect(CreateCircleAction, SIGNAL(triggered()), this, SLOT(createExternalCircle()));
QMenu *menu = new QMenu(); QMenu *menu = new QMenu();
@ -1017,11 +1017,11 @@ void IdDialog::CircleListCustomPopupMenu( QPoint )
#endif #endif
if(group_flags & GXS_SERV::GROUP_SUBSCRIBE_ADMIN) if(group_flags & GXS_SERV::GROUP_SUBSCRIBE_ADMIN)
{ {
contextMnu.addAction(QIcon(IMAGE_EDIT), tr("Edit Circle"), this, SLOT(showEditExistingCircle())); contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_EDIT), tr("Edit Circle"), this, SLOT(showEditExistingCircle()));
am_I_circle_admin = true ; am_I_circle_admin = true ;
} }
else else
contextMnu.addAction(QIcon(IMAGE_INFO), tr("See details"), this, SLOT(showEditExistingCircle())); contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_INFO), tr("See details"), this, SLOT(showEditExistingCircle()));
#ifdef CIRCLE_MEMBERSHIP_CATEGORIES #ifdef CIRCLE_MEMBERSHIP_CATEGORIES
} }
#endif #endif
@ -1109,9 +1109,9 @@ void IdDialog::CircleListCustomPopupMenu( QPoint )
QAction *action ; QAction *action ;
if(is_circle) if(is_circle)
action = new QAction(QIcon(image_names[i]), menu_titles[i] + " " + id_name,this) ; action = new QAction(FilesDefs::getIconFromQtResourcePath(image_names[i]), menu_titles[i] + " " + id_name,this) ;
else else
action = new QAction(QIcon(image_names[i]), menu_titles[i],this) ; action = new QAction(FilesDefs::getIconFromQtResourcePath(image_names[i]), menu_titles[i],this) ;
if(i <2) if(i <2)
QObject::connect(action,SIGNAL(triggered()), this, SLOT(acceptCircleSubscription())); QObject::connect(action,SIGNAL(triggered()), this, SLOT(acceptCircleSubscription()));
@ -1134,7 +1134,7 @@ void IdDialog::CircleListCustomPopupMenu( QPoint )
else else
id_name = tr("for identity ")+QString::fromStdString(ids[i][j].toStdString()) ; id_name = tr("for identity ")+QString::fromStdString(ids[i][j].toStdString()) ;
QAction *action = new QAction(QIcon(image_names[i]), id_name,this) ; QAction *action = new QAction(FilesDefs::getIconFromQtResourcePath(image_names[i]), id_name,this) ;
if(i <2) if(i <2)
QObject::connect(action,SIGNAL(triggered()), this, SLOT(acceptCircleSubscription())); QObject::connect(action,SIGNAL(triggered()), this, SLOT(acceptCircleSubscription()));
@ -2195,7 +2195,7 @@ void IdDialog::IdListCustomPopupMenu( QPoint )
{ {
if(own_identities.size() <= 1) if(own_identities.size() <= 1)
{ {
QAction *action = contextMenu->addAction(QIcon(":/icons/png/chats.png"), tr("Chat with this person"), this, SLOT(chatIdentity())); QAction *action = contextMenu->addAction(FilesDefs::getIconFromQtResourcePath(":/icons/png/chats.png"), tr("Chat with this person"), this, SLOT(chatIdentity()));
if(own_identities.empty()) if(own_identities.empty())
action->setEnabled(false) ; action->setEnabled(false) ;
@ -2204,7 +2204,7 @@ void IdDialog::IdListCustomPopupMenu( QPoint )
} }
else else
{ {
QMenu *mnu = contextMenu->addMenu(QIcon(":/icons/png/chats.png"),tr("Chat with this person as...")) ; QMenu *mnu = contextMenu->addMenu(FilesDefs::getIconFromQtResourcePath(":/icons/png/chats.png"),tr("Chat with this person as...")) ;
for(std::list<RsGxsId>::const_iterator it=own_identities.begin();it!=own_identities.end();++it) for(std::list<RsGxsId>::const_iterator it=own_identities.begin();it!=own_identities.end();++it)
{ {
@ -2222,7 +2222,7 @@ void IdDialog::IdListCustomPopupMenu( QPoint )
} }
} }
// always allow to send messages // always allow to send messages
contextMenu->addAction(QIcon(":/icons/mail/write-mail.png"), tr("Send message"), this, SLOT(sendMsg())); contextMenu->addAction(FilesDefs::getIconFromQtResourcePath(":/icons/mail/write-mail.png"), tr("Send message"), this, SLOT(sendMsg()));
contextMenu->addSeparator(); contextMenu->addSeparator();
@ -2233,18 +2233,18 @@ void IdDialog::IdListCustomPopupMenu( QPoint )
contextMenu->addAction(QIcon(""),tr("Copy identity to clipboard"),this,SLOT(copyRetroshareLink())) ; contextMenu->addAction(QIcon(""),tr("Copy identity to clipboard"),this,SLOT(copyRetroshareLink())) ;
if(n_is_not_a_contact == 0) if(n_is_not_a_contact == 0)
contextMenu->addAction(QIcon(":/images/cancel.png"), tr("Remove from Contacts"), this, SLOT(removefromContacts())); contextMenu->addAction(FilesDefs::getIconFromQtResourcePath(":/images/cancel.png"), tr("Remove from Contacts"), this, SLOT(removefromContacts()));
contextMenu->addSeparator(); contextMenu->addSeparator();
if(n_positive_reputations == 0) // only unban when all items are banned if(n_positive_reputations == 0) // only unban when all items are banned
contextMenu->addAction(QIcon(":/icons/png/thumbs-up.png"), tr("Set positive opinion"), this, SLOT(positivePerson())); contextMenu->addAction(FilesDefs::getIconFromQtResourcePath(":/icons/png/thumbs-up.png"), tr("Set positive opinion"), this, SLOT(positivePerson()));
if(n_neutral_reputations == 0) // only unban when all items are banned if(n_neutral_reputations == 0) // only unban when all items are banned
contextMenu->addAction(QIcon(":/icons/png/thumbs-neutral.png"), tr("Set neutral opinion"), this, SLOT(neutralPerson())); contextMenu->addAction(FilesDefs::getIconFromQtResourcePath(":/icons/png/thumbs-neutral.png"), tr("Set neutral opinion"), this, SLOT(neutralPerson()));
if(n_negative_reputations == 0) if(n_negative_reputations == 0)
contextMenu->addAction(QIcon(":/icons/png/thumbs-down.png"), tr("Set negative opinion"), this, SLOT(negativePerson())); contextMenu->addAction(FilesDefs::getIconFromQtResourcePath(":/icons/png/thumbs-down.png"), tr("Set negative opinion"), this, SLOT(negativePerson()));
} }
if(one_item_owned_by_you && n_selected_items==1) if(one_item_owned_by_you && n_selected_items==1)

View File

@ -21,8 +21,10 @@
#ifndef _CONNECTIONSDIALOG_H #ifndef _CONNECTIONSDIALOG_H
#define _CONNECTIONSDIALOG_H #define _CONNECTIONSDIALOG_H
#include <retroshare-gui/RsAutoUpdatePage.h>
#include "ui_NetworkDialog.h" #include "ui_NetworkDialog.h"
#include "RsAutoUpdatePage.h"
#include "gui/NetworkDialog/pgpid_item_model.h" #include "gui/NetworkDialog/pgpid_item_model.h"
#include "gui/NetworkDialog/pgpid_item_proxy.h" #include "gui/NetworkDialog/pgpid_item_proxy.h"

View File

@ -25,7 +25,7 @@
#include <retroshare/rstypes.h> #include <retroshare/rstypes.h>
#include "RsAutoUpdatePage.h" #include <retroshare-gui/RsAutoUpdatePage.h>
#include "ui_NetworkView.h" #include "ui_NetworkView.h"

View File

@ -21,7 +21,7 @@
#ifndef _NEWS_FEED_DIALOG_H #ifndef _NEWS_FEED_DIALOG_H
#define _NEWS_FEED_DIALOG_H #define _NEWS_FEED_DIALOG_H
#include "mainpage.h" #include <retroshare-gui/mainpage.h>
#include "gui/feeds/FeedHolder.h" #include "gui/feeds/FeedHolder.h"
#include "util/TokenQueue.h" #include "util/TokenQueue.h"

View File

@ -21,7 +21,7 @@
#ifndef _PLUGINS_PAGE_H_ #ifndef _PLUGINS_PAGE_H_
#define _PLUGINS_PAGE_H_ #define _PLUGINS_PAGE_H_
#include "mainpage.h" #include <retroshare-gui/mainpage.h>
#include <QGroupBox> #include <QGroupBox>
#include <QString> #include <QString>

View File

@ -255,7 +255,7 @@ void PostedDialog::groupInfoToGroupItemInfo(const RsGxsGenericGroupData *groupDa
groupItemInfo.icon = image; groupItemInfo.icon = image;
} }
else else
groupItemInfo.icon = QIcon(":icons/png/postedlinks.png"); groupItemInfo.icon = FilesDefs::getIconFromQtResourcePath(":icons/png/postedlinks.png");
groupItemInfo.description = QString::fromUtf8(postedGroupData->mDescription.c_str()); groupItemInfo.description = QString::fromUtf8(postedGroupData->mDescription.c_str());
} }

View File

@ -20,7 +20,8 @@
#include "RemoteDirModel.h" #include "RemoteDirModel.h"
#include "RsAutoUpdatePage.h" #include <retroshare-gui/RsAutoUpdatePage.h>
#include "gui/common/FilesDefs.h" #include "gui/common/FilesDefs.h"
#include "gui/common/GroupDefs.h" #include "gui/common/GroupDefs.h"
#include "gui/common/RsCollection.h" #include "gui/common/RsCollection.h"
@ -1115,15 +1116,9 @@ Qt::ItemFlags RetroshareDirModel::flags( const QModelIndex & index ) const
/* Callback from Core*/ /* Callback from Core*/
void RetroshareDirModel::preMods() void RetroshareDirModel::preMods()
{ {
emit layoutAboutToBeChanged();
mUpdating = true ; mUpdating = true ;
#if QT_VERSION < 0x050000
reset();
#else
beginResetModel();
endResetModel();
#endif
beginResetModel();
#ifdef RDM_DEBUG #ifdef RDM_DEBUG
std::cerr << "RetroshareDirModel::preMods()" << std::endl; std::cerr << "RetroshareDirModel::preMods()" << std::endl;
#endif #endif
@ -1132,20 +1127,14 @@ void RetroshareDirModel::preMods()
/* Callback from Core*/ /* Callback from Core*/
void RetroshareDirModel::postMods() void RetroshareDirModel::postMods()
{ {
// emit layoutAboutToBeChanged();
mUpdating = false ; mUpdating = false ;
#if QT_VERSION >= 0x040600
beginResetModel();
#endif
#ifdef RDM_DEBUG #ifdef RDM_DEBUG
std::cerr << "RetroshareDirModel::postMods()" << std::endl; std::cerr << "RetroshareDirModel::postMods()" << std::endl;
#endif #endif
#if QT_VERSION >= 0x040600
endResetModel(); endResetModel();
#endif
emit layoutChanged(); emit dataChanged(createIndex(0,0,(void*)NULL), createIndex(rowCount()-1,COLUMN_COUNT-1,(void*)NULL));
} }
void FlatStyle_RDM::postMods() void FlatStyle_RDM::postMods()

View File

@ -19,7 +19,8 @@
*******************************************************************************/ *******************************************************************************/
#include <QTimer> #include <QTimer>
#include "RsAutoUpdatePage.h"
#include <retroshare-gui/RsAutoUpdatePage.h>
bool RsAutoUpdatePage::_locked = false ; bool RsAutoUpdatePage::_locked = false ;

View File

@ -40,10 +40,7 @@
</size> </size>
</property> </property>
<property name="styleSheet"> <property name="styleSheet">
<string notr="true">QFrame#frame{border: 2px solid #CCCCCC; <string notr="true"/>
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #EEEEEE, stop: 1 #CCCCCC);
border-radius: 10px}</string>
</property> </property>
<property name="frameShape"> <property name="frameShape">
<enum>QFrame::StyledPanel</enum> <enum>QFrame::StyledPanel</enum>

View File

@ -40,10 +40,7 @@
</size> </size>
</property> </property>
<property name="styleSheet"> <property name="styleSheet">
<string notr="true">QFrame#frame{border: 2px solid #CCCCCC; <string notr="true"/>
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #EEEEEE, stop: 1 #CCCCCC);
border-radius: 10px}</string>
</property> </property>
<property name="frameShape"> <property name="frameShape">
<enum>QFrame::StyledPanel</enum> <enum>QFrame::StyledPanel</enum>

View File

@ -40,10 +40,7 @@
</size> </size>
</property> </property>
<property name="styleSheet"> <property name="styleSheet">
<string notr="true">QFrame#frame{border: 2px solid #CCCCCC; <string notr="true"/>
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #EEEEEE, stop: 1 #CCCCCC);
border-radius: 10px}</string>
</property> </property>
<property name="frameShape"> <property name="frameShape">
<enum>QFrame::StyledPanel</enum> <enum>QFrame::StyledPanel</enum>

View File

@ -92,11 +92,11 @@ ChatLobbyDialog::ChatLobbyDialog(const ChatLobbyId& lid, QWidget *parent, Qt::Wi
QHeaderView_setSectionResizeModeColumn(header, COLUMN_NAME, QHeaderView::Stretch); QHeaderView_setSectionResizeModeColumn(header, COLUMN_NAME, QHeaderView::Stretch);
muteAct = new QAction(QIcon(), tr("Mute participant"), this); muteAct = new QAction(QIcon(), tr("Mute participant"), this);
voteNegativeAct = new QAction(QIcon(":/icons/png/thumbs-down.png"), tr("Ban this person (Sets negative opinion)"), this); voteNegativeAct = new QAction(FilesDefs::getIconFromQtResourcePath(":/icons/png/thumbs-down.png"), tr("Ban this person (Sets negative opinion)"), this);
voteNeutralAct = new QAction(QIcon(":/icons/png/thumbs-neutral.png"), tr("Give neutral opinion"), this); voteNeutralAct = new QAction(FilesDefs::getIconFromQtResourcePath(":/icons/png/thumbs-neutral.png"), tr("Give neutral opinion"), this);
votePositiveAct = new QAction(QIcon(":/icons/png/thumbs-up.png"), tr("Give positive opinion"), this); votePositiveAct = new QAction(FilesDefs::getIconFromQtResourcePath(":/icons/png/thumbs-up.png"), tr("Give positive opinion"), this);
distantChatAct = new QAction(QIcon(":/icons/png/chats.png"), tr("Start private chat"), this); distantChatAct = new QAction(FilesDefs::getIconFromQtResourcePath(":/icons/png/chats.png"), tr("Start private chat"), this);
sendMessageAct = new QAction(QIcon(":/icons/mail/write-mail.png"), tr("Send Message"), this); sendMessageAct = new QAction(FilesDefs::getIconFromQtResourcePath(":/icons/mail/write-mail.png"), tr("Send Message"), this);
showInPeopleAct = new QAction(QIcon(), tr("Show author in people tab"), this); showInPeopleAct = new QAction(QIcon(), tr("Show author in people tab"), this);
QActionGroup *sortgrp = new QActionGroup(this); QActionGroup *sortgrp = new QActionGroup(this);

View File

@ -23,6 +23,7 @@
#include <QTime> #include <QTime>
#include <QMenu> #include <QMenu>
#include "gui/common/FilesDefs.h"
#include "ChatLobbyUserNotify.h" #include "ChatLobbyUserNotify.h"
#include "gui/ChatLobbyWidget.h" #include "gui/ChatLobbyWidget.h"
@ -104,12 +105,12 @@ void ChatLobbyUserNotify::setTextCaseSensitive(bool value)
QIcon ChatLobbyUserNotify::getIcon() QIcon ChatLobbyUserNotify::getIcon()
{ {
return QIcon(":/icons/png/chat-lobbies.png"); return FilesDefs::getIconFromQtResourcePath(":/icons/png/chat-lobbies.png");
} }
QIcon ChatLobbyUserNotify::getMainIcon(bool hasNew) QIcon ChatLobbyUserNotify::getMainIcon(bool hasNew)
{ {
return hasNew ? QIcon(":/icons/png/chat-lobbies-notify.png") : QIcon(":/icons/png/chat-lobbies.png"); return hasNew ? FilesDefs::getIconFromQtResourcePath(":/icons/png/chat-lobbies-notify.png") : FilesDefs::getIconFromQtResourcePath(":/icons/png/chat-lobbies.png");
} }
unsigned int ChatLobbyUserNotify::getNewCount() unsigned int ChatLobbyUserNotify::getNewCount()
@ -164,7 +165,7 @@ void ChatLobbyUserNotify::iconClicked()
ChatLobbyInfo clInfo; ChatLobbyInfo clInfo;
if (rsMsgs->getChatLobbyInfo(clId,clInfo)) if (rsMsgs->getChatLobbyInfo(clId,clInfo))
strLobbyName=QString::fromUtf8(clInfo.lobby_name.c_str()) ; strLobbyName=QString::fromUtf8(clInfo.lobby_name.c_str()) ;
icoLobby=(clInfo.lobby_flags & RS_CHAT_LOBBY_FLAGS_PUBLIC) ? QIcon(":/images/chat_red24.png") : QIcon(":/images/chat_x24.png"); icoLobby=(clInfo.lobby_flags & RS_CHAT_LOBBY_FLAGS_PUBLIC) ? FilesDefs::getIconFromQtResourcePath(":/images/chat_red24.png") : FilesDefs::getIconFromQtResourcePath(":/images/chat_x24.png");
bFound=true; bFound=true;
break; break;
} }

View File

@ -22,6 +22,7 @@
#include <QTabBar> #include <QTabBar>
#include "gui/common/FilesDefs.h"
#include "ChatTabWidget.h" #include "ChatTabWidget.h"
#include "ui_ChatTabWidget.h" #include "ui_ChatTabWidget.h"
#include "ChatDialog.h" #include "ChatDialog.h"
@ -102,9 +103,9 @@ void ChatTabWidget::tabInfoChanged(ChatDialog *dialog)
if (tab >= 0) { if (tab >= 0) {
if (dialog->isTyping()) { if (dialog->isTyping()) {
setBlinking(tab, false); setBlinking(tab, false);
setTabIcon(tab, QIcon(IMAGE_TYPING)); setTabIcon(tab, FilesDefs::getIconFromQtResourcePath(IMAGE_TYPING));
} else if (dialog->hasNewMessages()) { } else if (dialog->hasNewMessages()) {
setTabIcon(tab, QIcon(IMAGE_CHAT)); setTabIcon(tab, FilesDefs::getIconFromQtResourcePath(IMAGE_CHAT));
if (dialog->notifyBlink()) { if (dialog->notifyBlink()) {
setBlinking(tab, true); setBlinking(tab, true);
} else { } else {
@ -148,9 +149,9 @@ void ChatTabWidget::getInfo(bool &isTyping, bool &hasNewMessage, QIcon *icon)
if (icon) { if (icon) {
if (isTyping) { if (isTyping) {
*icon = QIcon(IMAGE_TYPING); *icon = FilesDefs::getIconFromQtResourcePath(IMAGE_TYPING);
} else if (hasNewMessage) { } else if (hasNewMessage) {
*icon = QIcon(IMAGE_CHAT); *icon = FilesDefs::getIconFromQtResourcePath(IMAGE_CHAT);
} else { } else {
cd = dynamic_cast<ChatDialog*>(currentWidget()); cd = dynamic_cast<ChatDialog*>(currentWidget());
if (cd && cd->hasPeerStatus()) { if (cd && cd->hasPeerStatus()) {

View File

@ -20,6 +20,7 @@
* * * *
*******************************************************************************/ *******************************************************************************/
#include "gui/common/FilesDefs.h"
#include "ChatUserNotify.h" #include "ChatUserNotify.h"
#include "gui/notifyqt.h" #include "gui/notifyqt.h"
#include "gui/MainWindow.h" #include "gui/MainWindow.h"
@ -75,12 +76,12 @@ bool ChatUserNotify::hasSetting(QString *name, QString *group)
QIcon ChatUserNotify::getIcon() QIcon ChatUserNotify::getIcon()
{ {
return QIcon(":/images/chat.png"); return FilesDefs::getIconFromQtResourcePath(":/images/chat.png");
} }
QIcon ChatUserNotify::getMainIcon(bool hasNew) QIcon ChatUserNotify::getMainIcon(bool hasNew)
{ {
return hasNew ? QIcon(":/icons/png/network-notify.png") : QIcon(":/icons/png/network.png"); return hasNew ? FilesDefs::getIconFromQtResourcePath(":/icons/png/network-notify.png") : FilesDefs::getIconFromQtResourcePath(":/icons/png/network.png");
} }
unsigned int ChatUserNotify::getNewCount() unsigned int ChatUserNotify::getNewCount()

View File

@ -245,7 +245,7 @@ ChatWidget::ChatWidget(QWidget *parent)
//#ifdef ENABLE_DISTANT_CHAT_AND_MSGS //#ifdef ENABLE_DISTANT_CHAT_AND_MSGS
// contextMnu->addSeparator(); // contextMnu->addSeparator();
// QAction *action = new QAction(QIcon(":/images/pasterslink.png"), tr("Paste/Create private chat or Message link..."), this); // QAction *action = new QAction(FilesDefs::getIconFromQtResourcePath(":/images/pasterslink.png"), tr("Paste/Create private chat or Message link..."), this);
// connect(action, SIGNAL(triggered()), this, SLOT(pasteCreateMsgLink())); // connect(action, SIGNAL(triggered()), this, SLOT(pasteCreateMsgLink()));
// ui->chatTextEdit->addContextMenuAction(action); // ui->chatTextEdit->addContextMenuAction(action);
//#endif //#endif
@ -1067,7 +1067,7 @@ void ChatWidget::addChatMsg(bool incoming, const QString &name, const RsGxsId gx
rsIdentity->getIdDetails(gxsId, details); rsIdentity->getIdDetails(gxsId, details);
bool isUnsigned = !(details.mFlags & RS_IDENTITY_FLAGS_PGP_LINKED); bool isUnsigned = !(details.mFlags & RS_IDENTITY_FLAGS_PGP_LINKED);
if(isUnsigned && ui->textBrowser->getShowImages()) { if(isUnsigned && ui->textBrowser->getShowImages()) {
QIcon icon = QIcon(":/icons/anonymous_blue_128.png"); QIcon icon = FilesDefs::getIconFromQtResourcePath(":/icons/anonymous_blue_128.png");
int height = ui->textBrowser->fontMetrics().height()*0.8; int height = ui->textBrowser->fontMetrics().height()*0.8;
QImage image(icon.pixmap(height,height).toImage()); QImage image(icon.pixmap(height,height).toImage());
QByteArray byteArray; QByteArray byteArray;

View File

@ -23,6 +23,7 @@
#include "PopupChatDialog.h" #include "PopupChatDialog.h"
#include "PopupChatWindow.h" #include "PopupChatWindow.h"
#include "gui/common/FilesDefs.h"
#include "gui/settings/rsharesettings.h" #include "gui/settings/rsharesettings.h"
#include "gui/settings/RsharePeerSettings.h" #include "gui/settings/RsharePeerSettings.h"
#include "gui/notifyqt.h" #include "gui/notifyqt.h"
@ -149,10 +150,10 @@ void PopupChatDialog::showAvatarFrame(bool show)
if (show) { if (show) {
ui.avatarFrameButton->setToolTip(tr("Hide Avatar")); ui.avatarFrameButton->setToolTip(tr("Hide Avatar"));
ui.avatarFrameButton->setIcon(QIcon(":images/hide_toolbox_frame.png")); ui.avatarFrameButton->setIcon(FilesDefs::getIconFromQtResourcePath(":images/hide_toolbox_frame.png"));
} else { } else {
ui.avatarFrameButton->setToolTip(tr("Show Avatar")); ui.avatarFrameButton->setToolTip(tr("Show Avatar"));
ui.avatarFrameButton->setIcon(QIcon(":images/show_toolbox_frame.png")); ui.avatarFrameButton->setIcon(FilesDefs::getIconFromQtResourcePath(":images/show_toolbox_frame.png"));
} }
PeerSettings->setShowAvatarFrame(mChatId, show); PeerSettings->setShowAvatarFrame(mChatId, show);

View File

@ -24,6 +24,7 @@
#include <QCloseEvent> #include <QCloseEvent>
#include <QMenu> #include <QMenu>
#include "gui/common/FilesDefs.h"
#include "PopupChatWindow.h" #include "PopupChatWindow.h"
#include "ChatDialog.h" #include "ChatDialog.h"
#include "gui/settings/rsharesettings.h" #include "gui/settings/rsharesettings.h"
@ -113,14 +114,14 @@ PopupChatWindow::PopupChatWindow(bool tabbed, QWidget *parent, Qt::WindowFlags f
void PopupChatWindow::showContextMenu(QPoint) void PopupChatWindow::showContextMenu(QPoint)
{ {
QMenu contextMnu(this); QMenu contextMnu(this);
contextMnu.addAction(QIcon(":/images/highlight.png"),tr("Choose window color..."),this,SLOT(setStyle())); contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(":/images/highlight.png"),tr("Choose window color..."),this,SLOT(setStyle()));
if (Settings->getChatFlags() & RS_CHAT_TABBED_WINDOW) if (Settings->getChatFlags() & RS_CHAT_TABBED_WINDOW)
{ {
if(tabbedWindow) if(tabbedWindow)
contextMnu.addAction(QIcon(":/images/tab-dock.png"),tr("Dock window"),this,SLOT(docTab())); contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(":/images/tab-dock.png"),tr("Dock window"),this,SLOT(docTab()));
contextMnu.addAction(QIcon(":/images/tab-undock.png"),tr("Dock window"),this,SLOT(undockTab())); contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(":/images/tab-undock.png"),tr("Dock window"),this,SLOT(undockTab()));
} }
contextMnu.exec(QCursor::pos()); contextMnu.exec(QCursor::pos());
} }
@ -295,9 +296,9 @@ void PopupChatWindow::calculateTitle(ChatDialog *dialog)
QIcon icon; QIcon icon;
if (isTyping) { if (isTyping) {
mBlinkIcon = QIcon(); mBlinkIcon = QIcon();
icon = QIcon(IMAGE_TYPING); icon = FilesDefs::getIconFromQtResourcePath(IMAGE_TYPING);
} else if (hasNewMessages) { } else if (hasNewMessages) {
icon = QIcon(IMAGE_CHAT); icon = FilesDefs::getIconFromQtResourcePath(IMAGE_CHAT);
if (Settings->getChatFlags() & RS_CHAT_BLINK) { if (Settings->getChatFlags() & RS_CHAT_BLINK) {
mBlinkIcon = icon; mBlinkIcon = icon;
} else { } else {

View File

@ -26,11 +26,13 @@
#include <unistd.h> #include <unistd.h>
#include "gui/common/FilesDefs.h"
#include <retroshare/rsstatus.h> #include <retroshare/rsstatus.h>
#include <retroshare/rspeers.h> #include <retroshare/rspeers.h>
#include <retroshare/rsidentity.h> #include <retroshare/rsidentity.h>
#include "RsAutoUpdatePage.h" #include <retroshare-gui/RsAutoUpdatePage.h>
#include "PopupDistantChatDialog.h" #include "PopupDistantChatDialog.h"
#define IMAGE_RED_LED ":/icons/bullet_red_128.png" #define IMAGE_RED_LED ":/icons/bullet_red_128.png"
@ -112,7 +114,7 @@ void PopupDistantChatDialog::updateDisplay()
{ {
case RS_DISTANT_CHAT_STATUS_UNKNOWN: case RS_DISTANT_CHAT_STATUS_UNKNOWN:
_status_label->setIcon(QIcon(IMAGE_GRY_LED)); _status_label->setIcon(FilesDefs::getIconFromQtResourcePath(IMAGE_GRY_LED));
msg = tr("Remote status unknown."); msg = tr("Remote status unknown.");
_status_label->setToolTip(msg); _status_label->setToolTip(msg);
getChatWidget()->updateStatusString("%1", msg, true); getChatWidget()->updateStatusString("%1", msg, true);
@ -123,7 +125,7 @@ void PopupDistantChatDialog::updateDisplay()
break ; break ;
case RS_DISTANT_CHAT_STATUS_REMOTELY_CLOSED: case RS_DISTANT_CHAT_STATUS_REMOTELY_CLOSED:
std::cerr << "Chat remotely closed. " << std::endl; std::cerr << "Chat remotely closed. " << std::endl;
_status_label->setIcon(QIcon(IMAGE_RED_LED)); _status_label->setIcon(FilesDefs::getIconFromQtResourcePath(IMAGE_RED_LED));
_status_label->setToolTip( QObject::tr("Distant peer has closed the chat") ); _status_label->setToolTip( QObject::tr("Distant peer has closed the chat") );
getChatWidget()->updateStatusString("%1", tr( "Your partner closed the conversation." ), true ); getChatWidget()->updateStatusString("%1", tr( "Your partner closed the conversation." ), true );
@ -134,7 +136,7 @@ void PopupDistantChatDialog::updateDisplay()
case RS_DISTANT_CHAT_STATUS_TUNNEL_DN: case RS_DISTANT_CHAT_STATUS_TUNNEL_DN:
_status_label->setIcon(QIcon(IMAGE_YEL_LED)); _status_label->setIcon(FilesDefs::getIconFromQtResourcePath(IMAGE_YEL_LED));
msg = QObject::tr( "Tunnel is pending"); msg = QObject::tr( "Tunnel is pending");
if(tinfo.pending_items > 0) if(tinfo.pending_items > 0)
@ -147,7 +149,7 @@ void PopupDistantChatDialog::updateDisplay()
break; break;
case RS_DISTANT_CHAT_STATUS_CAN_TALK: case RS_DISTANT_CHAT_STATUS_CAN_TALK:
_status_label->setIcon(QIcon(IMAGE_GRN_LED)); _status_label->setIcon(FilesDefs::getIconFromQtResourcePath(IMAGE_GRN_LED));
msg = QObject::tr( "End-to-end encrypted conversation established"); msg = QObject::tr( "End-to-end encrypted conversation established");
_status_label->setToolTip(msg); _status_label->setToolTip(msg);
getChatWidget()->unblockSending(); getChatWidget()->unblockSending();

View File

@ -37,6 +37,7 @@
#include "Emoticons.h" #include "Emoticons.h"
#include "util/HandleRichText.h" #include "util/HandleRichText.h"
#include "retroshare/rsinit.h" #include "retroshare/rsinit.h"
#include "gui/common/FilesDefs.h"
#define ICONNAME "groupicon.png" #define ICONNAME "groupicon.png"
@ -210,7 +211,7 @@ void Emoticons::showSmileyWidget(QWidget *parent, QWidget *button, const char *s
smTab->setStyleSheet("QTabBar::tab { height: 44px; width: 44px; }"); smTab->setStyleSheet("QTabBar::tab { height: 44px; width: 44px; }");
if (groupName.right(4).toLower() == ".png") if (groupName.right(4).toLower() == ".png")
smTab->addTab( tabGrpWidget, QIcon(groupName), ""); smTab->addTab( tabGrpWidget, FilesDefs::getIconFromQtResourcePath(groupName), "");
else else
smTab->addTab( tabGrpWidget, groupName); smTab->addTab( tabGrpWidget, groupName);
} else { } else {
@ -371,9 +372,9 @@ void Emoticons::showStickerWidget(QWidget *parent, QWidget *button, const char *
int index; int index;
if (groupDir.exists(ICONNAME)) //use groupicon.png if exists, else the first png as a group icon if (groupDir.exists(ICONNAME)) //use groupicon.png if exists, else the first png as a group icon
index = smTab->addTab( tabGrpWidget, QIcon(groupDir.absoluteFilePath(ICONNAME)), ""); index = smTab->addTab( tabGrpWidget, FilesDefs::getIconFromQtResourcePath(groupDir.absoluteFilePath(ICONNAME)), "");
else else
index = smTab->addTab( tabGrpWidget, QIcon(groupDir.entryInfoList(QDir::Files)[0].canonicalFilePath()), ""); index = smTab->addTab( tabGrpWidget, FilesDefs::getIconFromQtResourcePath(groupDir.entryInfoList(QDir::Files)[0].canonicalFilePath()), "");
smTab->setTabToolTip(index, groupName); smTab->setTabToolTip(index, groupName);
} else { } else {
tabGrpWidget = smWidget; tabGrpWidget = smWidget;

View File

@ -352,25 +352,25 @@ void FriendList::peerTreeWidgetCustomPopupMenu()
{ {
bool standard = c->data(COLUMN_DATA, ROLE_STANDARD).toBool(); bool standard = c->data(COLUMN_DATA, ROLE_STANDARD).toBool();
#ifdef RS_DIRECT_CHAT #ifdef RS_DIRECT_CHAT
contextMenu->addAction(QIcon(IMAGE_MSG), tr("Send message to whole group"), this, SLOT(msgfriend())); contextMenu->addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_MSG), tr("Send message to whole group"), this, SLOT(msgfriend()));
contextMenu->addSeparator(); contextMenu->addSeparator();
#endif // RS_DIRECT_CHAT #endif // RS_DIRECT_CHAT
contextMenu->addAction(QIcon(IMAGE_EDIT), tr("Edit Group"), this, SLOT(editGroup())); contextMenu->addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_EDIT), tr("Edit Group"), this, SLOT(editGroup()));
QAction *action = contextMenu->addAction(QIcon(IMAGE_REMOVE), tr("Remove Group"), this, SLOT(removeGroup())); QAction *action = contextMenu->addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_REMOVE), tr("Remove Group"), this, SLOT(removeGroup()));
action->setDisabled(standard); action->setDisabled(standard);
} }
break; break;
case TYPE_GPG: case TYPE_GPG:
{ {
#ifdef RS_DIRECT_CHAT #ifdef RS_DIRECT_CHAT
contextMenu->addAction(QIcon(IMAGE_CHAT), tr("Chat"), this, SLOT(chatfriendproxy())); contextMenu->addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_CHAT), tr("Chat"), this, SLOT(chatfriendproxy()));
contextMenu->addAction(QIcon(IMAGE_MSG), tr("Send message"), this, SLOT(msgfriend())); contextMenu->addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_MSG), tr("Send message"), this, SLOT(msgfriend()));
contextMenu->addSeparator(); contextMenu->addSeparator();
#endif // RS_DIRECT_CHAT #endif // RS_DIRECT_CHAT
contextMenu->addAction(QIcon(IMAGE_FRIENDINFO), tr("Profile details"), this, SLOT(configurefriend())); contextMenu->addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_FRIENDINFO), tr("Profile details"), this, SLOT(configurefriend()));
contextMenu->addAction(QIcon(IMAGE_DENYFRIEND), tr("Deny connections"), this, SLOT(removefriend())); contextMenu->addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_DENYFRIEND), tr("Deny connections"), this, SLOT(removefriend()));
if(mShowGroups) if(mShowGroups)
{ {
@ -412,8 +412,8 @@ void FriendList::peerTreeWidgetCustomPopupMenu()
} }
} }
QMenu *groupsMenu = contextMenu->addMenu(QIcon(IMAGE_GROUP16), tr("Groups")); QMenu *groupsMenu = contextMenu->addMenu(FilesDefs::getIconFromQtResourcePath(IMAGE_GROUP16), tr("Groups"));
groupsMenu->addAction(QIcon(IMAGE_EXPAND), tr("Create new group"), this, SLOT(createNewGroup())); groupsMenu->addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_EXPAND), tr("Create new group"), this, SLOT(createNewGroup()));
if (addToGroupMenu || moveToGroupMenu || foundGroup) { if (addToGroupMenu || moveToGroupMenu || foundGroup) {
if (addToGroupMenu) { if (addToGroupMenu) {
@ -445,24 +445,24 @@ void FriendList::peerTreeWidgetCustomPopupMenu()
case TYPE_SSL: case TYPE_SSL:
{ {
#ifdef RS_DIRECT_CHAT #ifdef RS_DIRECT_CHAT
contextMenu->addAction(QIcon(IMAGE_CHAT), tr("Chat"), this, SLOT(chatfriendproxy())); contextMenu->addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_CHAT), tr("Chat"), this, SLOT(chatfriendproxy()));
contextMenu->addAction(QIcon(IMAGE_MSG), tr("Send message to this node"), this, SLOT(msgfriend())); contextMenu->addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_MSG), tr("Send message to this node"), this, SLOT(msgfriend()));
contextMenu->addSeparator(); contextMenu->addSeparator();
#endif // RS_DIRECT_CHAT #endif // RS_DIRECT_CHAT
contextMenu->addAction(QIcon(IMAGE_FRIENDINFO), tr("Node details"), this, SLOT(configurefriend())); contextMenu->addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_FRIENDINFO), tr("Node details"), this, SLOT(configurefriend()));
if (type == TYPE_GPG || type == TYPE_SSL) { if (type == TYPE_GPG || type == TYPE_SSL) {
contextMenu->addAction(QIcon(IMAGE_EXPORTFRIEND), tr("Recommend this node to..."), this, SLOT(recommendfriend())); contextMenu->addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_EXPORTFRIEND), tr("Recommend this node to..."), this, SLOT(recommendfriend()));
} }
if(!rsPeers->isHiddenNode(rsPeers->getOwnId()) || rsPeers->isHiddenNode( RsPeerId(getRsId(c)) )) if(!rsPeers->isHiddenNode(rsPeers->getOwnId()) || rsPeers->isHiddenNode( RsPeerId(getRsId(c)) ))
contextMenu->addAction(QIcon(IMAGE_CONNECT), tr("Attempt to connect"), this, SLOT(connectfriend())); contextMenu->addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_CONNECT), tr("Attempt to connect"), this, SLOT(connectfriend()));
contextMenu->addAction(QIcon(IMAGE_COPYLINK), tr("Copy certificate link"), this, SLOT(copyFullCertificate())); contextMenu->addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_COPYLINK), tr("Copy certificate link"), this, SLOT(copyFullCertificate()));
//this is a SSL key //this is a SSL key
contextMenu->addAction(QIcon(IMAGE_REMOVEFRIEND), tr("Remove Friend Node"), this, SLOT(removefriend())); contextMenu->addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_REMOVEFRIEND), tr("Remove Friend Node"), this, SLOT(removefriend()));
} }
} }
@ -471,12 +471,12 @@ void FriendList::peerTreeWidgetCustomPopupMenu()
contextMenu->addSeparator(); contextMenu->addSeparator();
QAction *action = contextMenu->addAction(QIcon(IMAGE_PASTELINK), tr("Paste certificate link"), this, SLOT(pastePerson())); QAction *action = contextMenu->addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_PASTELINK), tr("Paste certificate link"), this, SLOT(pastePerson()));
if (RSLinkClipboard::empty(RetroShareLink::TYPE_CERTIFICATE)) if (RSLinkClipboard::empty(RetroShareLink::TYPE_CERTIFICATE))
action->setDisabled(true); action->setDisabled(true);
contextMenu->addAction(QIcon(IMAGE_EXPAND), tr("Expand all"), ui->peerTreeWidget, SLOT(expandAll())); contextMenu->addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_EXPAND), tr("Expand all"), ui->peerTreeWidget, SLOT(expandAll()));
contextMenu->addAction(QIcon(IMAGE_COLLAPSE), tr("Collapse all"), ui->peerTreeWidget, SLOT(collapseAll())); contextMenu->addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_COLLAPSE), tr("Collapse all"), ui->peerTreeWidget, SLOT(collapseAll()));
contextMenu = ui->peerTreeWidget->createStandardContextMenu(contextMenu); contextMenu = ui->peerTreeWidget->createStandardContextMenu(contextMenu);
@ -716,7 +716,7 @@ void FriendList::insertPeers()
groupItem->setChildIndicatorPolicy(QTreeWidgetItem::DontShowIndicatorWhenChildless); groupItem->setChildIndicatorPolicy(QTreeWidgetItem::DontShowIndicatorWhenChildless);
groupItem->setTextAlignment(COLUMN_NAME, Qt::AlignLeft | Qt::AlignVCenter); groupItem->setTextAlignment(COLUMN_NAME, Qt::AlignLeft | Qt::AlignVCenter);
groupItem->setIcon(COLUMN_NAME, QIcon(IMAGE_GROUP24)); groupItem->setIcon(COLUMN_NAME, FilesDefs::getIconFromQtResourcePath(IMAGE_GROUP24));
groupItem->setData(COLUMN_NAME, Qt::ForegroundRole, textColorGroup()); groupItem->setData(COLUMN_NAME, Qt::ForegroundRole, textColorGroup());
/* used to find back the item */ /* used to find back the item */

View File

@ -152,15 +152,13 @@ void RsFriendListModel::setDisplayGroups(bool b)
} }
void RsFriendListModel::preMods() void RsFriendListModel::preMods()
{ {
emit layoutAboutToBeChanged();
beginResetModel(); beginResetModel();
} }
void RsFriendListModel::postMods() void RsFriendListModel::postMods()
{ {
endResetModel(); endResetModel();
emit layoutChanged();
emit dataChanged(createIndex(0,0,(void*)NULL), createIndex(mTopLevel.size()-1,COLUMN_THREAD_NB_COLUMNS-1,(void*)NULL)); emit dataChanged(createIndex(0,0,(void*)NULL), createIndex(rowCount()-1,columnCount()-1,(void*)NULL));
} }
int RsFriendListModel::rowCount(const QModelIndex& parent) const int RsFriendListModel::rowCount(const QModelIndex& parent) const
@ -1060,14 +1058,16 @@ void RsFriendListModel::updateInternalData()
preMods(); preMods();
beginRemoveRows(QModelIndex(),0,mTopLevel.size()-1); beginRemoveRows(QModelIndex(),0,mTopLevel.size()-1);
endRemoveRows();
mGroups.clear(); mGroups.clear();
mProfiles.clear(); mProfiles.clear();
mLocations.clear(); mLocations.clear();
mTopLevel.clear(); mTopLevel.clear();
endRemoveRows();
auto TL = mTopLevel ; // This allows to fill TL without touching mTopLevel outside of [begin/end]InsertRows().
// create a map of profiles and groups // create a map of profiles and groups
std::map<RsPgpId,uint32_t> pgp_indices; std::map<RsPgpId,uint32_t> pgp_indices;
@ -1155,7 +1155,6 @@ void RsFriendListModel::updateInternalData()
RsDbg() << "Creating top level list" << std::endl; RsDbg() << "Creating top level list" << std::endl;
#endif #endif
mTopLevel.clear();
std::set<RsPgpId> already_in_a_group; std::set<RsPgpId> already_in_a_group;
if(mDisplayGroups) // in this case, we list all groups at the top level followed by the profiles without parent group if(mDisplayGroups) // in this case, we list all groups at the top level followed by the profiles without parent group
@ -1170,7 +1169,7 @@ void RsFriendListModel::updateInternalData()
e.type = ENTRY_TYPE_GROUP; e.type = ENTRY_TYPE_GROUP;
e.group_index = i; e.group_index = i;
mTopLevel.push_back(e); TL.push_back(e);
for(uint32_t j=0;j<mGroups[i].child_profile_indices.size();++j) for(uint32_t j=0;j<mGroups[i].child_profile_indices.size();++j)
already_in_a_group.insert(mProfiles[mGroups[i].child_profile_indices[j]].profile_info.gpg_id); already_in_a_group.insert(mProfiles[mGroups[i].child_profile_indices[j]].profile_info.gpg_id);
@ -1189,12 +1188,15 @@ void RsFriendListModel::updateInternalData()
e.profile_index = i; e.profile_index = i;
e.group_index = UNDEFINED_GROUP_INDEX_VALUE; e.group_index = UNDEFINED_GROUP_INDEX_VALUE;
mTopLevel.push_back(e); TL.push_back(e);
} }
// finally, tell the model client that layout has changed. // finally, tell the model client that layout has changed.
beginInsertRows(QModelIndex(),0,mTopLevel.size()-1); beginInsertRows(QModelIndex(),0,TL.size()-1);
mTopLevel = TL;
endInsertRows(); endInsertRows();
postMods(); postMods();
@ -1234,7 +1236,7 @@ void RsFriendListModel::collapseItem(const QModelIndex& index)
mExpandedProfiles.erase(s); mExpandedProfiles.erase(s);
// apparently we cannot be subtle here. // apparently we cannot be subtle here.
emit dataChanged(createIndex(0,0,(void*)NULL), createIndex(mTopLevel.size()-1,COLUMN_THREAD_NB_COLUMNS-1,(void*)NULL)); emit dataChanged(createIndex(0,0,(void*)NULL), createIndex(mTopLevel.size()-1,columnCount()-1,(void*)NULL));
} }
void RsFriendListModel::expandItem(const QModelIndex& index) void RsFriendListModel::expandItem(const QModelIndex& index)
@ -1256,10 +1258,10 @@ void RsFriendListModel::expandItem(const QModelIndex& index)
if(hp) s += hp->profile_info.gpg_id.toStdString(); if(hp) s += hp->profile_info.gpg_id.toStdString();
if(!s.empty()) if(!s.empty())
mExpandedProfiles.insert(s); mExpandedProfiles.insert(s);
// apparently we cannot be subtle here. // apparently we cannot be subtle here.
emit dataChanged(createIndex(0,0,(void*)NULL), createIndex(mTopLevel.size()-1,COLUMN_THREAD_NB_COLUMNS-1,(void*)NULL)); emit dataChanged(createIndex(0,0,(void*)NULL), createIndex(mTopLevel.size()-1,columnCount()-1,(void*)NULL));
} }
bool RsFriendListModel::isProfileExpanded(const EntryIndex& e) const bool RsFriendListModel::isProfileExpanded(const EntryIndex& e) const

View File

@ -39,8 +39,16 @@ public:
explicit RsFriendListModel(QObject *parent = NULL); explicit RsFriendListModel(QObject *parent = NULL);
~RsFriendListModel(){} ~RsFriendListModel(){}
class RsNodeDetails: public RsPeerDetails {};// in the near future, there will be a specific class for Profile/Node details in replacement of RsPeerDetails class RsNodeDetails: public RsPeerDetails
class RsProfileDetails: public RsPeerDetails {}; {
public:
virtual ~RsNodeDetails() {}
};// in the near future, there will be a specific class for Profile/Node details in replacement of RsPeerDetails
class RsProfileDetails: public RsPeerDetails
{
public:
virtual ~RsProfileDetails() {}
};
struct HierarchicalGroupInformation struct HierarchicalGroupInformation
{ {
@ -55,6 +63,7 @@ public:
struct HierarchicalNodeInformation struct HierarchicalNodeInformation
{ {
HierarchicalNodeInformation() : last_update_ts(0) {} HierarchicalNodeInformation() : last_update_ts(0) {}
virtual ~HierarchicalNodeInformation() {}
rstime_t last_update_ts; rstime_t last_update_ts;
RsNodeDetails node_info; RsNodeDetails node_info;

View File

@ -18,6 +18,7 @@
* * * *
*******************************************************************************/ *******************************************************************************/
#include "gui/common/FilesDefs.h"
#include <QDialogButtonBox> #include <QDialogButtonBox>
#include <QMenu> #include <QMenu>
#include "FriendSelectionWidget.h" #include "FriendSelectionWidget.h"
@ -219,7 +220,7 @@ static void initSslItem(QTreeWidgetItem *item, const RsPeerDetails &detail, cons
item->setData(COLUMN_NAME, Qt::ForegroundRole, textColorOnline); item->setData(COLUMN_NAME, Qt::ForegroundRole, textColorOnline);
} }
item->setIcon(COLUMN_NAME, QIcon(StatusDefs::imageUser(state))); item->setIcon(COLUMN_NAME, FilesDefs::getIconFromQtResourcePath(StatusDefs::imageUser(state)));
item->setData(COLUMN_DATA, ROLE_ID, QString::fromStdString(detail.id.toStdString())); item->setData(COLUMN_DATA, ROLE_ID, QString::fromStdString(detail.id.toStdString()));
item->setData(COLUMN_NAME, ROLE_SORT_GROUP, 1); item->setData(COLUMN_NAME, ROLE_SORT_GROUP, 1);
@ -381,7 +382,7 @@ void FriendSelectionWidget::secured_fillList()
groupItem->setFlags(Qt::ItemIsUserCheckable | groupItem->flags()); groupItem->setFlags(Qt::ItemIsUserCheckable | groupItem->flags());
groupItem->setChildIndicatorPolicy(QTreeWidgetItem::DontShowIndicatorWhenChildless); groupItem->setChildIndicatorPolicy(QTreeWidgetItem::DontShowIndicatorWhenChildless);
groupItem->setTextAlignment(COLUMN_NAME, Qt::AlignLeft | Qt::AlignVCenter); groupItem->setTextAlignment(COLUMN_NAME, Qt::AlignLeft | Qt::AlignVCenter);
groupItem->setIcon(COLUMN_NAME, QIcon(IMAGE_GROUP16)); groupItem->setIcon(COLUMN_NAME, FilesDefs::getIconFromQtResourcePath(IMAGE_GROUP16));
groupItem->setData(COLUMN_DATA, ROLE_ID, QString::fromStdString(groupInfo->id.toStdString())); groupItem->setData(COLUMN_DATA, ROLE_ID, QString::fromStdString(groupInfo->id.toStdString()));
@ -454,7 +455,7 @@ void FriendSelectionWidget::secured_fillList()
} }
gpgItem->setFlags(Qt::ItemIsUserCheckable | gpgItem->flags()); gpgItem->setFlags(Qt::ItemIsUserCheckable | gpgItem->flags());
gpgItem->setIcon(COLUMN_NAME, QIcon(StatusDefs::imageUser(state))); gpgItem->setIcon(COLUMN_NAME, FilesDefs::getIconFromQtResourcePath(StatusDefs::imageUser(state)));
gpgItem->setData(COLUMN_DATA, ROLE_ID, QString::fromStdString(detail.gpg_id.toStdString())); gpgItem->setData(COLUMN_DATA, ROLE_ID, QString::fromStdString(detail.gpg_id.toStdString()));
gpgItem->setData(COLUMN_NAME, ROLE_SORT_GROUP, 1); gpgItem->setData(COLUMN_NAME, ROLE_SORT_GROUP, 1);
@ -773,7 +774,7 @@ void FriendSelectionWidget::peerStatusChanged(const QString& peerId, int status)
item->setData(COLUMN_NAME, Qt::ForegroundRole, QVariant()); item->setData(COLUMN_NAME, Qt::ForegroundRole, QVariant());
} }
item->setIcon(COLUMN_NAME, QIcon(StatusDefs::imageUser(gpgStatus))); item->setIcon(COLUMN_NAME, FilesDefs::getIconFromQtResourcePath(StatusDefs::imageUser(gpgStatus)));
item->setData(COLUMN_NAME, ROLE_SORT_STATE, gpgStatus); item->setData(COLUMN_NAME, ROLE_SORT_STATE, gpgStatus);
@ -790,7 +791,7 @@ void FriendSelectionWidget::peerStatusChanged(const QString& peerId, int status)
item->setData(COLUMN_NAME, Qt::ForegroundRole, QVariant()); item->setData(COLUMN_NAME, Qt::ForegroundRole, QVariant());
} }
item->setIcon(COLUMN_NAME, QIcon(StatusDefs::imageUser(status))); item->setIcon(COLUMN_NAME, FilesDefs::getIconFromQtResourcePath(StatusDefs::imageUser(status)));
item->setData(COLUMN_NAME, ROLE_SORT_STATE, status); item->setData(COLUMN_NAME, ROLE_SORT_STATE, status);

View File

@ -18,6 +18,7 @@
* * * *
*******************************************************************************/ *******************************************************************************/
#include "gui/common/FilesDefs.h"
#include <QHBoxLayout> #include <QHBoxLayout>
#include <QSizePolicy> #include <QSizePolicy>
#include "GroupFlagsWidget.h" #include "GroupFlagsWidget.h"
@ -54,12 +55,12 @@ GroupFlagsWidget::GroupFlagsWidget(QWidget *parent,FileStorageFlags flags)
setMaximumSize(128 * QFontMetricsF(font()).height()/14.0,32 * QFontMetricsF(font()).height()/14.0) ; setMaximumSize(128 * QFontMetricsF(font()).height()/14.0,32 * QFontMetricsF(font()).height()/14.0) ;
setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed); setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed);
_icons[2*INDEX_BROWSABLE+0] = new QIcon(FLAGS_BROWSABLE_OFF) ; _icons[2*INDEX_BROWSABLE+0] = FilesDefs::getIconFromQtResourcePath(FLAGS_BROWSABLE_OFF) ;
_icons[2*INDEX_BROWSABLE+1] = new QIcon(FLAGS_BROWSABLE_ON) ; _icons[2*INDEX_BROWSABLE+1] = FilesDefs::getIconFromQtResourcePath(FLAGS_BROWSABLE_ON) ;
_icons[2*INDEX_ANON_SEARCH+0] = new QIcon(FLAGS_ANONYMOUS_SEARCH_OFF) ; _icons[2*INDEX_ANON_SEARCH+0] = FilesDefs::getIconFromQtResourcePath(FLAGS_ANONYMOUS_SEARCH_OFF) ;
_icons[2*INDEX_ANON_SEARCH+1] = new QIcon(FLAGS_ANONYMOUS_SEARCH_ON) ; _icons[2*INDEX_ANON_SEARCH+1] = FilesDefs::getIconFromQtResourcePath(FLAGS_ANONYMOUS_SEARCH_ON) ;
_icons[2*INDEX_ANON_DL+0] = new QIcon(FLAGS_ANONYMOUS_DL_OFF) ; _icons[2*INDEX_ANON_DL+0] = FilesDefs::getIconFromQtResourcePath(FLAGS_ANONYMOUS_DL_OFF) ;
_icons[2*INDEX_ANON_DL+1] = new QIcon(FLAGS_ANONYMOUS_DL_ON) ; _icons[2*INDEX_ANON_DL+1] = FilesDefs::getIconFromQtResourcePath(FLAGS_ANONYMOUS_DL_ON) ;
setLayout(_layout) ; setLayout(_layout) ;
@ -136,7 +137,7 @@ void GroupFlagsWidget::update_button_state(bool b,int button_id)
tip_on = ""; tip_on = "";
tip_off = ""; tip_off = "";
} }
_buttons[button_id]->setIcon(*_icons[2*button_id+(int)b]) ; _buttons[button_id]->setIcon(_icons[2*button_id+(int)b]) ;
_buttons[button_id]->setToolTip(b?tip_on:tip_off) ; _buttons[button_id]->setToolTip(b?tip_on:tip_off) ;
} }
@ -183,10 +184,6 @@ void GroupFlagsWidget::update_BR_button(bool b) { update_button_state(b,INDEX_BR
GroupFlagsWidget::~GroupFlagsWidget() GroupFlagsWidget::~GroupFlagsWidget()
{ {
for(int i=0;i<3;++i) for(int i=0;i<3;++i)
{
delete _buttons[i] ; delete _buttons[i] ;
delete _icons[2*i+0] ;
delete _icons[2*i+1] ;
}
} }

View File

@ -55,7 +55,7 @@ class GroupFlagsWidget: public QWidget
QPushButton *_buttons[4] ; QPushButton *_buttons[4] ;
QLayout *_layout ; QLayout *_layout ;
QIcon *_icons[6] ; QIcon _icons[6] ;
FileStorageFlags _flags[4] ; FileStorageFlags _flags[4] ;
static QString _tooltips_on[4] ; static QString _tooltips_on[4] ;

View File

@ -21,6 +21,7 @@
#include "GroupTreeWidget.h" #include "GroupTreeWidget.h"
#include "ui_GroupTreeWidget.h" #include "ui_GroupTreeWidget.h"
#include "gui/common/FilesDefs.h"
#include "retroshare/rsgxsflags.h" #include "retroshare/rsgxsflags.h"
#include "PopularityDefs.h" #include "PopularityDefs.h"
@ -250,11 +251,11 @@ void GroupTreeWidget::initDisplayMenu(QToolButton *toolButton)
displayMenu = new QMenu(); displayMenu = new QMenu();
QActionGroup *actionGroupAsc = new QActionGroup(displayMenu); QActionGroup *actionGroupAsc = new QActionGroup(displayMenu);
actionSortDescending = displayMenu->addAction(QIcon(":/images/sort_decrease.png"), tr("Sort Descending Order"), this, SLOT(sort())); actionSortDescending = displayMenu->addAction(FilesDefs::getIconFromQtResourcePath(":/images/sort_decrease.png"), tr("Sort Descending Order"), this, SLOT(sort()));
actionSortDescending->setCheckable(true); actionSortDescending->setCheckable(true);
actionSortDescending->setActionGroup(actionGroupAsc); actionSortDescending->setActionGroup(actionGroupAsc);
actionSortAscending = displayMenu->addAction(QIcon(":/images/sort_incr.png"), tr("Sort Ascending Order"), this, SLOT(sort())); actionSortAscending = displayMenu->addAction(FilesDefs::getIconFromQtResourcePath(":/images/sort_incr.png"), tr("Sort Ascending Order"), this, SLOT(sort()));
actionSortAscending->setCheckable(true); actionSortAscending->setCheckable(true);
actionSortAscending->setActionGroup(actionGroupAsc); actionSortAscending->setActionGroup(actionGroupAsc);

View File

@ -18,6 +18,7 @@
* * * *
*******************************************************************************/ *******************************************************************************/
#include "gui/common/FilesDefs.h"
#include "LineEditClear.h" #include "LineEditClear.h"
#include <QToolButton> #include <QToolButton>
@ -124,9 +125,8 @@ void LineEditClear::showFilterIcon()
mFilterButton = new QToolButton(this); mFilterButton = new QToolButton(this);
mFilterButton->setFixedSize(16, 16); mFilterButton->setFixedSize(16, 16);
QPixmap filterPixmap(IMAGE_FILTER); mFilterButton->setIcon(FilesDefs::getIconFromQtResourcePath(IMAGE_FILTER));
mFilterButton->setIcon(QIcon(filterPixmap)); //mFilterButton->setIconSize(filterPixmap.size());
mFilterButton->setIconSize(filterPixmap.size());
mFilterButton->setCursor(Qt::ArrowCursor); mFilterButton->setCursor(Qt::ArrowCursor);
mFilterButton->setStyleSheet("QToolButton { border: none; padding: 0px; }" mFilterButton->setStyleSheet("QToolButton { border: none; padding: 0px; }"
"QToolButton[popupMode=\"2\"] { padding-right: 10px; }" "QToolButton[popupMode=\"2\"] { padding-right: 10px; }"
@ -224,7 +224,7 @@ void LineEditClear::activateAction(QAction *action)
QIcon icon = action->icon(); QIcon icon = action->icon();
if (icon.isNull()) { if (icon.isNull()) {
icon = QIcon(IMAGE_FILTER); icon = FilesDefs::getIconFromQtResourcePath(IMAGE_FILTER);
} }
mFilterButton->setIcon(icon); mFilterButton->setIcon(icon);

View File

@ -18,6 +18,7 @@
* * * *
*******************************************************************************/ *******************************************************************************/
#include "gui/common/FilesDefs.h"
#include <QApplication> #include <QApplication>
#include <QClipboard> #include <QClipboard>
#include <QMimeData> #include <QMimeData>
@ -250,8 +251,8 @@ void MimeTextEdit::contextMenuEvent(QContextMenuEvent *e)
QAction *spoilerAction = contextMenu->addAction(tr("Spoiler"), this, SLOT(spoiler())); QAction *spoilerAction = contextMenu->addAction(tr("Spoiler"), this, SLOT(spoiler()));
spoilerAction->setToolTip(tr("Select text to hide, then push this button")); spoilerAction->setToolTip(tr("Select text to hide, then push this button"));
contextMenu->addSeparator(); contextMenu->addSeparator();
QAction *pasteLinkAction = contextMenu->addAction(QIcon(":/images/pasterslink.png"), tr("Paste RetroShare Link"), this, SLOT(pasteLink())); QAction *pasteLinkAction = contextMenu->addAction(FilesDefs::getIconFromQtResourcePath(":/images/pasterslink.png"), tr("Paste RetroShare Link"), this, SLOT(pasteLink()));
contextMenu->addAction(QIcon(":/images/pasterslink.png"), tr("Paste my certificate link"), this, SLOT(pasteOwnCertificateLink())); contextMenu->addAction(FilesDefs::getIconFromQtResourcePath(":/images/pasterslink.png"), tr("Paste my certificate link"), this, SLOT(pasteOwnCertificateLink()));
if (RSLinkClipboard::empty()) { if (RSLinkClipboard::empty()) {
pasteLinkAction->setDisabled(true); pasteLinkAction->setDisabled(true);

View File

@ -32,6 +32,7 @@
#include "GroupDefs.h" #include "GroupDefs.h"
#include "gui/chat/ChatDialog.h" #include "gui/chat/ChatDialog.h"
#include "gui/common/AvatarDefs.h" #include "gui/common/AvatarDefs.h"
#include "gui/common/FilesDefs.h"
#include "gui/connect/ConfCertDialog.h" #include "gui/connect/ConfCertDialog.h"
#include "gui/connect/PGPKeyDialog.h" #include "gui/connect/PGPKeyDialog.h"
@ -453,6 +454,7 @@ void NewFriendList::processSettings(bool load)
if (load) // load settings if (load) // load settings
{ {
std::cerr <<"Re-loading settings..." << std::endl;
// states // states
setShowUnconnected(!Settings->value("hideUnconnected", !mProxyModel->showOfflineNodes()).toBool()); setShowUnconnected(!Settings->value("hideUnconnected", !mProxyModel->showOfflineNodes()).toBool());
setShowState(Settings->value("showState", mModel->getDisplayStatusString()).toBool()); setShowState(Settings->value("showState", mModel->getDisplayStatusString()).toBool());
@ -577,20 +579,20 @@ void NewFriendList::peerTreeWidgetCustomPopupMenu()
bool standard = group_info.flag & RS_GROUP_FLAG_STANDARD; bool standard = group_info.flag & RS_GROUP_FLAG_STANDARD;
#ifdef RS_DIRECT_CHAT #ifdef RS_DIRECT_CHAT
contextMenu.addAction(QIcon(IMAGE_MSG), tr("Send message to whole group"), this, SLOT(msgGroup())); contextMenu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_MSG), tr("Send message to whole group"), this, SLOT(msgGroup()));
contextMenu.addSeparator(); contextMenu.addSeparator();
#endif // RS_DIRECT_CHAT #endif // RS_DIRECT_CHAT
contextMenu.addAction(QIcon(IMAGE_EDIT), tr("Edit Group"), this, SLOT(editGroup())); contextMenu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_EDIT), tr("Edit Group"), this, SLOT(editGroup()));
QAction *action = contextMenu.addAction(QIcon(IMAGE_REMOVE), tr("Remove Group"), this, SLOT(removeGroup())); QAction *action = contextMenu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_REMOVE), tr("Remove Group"), this, SLOT(removeGroup()));
action->setDisabled(standard); action->setDisabled(standard);
} }
break; break;
case RsFriendListModel::ENTRY_TYPE_PROFILE: case RsFriendListModel::ENTRY_TYPE_PROFILE:
{ {
contextMenu.addAction(QIcon(IMAGE_FRIENDINFO), tr("Profile details"), this, SLOT(configureProfile())); contextMenu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_FRIENDINFO), tr("Profile details"), this, SLOT(configureProfile()));
contextMenu.addAction(QIcon(IMAGE_DENYFRIEND), tr("Deny connections"), this, SLOT(removeProfile())); contextMenu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_DENYFRIEND), tr("Deny connections"), this, SLOT(removeProfile()));
RsFriendListModel::RsProfileDetails details; RsFriendListModel::RsProfileDetails details;
mModel->getProfileData(index,details); mModel->getProfileData(index,details);
@ -636,8 +638,8 @@ void NewFriendList::peerTreeWidgetCustomPopupMenu()
} }
} }
QMenu *groupsMenu = contextMenu.addMenu(QIcon(IMAGE_GROUP16), tr("Groups")); QMenu *groupsMenu = contextMenu.addMenu(FilesDefs::getIconFromQtResourcePath(IMAGE_GROUP16), tr("Groups"));
groupsMenu->addAction(QIcon(IMAGE_EXPAND), tr("Create new group"), this, SLOT(createNewGroup())); groupsMenu->addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_EXPAND), tr("Create new group"), this, SLOT(createNewGroup()));
if (addToGroupMenu || moveToGroupMenu || foundGroup) { if (addToGroupMenu || moveToGroupMenu || foundGroup) {
if (addToGroupMenu) { if (addToGroupMenu) {
@ -674,26 +676,26 @@ void NewFriendList::peerTreeWidgetCustomPopupMenu()
case RsFriendListModel::ENTRY_TYPE_NODE: case RsFriendListModel::ENTRY_TYPE_NODE:
{ {
#ifdef RS_DIRECT_CHAT #ifdef RS_DIRECT_CHAT
contextMenu.addAction(QIcon(IMAGE_CHAT), tr("Chat"), this, SLOT(chatNode())); contextMenu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_CHAT), tr("Chat"), this, SLOT(chatNode()));
contextMenu.addAction(QIcon(IMAGE_MSG), tr("Send message to this node"), this, SLOT(msgNode())); contextMenu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_MSG), tr("Send message to this node"), this, SLOT(msgNode()));
contextMenu.addSeparator(); contextMenu.addSeparator();
#endif // RS_DIRECT_CHAT #endif // RS_DIRECT_CHAT
contextMenu.addAction(QIcon(IMAGE_FRIENDINFO), tr("Node details"), this, SLOT(configureNode())); contextMenu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_FRIENDINFO), tr("Node details"), this, SLOT(configureNode()));
if (type == RsFriendListModel::ENTRY_TYPE_PROFILE || type == RsFriendListModel::ENTRY_TYPE_NODE) if (type == RsFriendListModel::ENTRY_TYPE_PROFILE || type == RsFriendListModel::ENTRY_TYPE_NODE)
contextMenu.addAction(QIcon(IMAGE_EXPORTFRIEND), tr("Recommend this node to..."), this, SLOT(recommendNode())); contextMenu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_EXPORTFRIEND), tr("Recommend this node to..."), this, SLOT(recommendNode()));
RsFriendListModel::RsNodeDetails details; RsFriendListModel::RsNodeDetails details;
mModel->getNodeData(index,details); mModel->getNodeData(index,details);
if(!rsPeers->isHiddenNode(rsPeers->getOwnId()) || rsPeers->isHiddenNode( details.id )) if(!rsPeers->isHiddenNode(rsPeers->getOwnId()) || rsPeers->isHiddenNode( details.id ))
contextMenu.addAction(QIcon(IMAGE_CONNECT), tr("Attempt to connect"), this, SLOT(connectNode())); contextMenu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_CONNECT), tr("Attempt to connect"), this, SLOT(connectNode()));
contextMenu.addAction(QIcon(IMAGE_COPYLINK), tr("Copy certificate link"), this, SLOT(copyFullCertificate())); contextMenu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_COPYLINK), tr("Copy certificate link"), this, SLOT(copyFullCertificate()));
//this is a SSL key //this is a SSL key
contextMenu.addAction(QIcon(IMAGE_REMOVEFRIEND), tr("Remove Friend Node"), this, SLOT(removeNode())); contextMenu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_REMOVEFRIEND), tr("Remove Friend Node"), this, SLOT(removeNode()));
} }
} }
@ -702,12 +704,12 @@ void NewFriendList::peerTreeWidgetCustomPopupMenu()
contextMenu.addSeparator(); contextMenu.addSeparator();
QAction *action = contextMenu.addAction(QIcon(IMAGE_PASTELINK), tr("Paste certificate link"), this, SLOT(pastePerson())); QAction *action = contextMenu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_PASTELINK), tr("Paste certificate link"), this, SLOT(pastePerson()));
if (RSLinkClipboard::empty(RetroShareLink::TYPE_CERTIFICATE)) if (RSLinkClipboard::empty(RetroShareLink::TYPE_CERTIFICATE))
action->setDisabled(true); action->setDisabled(true);
contextMenu.addAction(QIcon(IMAGE_EXPAND), tr("Expand all"), ui->peerTreeWidget, SLOT(expandAll())); contextMenu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_EXPAND), tr("Expand all"), ui->peerTreeWidget, SLOT(expandAll()));
contextMenu.addAction(QIcon(IMAGE_COLLAPSE), tr("Collapse all"), ui->peerTreeWidget, SLOT(collapseAll())); contextMenu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_COLLAPSE), tr("Collapse all"), ui->peerTreeWidget, SLOT(collapseAll()));
contextMenu.addSeparator(); contextMenu.addSeparator();
@ -1087,16 +1089,46 @@ void NewFriendList::removeGroup()
checkInternalData(true); checkInternalData(true);
} }
void NewFriendList::checkInternalData(bool force) void NewFriendList::applyWhileKeepingTree(std::function<void()> predicate)
{ {
std::set<QString> expanded_indexes; std::set<QString> expanded_indexes;
std::set<QString> selected_indexes; std::set<QString> selected_indexes;
saveExpandedPathsAndSelection(expanded_indexes, selected_indexes); saveExpandedPathsAndSelection(expanded_indexes, selected_indexes);
mModel->checkInternalData(force); // This is a hack to avoid crashes on windows while calling endInsertRows(). I'm not sure wether these crashes are
// due to a Qt bug, or a misuse of the proxy model on my side. Anyway, this solves them for good.
// As a side effect we need to save/restore hidden columns because setSourceModel() resets this setting.
restoreExpandedPathsAndSelection(expanded_indexes, selected_indexes); // save hidden columns and sizes
std::vector<bool> col_visible(RsFriendListModel::COLUMN_THREAD_NB_COLUMNS);
std::vector<int> col_sizes(RsFriendListModel::COLUMN_THREAD_NB_COLUMNS);
for(int i=0;i<RsFriendListModel::COLUMN_THREAD_NB_COLUMNS;++i)
{
col_visible[i] = !ui->peerTreeWidget->isColumnHidden(i);
col_sizes[i] = ui->peerTreeWidget->columnWidth(i);
}
mProxyModel->setSourceModel(nullptr);
predicate();
mProxyModel->setSourceModel(mModel);
restoreExpandedPathsAndSelection(expanded_indexes, selected_indexes);
// restore hidden columns
for(uint32_t i=0;i<RsFriendListModel::COLUMN_THREAD_NB_COLUMNS;++i)
{
ui->peerTreeWidget->setColumnHidden(i,!col_visible[i]);
ui->peerTreeWidget->setColumnWidth(i,col_sizes[i]);
}
}
void NewFriendList::checkInternalData(bool force)
{
applyWhileKeepingTree([force,this]() { mModel->checkInternalData(force) ; });
} }
void NewFriendList::exportFriendlistClicked() void NewFriendList::exportFriendlistClicked()
@ -1484,6 +1516,7 @@ bool NewFriendList::isColumnVisible(int col) const
} }
void NewFriendList::setColumnVisible(int col,bool visible) void NewFriendList::setColumnVisible(int col,bool visible)
{ {
std::cerr << "Setting column " << col << " to be visible: " << visible << std::endl;
ui->peerTreeWidget->setColumnHidden(col, !visible); ui->peerTreeWidget->setColumnHidden(col, !visible);
} }
void NewFriendList::toggleColumnVisible() void NewFriendList::toggleColumnVisible()
@ -1501,12 +1534,12 @@ void NewFriendList::toggleColumnVisible()
void NewFriendList::setShowState(bool show) void NewFriendList::setShowState(bool show)
{ {
mModel->setDisplayStatusString(show); applyWhileKeepingTree([show,this]() { mModel->setDisplayStatusString(show) ; });
} }
void NewFriendList::setShowGroups(bool show) void NewFriendList::setShowGroups(bool show)
{ {
mModel->setDisplayGroups(show); applyWhileKeepingTree([show,this]() { mModel->setDisplayGroups(show) ; });
} }
/** /**

View File

@ -25,8 +25,9 @@
#include <QWidget> #include <QWidget>
#include <QTreeView> #include <QTreeView>
#include <retroshare-gui/RsAutoUpdatePage.h>
#include "FriendListModel.h" #include "FriendListModel.h"
#include "RsAutoUpdatePage.h"
#include "retroshare/rsstatus.h" #include "retroshare/rsstatus.h"
namespace Ui { namespace Ui {
@ -102,7 +103,9 @@ private:
RsFriendListModel *mModel; RsFriendListModel *mModel;
QAction *mActionSortByState; QAction *mActionSortByState;
void expandGroup(const RsNodeGroupId& gid); void applyWhileKeepingTree(std::function<void()> predicate);
void expandGroup(const RsNodeGroupId& gid);
void recursRestoreExpandedItems(const QModelIndex& index, const QString& parent_path, const std::set<QString>& exp, const std::set<QString> &sel); void recursRestoreExpandedItems(const QModelIndex& index, const QString& parent_path, const std::set<QString>& exp, const std::set<QString> &sel);
void recursSaveExpandedItems(const QModelIndex& index,const QString& parent_path,std::set<QString>& exp, std::set<QString>& sel); void recursSaveExpandedItems(const QModelIndex& index,const QString& parent_path,std::set<QString>& exp, std::set<QString>& sel);
void saveExpandedPathsAndSelection(std::set<QString>& expanded_indexes, std::set<QString>& selected_indexes); void saveExpandedPathsAndSelection(std::set<QString>& expanded_indexes, std::set<QString>& selected_indexes);

View File

@ -20,22 +20,23 @@
#include <QCoreApplication> #include <QCoreApplication>
#include "FilesDefs.h"
#include "PopularityDefs.h" #include "PopularityDefs.h"
QIcon PopularityDefs::icon(int popularity) QIcon PopularityDefs::icon(int popularity)
{ {
if (popularity <= 1) if (popularity <= 1)
return QIcon(":/images/hot_0.png"); return FilesDefs::getIconFromQtResourcePath(":/images/hot_0.png");
else if (popularity <= 2) /* 1-1 */ else if (popularity <= 2) /* 1-1 */
return QIcon(":/images/hot_1.png"); return FilesDefs::getIconFromQtResourcePath(":/images/hot_1.png");
else if (popularity <= 5) /* 2-2 */ else if (popularity <= 5) /* 2-2 */
return QIcon(":/images/hot_2.png"); return FilesDefs::getIconFromQtResourcePath(":/images/hot_2.png");
else if (popularity <= 10) /* 3-5 */ else if (popularity <= 10) /* 3-5 */
return QIcon(":/images/hot_3.png"); return FilesDefs::getIconFromQtResourcePath(":/images/hot_3.png");
else if (popularity <= 20) /* 6-10 */ else if (popularity <= 20) /* 6-10 */
return QIcon(":/images/hot_4.png"); return FilesDefs::getIconFromQtResourcePath(":/images/hot_4.png");
else /* >10 */ else /* >10 */
return QIcon(":/images/hot_5.png"); return FilesDefs::getIconFromQtResourcePath(":/images/hot_5.png");
} }
QString PopularityDefs::tooltip(int popularity) QString PopularityDefs::tooltip(int popularity)

View File

@ -18,6 +18,7 @@
* * * *
*******************************************************************************/ *******************************************************************************/
#include "gui/common/FilesDefs.h"
#include "RsCollectionDialog.h" #include "RsCollectionDialog.h"
#include "RsCollection.h" #include "RsCollection.h"
@ -254,7 +255,7 @@ void RsCollectionDialog::openDestinationDirectoryMenu()
contextMnu.addAction(QString::fromUtf8((*it).filename.c_str()), this, SLOT(setDestinationDirectory()))->setData(QString::fromUtf8( (*it).filename.c_str() ) ) ; contextMnu.addAction(QString::fromUtf8((*it).filename.c_str()), this, SLOT(setDestinationDirectory()))->setData(QString::fromUtf8( (*it).filename.c_str() ) ) ;
} }
contextMnu.addAction( QIcon(IMAGE_SEARCH),tr("Specify..."),this,SLOT(chooseDestinationDirectory())); contextMnu.addAction( FilesDefs::getIconFromQtResourcePath(IMAGE_SEARCH),tr("Specify..."),this,SLOT(chooseDestinationDirectory()));
contextMnu.exec(QCursor::pos()) ; contextMnu.exec(QCursor::pos()) ;
} }

View File

@ -18,6 +18,7 @@
* * * *
*******************************************************************************/ *******************************************************************************/
#include "gui/common/FilesDefs.h"
#include <QMenu> #include <QMenu>
#include "SubscribeToolButton.h" #include "SubscribeToolButton.h"
@ -64,14 +65,14 @@ void SubscribeToolButton::updateUi()
#else #else
setPopupMode(QToolButton::InstantPopup); setPopupMode(QToolButton::InstantPopup);
#endif #endif
//setIcon(QIcon(":/images/accepted16.png")); //setIcon(FilesDefs::getIconFromQtResourcePath(":/images/accepted16.png"));
setText(tr("Subscribed")); setText(tr("Subscribed"));
if(mMenu != NULL) // that's because setMenu does not give away memory ownership if(mMenu != NULL) // that's because setMenu does not give away memory ownership
delete mMenu ; delete mMenu ;
mMenu = new QMenu; mMenu = new QMenu;
mMenu->addAction(QIcon(":/images/cancel.png"), tr("Unsubscribe"), this, SLOT(unsubscribePrivate())); mMenu->addAction(FilesDefs::getIconFromQtResourcePath(":/images/cancel.png"), tr("Unsubscribe"), this, SLOT(unsubscribePrivate()));
if (!mSubscribedActions.empty()) { if (!mSubscribedActions.empty()) {
mMenu->addSeparator(); mMenu->addSeparator();
@ -86,7 +87,7 @@ void SubscribeToolButton::updateUi()
} else { } else {
setPopupMode(QToolButton::DelayedPopup); setPopupMode(QToolButton::DelayedPopup);
setMenu(NULL); setMenu(NULL);
//setIcon(QIcon(":/images/RSS_004_32.png")); //setIcon(FilesDefs::getIconFromQtResourcePath(":/images/RSS_004_32.png"));
setText(tr("Subscribe")); setText(tr("Subscribe"));
#ifndef USE_MENUBUTTONPOPUP #ifndef USE_MENUBUTTONPOPUP

View File

@ -32,6 +32,8 @@
#include <retroshare/rsdisc.h> #include <retroshare/rsdisc.h>
#include <retroshare/rsmsgs.h> #include <retroshare/rsmsgs.h>
#include <retroshare-gui/mainpage.h>
#include "gui/help/browser/helpbrowser.h" #include "gui/help/browser/helpbrowser.h"
#include "gui/common/PeerDefs.h" #include "gui/common/PeerDefs.h"
#include "gui/common/StatusDefs.h" #include "gui/common/StatusDefs.h"
@ -39,7 +41,6 @@
#include "gui/notifyqt.h" #include "gui/notifyqt.h"
#include "gui/common/AvatarDefs.h" #include "gui/common/AvatarDefs.h"
#include "gui/MainWindow.h" #include "gui/MainWindow.h"
#include "mainpage.h"
#include "util/DateTime.h" #include "util/DateTime.h"
#include "util/misc.h" #include "util/misc.h"

View File

@ -33,6 +33,7 @@
#include <QUrlQuery> #include <QUrlQuery>
#endif #endif
#include "gui/common/FilesDefs.h"
#include "gui/settings/rsharesettings.h" #include "gui/settings/rsharesettings.h"
#include "util/misc.h" #include "util/misc.h"
#include "ConnectFriendWizard.h" #include "ConnectFriendWizard.h"
@ -145,11 +146,11 @@ ConnectFriendWizard::ConnectFriendWizard(QWidget *parent) :
switch (rsFiles->filePermDirectDL()) switch (rsFiles->filePermDirectDL())
{ {
case RS_FILE_PERM_DIRECT_DL_YES: case RS_FILE_PERM_DIRECT_DL_YES:
ui->_direct_transfer_CB_2->setIcon(QIcon(":/icons/warning_yellow_128.png")); ui->_direct_transfer_CB_2->setIcon(FilesDefs::getIconFromQtResourcePath(":/icons/warning_yellow_128.png"));
ui->_direct_transfer_CB_2->setToolTip(ui->_direct_transfer_CB_2->toolTip().append(tr("\nWarning: In your File-Transfer option, you select allow direct download to Yes."))); ui->_direct_transfer_CB_2->setToolTip(ui->_direct_transfer_CB_2->toolTip().append(tr("\nWarning: In your File-Transfer option, you select allow direct download to Yes.")));
break ; break ;
case RS_FILE_PERM_DIRECT_DL_NO: case RS_FILE_PERM_DIRECT_DL_NO:
ui->_direct_transfer_CB_2->setIcon(QIcon(":/icons/warning_yellow_128.png")); ui->_direct_transfer_CB_2->setIcon(FilesDefs::getIconFromQtResourcePath(":/icons/warning_yellow_128.png"));
ui->_direct_transfer_CB_2->setToolTip(ui->_direct_transfer_CB_2->toolTip().append(tr("\nWarning: In your File-Transfer option, you select allow direct download to No."))); ui->_direct_transfer_CB_2->setToolTip(ui->_direct_transfer_CB_2->toolTip().append(tr("\nWarning: In your File-Transfer option, you select allow direct download to No.")));
break ; break ;

View File

@ -18,6 +18,7 @@
* * * *
*******************************************************************************/ *******************************************************************************/
#include "gui/common/FilesDefs.h"
#include "PGPKeyDialog.h" #include "PGPKeyDialog.h"
#include <QMessageBox> #include <QMessageBox>
@ -32,6 +33,8 @@
#include <retroshare/rsdisc.h> #include <retroshare/rsdisc.h>
#include <retroshare/rsmsgs.h> #include <retroshare/rsmsgs.h>
#include <retroshare-gui/mainpage.h>
#include "gui/help/browser/helpbrowser.h" #include "gui/help/browser/helpbrowser.h"
#include "gui/common/PeerDefs.h" #include "gui/common/PeerDefs.h"
#include "gui/common/StatusDefs.h" #include "gui/common/StatusDefs.h"
@ -39,7 +42,6 @@
#include "gui/notifyqt.h" #include "gui/notifyqt.h"
#include "gui/common/AvatarDefs.h" #include "gui/common/AvatarDefs.h"
#include "gui/MainWindow.h" #include "gui/MainWindow.h"
#include "mainpage.h"
#include "util/DateTime.h" #include "util/DateTime.h"
#include "util/misc.h" #include "util/misc.h"
@ -156,11 +158,11 @@ void PGPKeyDialog::load()
switch (rsFiles->filePermDirectDL()) switch (rsFiles->filePermDirectDL())
{ {
case RS_FILE_PERM_DIRECT_DL_YES: case RS_FILE_PERM_DIRECT_DL_YES:
ui._direct_transfer_CB->setIcon(QIcon(":/icons/warning_yellow_128.png")); ui._direct_transfer_CB->setIcon(FilesDefs::getIconFromQtResourcePath(":/icons/warning_yellow_128.png"));
ui._direct_transfer_CB->setToolTip(ui._direct_transfer_CB->toolTip().append(tr("\nWarning: In your File-Transfer option, you select allow direct download to Yes."))); ui._direct_transfer_CB->setToolTip(ui._direct_transfer_CB->toolTip().append(tr("\nWarning: In your File-Transfer option, you select allow direct download to Yes.")));
break ; break ;
case RS_FILE_PERM_DIRECT_DL_NO: case RS_FILE_PERM_DIRECT_DL_NO:
ui._direct_transfer_CB->setIcon(QIcon(":/icons/warning_yellow_128.png")); ui._direct_transfer_CB->setIcon(FilesDefs::getIconFromQtResourcePath(":/icons/warning_yellow_128.png"));
ui._direct_transfer_CB->setToolTip(ui._direct_transfer_CB->toolTip().append(tr("\nWarning: In your File-Transfer option, you select allow direct download to No."))); ui._direct_transfer_CB->setToolTip(ui._direct_transfer_CB->toolTip().append(tr("\nWarning: In your File-Transfer option, you select allow direct download to No.")));
break ; break ;

View File

@ -20,6 +20,7 @@
// This code is inspired from http://doc.qt.io/qt-5/qtwidgets-graphicsview-elasticnodes-node-cpp.html // This code is inspired from http://doc.qt.io/qt-5/qtwidgets-graphicsview-elasticnodes-node-cpp.html
#include "gui/common/FilesDefs.h"
#include <math.h> #include <math.h>
#include <QApplication> #include <QApplication>
@ -366,11 +367,11 @@ void Node::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
QMenu contextMnu ; QMenu contextMnu ;
if(_type == GraphWidget::ELASTIC_NODE_TYPE_FRIEND) if(_type == GraphWidget::ELASTIC_NODE_TYPE_FRIEND)
contextMnu.addAction(QIcon(IMAGE_DENIED), QObject::tr( "Deny friend" ), this, SLOT(denyFriend()) ); contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_DENIED), QObject::tr( "Deny friend" ), this, SLOT(denyFriend()) );
else if(_type != GraphWidget::ELASTIC_NODE_TYPE_OWN) else if(_type != GraphWidget::ELASTIC_NODE_TYPE_OWN)
contextMnu.addAction(QIcon(IMAGE_MAKEFRIEND), QObject::tr( "Make friend" ), this, SLOT(makeFriend()) ); contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_MAKEFRIEND), QObject::tr( "Make friend" ), this, SLOT(makeFriend()) );
contextMnu.addAction(QIcon(IMAGE_MAKEFRIEND), QObject::tr( "Peer details" ), this, SLOT(peerDetails()) ); contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_MAKEFRIEND), QObject::tr( "Peer details" ), this, SLOT(peerDetails()) );
contextMnu.exec(event->screenPos()); contextMnu.exec(event->screenPos());
} }

View File

@ -24,6 +24,7 @@
#include "FeedHolder.h" #include "FeedHolder.h"
#include "util/qtthreadsutils.h" #include "util/qtthreadsutils.h"
#include "gui/common/FilesDefs.h"
#include "gui/NewsFeed.h" #include "gui/NewsFeed.h"
#include "gui/RetroShareLink.h" #include "gui/RetroShareLink.h"
@ -187,13 +188,13 @@ void GxsChannelGroupItem::doExpand(bool open)
if (open) if (open)
{ {
ui->expandFrame->show(); ui->expandFrame->show();
ui->expandButton->setIcon(QIcon(QString(":/icons/png/up-arrow.png"))); ui->expandButton->setIcon(FilesDefs::getIconFromQtResourcePath(QString(":/icons/png/up-arrow.png")));
ui->expandButton->setToolTip(tr("Hide")); ui->expandButton->setToolTip(tr("Hide"));
} }
else else
{ {
ui->expandFrame->hide(); ui->expandFrame->hide();
ui->expandButton->setIcon(QIcon(QString(":/icons/png/down-arrow.png"))); ui->expandButton->setIcon(FilesDefs::getIconFromQtResourcePath(QString(":/icons/png/down-arrow.png")));
ui->expandButton->setToolTip(tr("Expand")); ui->expandButton->setToolTip(tr("Expand"));
} }

View File

@ -22,6 +22,7 @@
#include "ui_GxsForumGroupItem.h" #include "ui_GxsForumGroupItem.h"
#include "gui/NewsFeed.h" #include "gui/NewsFeed.h"
#include "gui/common/FilesDefs.h"
#include "FeedHolder.h" #include "FeedHolder.h"
#include "gui/RetroShareLink.h" #include "gui/RetroShareLink.h"
#include "util/qtthreadsutils.h" #include "util/qtthreadsutils.h"
@ -251,13 +252,13 @@ void GxsForumGroupItem::doExpand(bool open)
if (open) if (open)
{ {
ui->expandFrame->show(); ui->expandFrame->show();
ui->expandButton->setIcon(QIcon(QString(":/icons/png/up-arrow.png"))); ui->expandButton->setIcon(FilesDefs::getIconFromQtResourcePath(QString(":/icons/png/up-arrow.png")));
ui->expandButton->setToolTip(tr("Hide")); ui->expandButton->setToolTip(tr("Hide"));
} }
else else
{ {
ui->expandFrame->hide(); ui->expandFrame->hide();
ui->expandButton->setIcon(QIcon(QString(":/icons/png/down-arrow.png"))); ui->expandButton->setIcon(FilesDefs::getIconFromQtResourcePath(QString(":/icons/png/down-arrow.png")));
ui->expandButton->setToolTip(tr("Expand")); ui->expandButton->setToolTip(tr("Expand"));
} }

View File

@ -28,6 +28,7 @@
#include "FeedHolder.h" #include "FeedHolder.h"
#include "gui/RetroShareLink.h" #include "gui/RetroShareLink.h"
#include "gui/common/FilesDefs.h"
#include "gui/gxs/GxsIdDetails.h" #include "gui/gxs/GxsIdDetails.h"
#include "util/HandleRichText.h" #include "util/HandleRichText.h"
#include "util/qtthreadsutils.h" #include "util/qtthreadsutils.h"
@ -421,7 +422,7 @@ void GxsForumMsgItem::doExpand(bool open)
if (open) if (open)
{ {
ui->expandFrame->show(); ui->expandFrame->show();
ui->expandButton->setIcon(QIcon(QString(":/icons/png/up-arrow.png"))); ui->expandButton->setIcon(FilesDefs::getIconFromQtResourcePath(QString(":/icons/png/up-arrow.png")));
ui->expandButton->setToolTip(tr("Hide")); ui->expandButton->setToolTip(tr("Hide"));
if (!mParentMessage.mMeta.mMsgId.isNull()) { if (!mParentMessage.mMeta.mMsgId.isNull()) {
@ -434,7 +435,7 @@ void GxsForumMsgItem::doExpand(bool open)
{ {
ui->expandFrame->hide(); ui->expandFrame->hide();
ui->parentFrame->hide(); ui->parentFrame->hide();
ui->expandButton->setIcon(QIcon(QString(":/icons/png/down-arrow.png"))); ui->expandButton->setIcon(FilesDefs::getIconFromQtResourcePath(QString(":/icons/png/down-arrow.png")));
ui->expandButton->setToolTip(tr("Expand")); ui->expandButton->setToolTip(tr("Expand"));
} }

View File

@ -29,6 +29,7 @@
#include "util/HandleRichText.h" #include "util/HandleRichText.h"
#include "util/DateTime.h" #include "util/DateTime.h"
#include "gui/common/AvatarDefs.h" #include "gui/common/AvatarDefs.h"
#include "gui/common/FilesDefs.h"
#include "gui/notifyqt.h" #include "gui/notifyqt.h"
#include <retroshare/rsmsgs.h> #include <retroshare/rsmsgs.h>
@ -231,7 +232,7 @@ void MsgItem::doExpand(bool open)
if (open) if (open)
{ {
expandFrame->show(); expandFrame->show();
expandButton->setIcon(QIcon(QString(":/icons/png/up-arrow.png"))); expandButton->setIcon(FilesDefs::getIconFromQtResourcePath(QString(":/icons/png/up-arrow.png")));
expandButton->setToolTip(tr("Hide")); expandButton->setToolTip(tr("Hide"));
mCloseOnRead = false; mCloseOnRead = false;
@ -241,7 +242,7 @@ void MsgItem::doExpand(bool open)
else else
{ {
expandFrame->hide(); expandFrame->hide();
expandButton->setIcon(QIcon(QString(":/icons/png/down-arrow.png"))); expandButton->setIcon(FilesDefs::getIconFromQtResourcePath(QString(":/icons/png/down-arrow.png")));
expandButton->setToolTip(tr("Expand")); expandButton->setToolTip(tr("Expand"));
} }

View File

@ -18,6 +18,7 @@
* * * *
*******************************************************************************/ *******************************************************************************/
#include "gui/common/FilesDefs.h"
#include "NewsFeedUserNotify.h" #include "NewsFeedUserNotify.h"
#include "gui/NewsFeed.h" #include "gui/NewsFeed.h"
@ -37,7 +38,7 @@ void NewsFeedUserNotify::newsFeedChanged(int count)
QIcon NewsFeedUserNotify::getMainIcon(bool hasNew) QIcon NewsFeedUserNotify::getMainIcon(bool hasNew)
{ {
return hasNew ? QIcon(":/icons/png/newsfeed-notify.png") : QIcon(":/icons/png/newsfeed.png"); return hasNew ? FilesDefs::getIconFromQtResourcePath(":/icons/png/newsfeed-notify.png") : FilesDefs::getIconFromQtResourcePath(":/icons/png/newsfeed.png");
} }
unsigned int NewsFeedUserNotify::getNewCount() unsigned int NewsFeedUserNotify::getNewCount()

View File

@ -26,6 +26,7 @@
#include "retroshare-gui/RsAutoUpdatePage.h" #include "retroshare-gui/RsAutoUpdatePage.h"
#include "gui/msgs/MessageComposer.h" #include "gui/msgs/MessageComposer.h"
#include "gui/common/StatusDefs.h" #include "gui/common/StatusDefs.h"
#include "gui/common/FilesDefs.h"
#include "gui/common/AvatarDefs.h" #include "gui/common/AvatarDefs.h"
#include "util/DateTime.h" #include "util/DateTime.h"
@ -243,13 +244,13 @@ void PeerItem::doExpand(bool open)
if (open) if (open)
{ {
expandFrame->show(); expandFrame->show();
expandButton->setIcon(QIcon(QString(":/icons/png/up-arrow.png"))); expandButton->setIcon(FilesDefs::getIconFromQtResourcePath(QString(":/icons/png/up-arrow.png")));
expandButton->setToolTip(tr("Hide")); expandButton->setToolTip(tr("Hide"));
} }
else else
{ {
expandFrame->hide(); expandFrame->hide();
expandButton->setIcon(QIcon(QString(":/icons/png/down-arrow.png"))); expandButton->setIcon(FilesDefs::getIconFromQtResourcePath(QString(":/icons/png/down-arrow.png")));
expandButton->setToolTip(tr("Expand")); expandButton->setToolTip(tr("Expand"));
} }

View File

@ -25,6 +25,7 @@
#include "util/qtthreadsutils.h" #include "util/qtthreadsutils.h"
#include "gui/RetroShareLink.h" #include "gui/RetroShareLink.h"
#include "gui/gxs/GxsIdDetails.h" #include "gui/gxs/GxsIdDetails.h"
#include "gui/common/FilesDefs.h"
/**** /****
* #define DEBUG_ITEM 1 * #define DEBUG_ITEM 1
@ -204,13 +205,13 @@ void PostedGroupItem::doExpand(bool open)
if (open) if (open)
{ {
ui->expandFrame->show(); ui->expandFrame->show();
ui->expandButton->setIcon(QIcon(QString(":/icons/png/up-arrow.png"))); ui->expandButton->setIcon(FilesDefs::getIconFromQtResourcePath(QString(":/icons/png/up-arrow.png")));
ui->expandButton->setToolTip(tr("Hide")); ui->expandButton->setToolTip(tr("Hide"));
} }
else else
{ {
ui->expandFrame->hide(); ui->expandFrame->hide();
ui->expandButton->setIcon(QIcon(QString(":/icons/png/down-arrow.png"))); ui->expandButton->setIcon(FilesDefs::getIconFromQtResourcePath(QString(":/icons/png/down-arrow.png")));
ui->expandButton->setToolTip(tr("Expand")); ui->expandButton->setToolTip(tr("Expand"));
} }

View File

@ -29,6 +29,7 @@
#include "util/DateTime.h" #include "util/DateTime.h"
#include "gui/common/PeerDefs.h" #include "gui/common/PeerDefs.h"
#include "gui/common/RsBanListDefs.h" #include "gui/common/RsBanListDefs.h"
#include "gui/common/FilesDefs.h"
#include <retroshare/rspeers.h> #include <retroshare/rspeers.h>
#include <retroshare/rsbanlist.h> #include <retroshare/rsbanlist.h>
@ -199,13 +200,13 @@ void SecurityIpItem::doExpand(bool open)
if (open) if (open)
{ {
ui->expandFrame->show(); ui->expandFrame->show();
ui->expandButton->setIcon(QIcon(":/icons/png/up-arrow.png")); ui->expandButton->setIcon(FilesDefs::getIconFromQtResourcePath(":/icons/png/up-arrow.png"));
ui->expandButton->setToolTip(tr("Hide")); ui->expandButton->setToolTip(tr("Hide"));
} }
else else
{ {
ui->expandFrame->hide(); ui->expandFrame->hide();
ui->expandButton->setIcon(QIcon(":/icons/png/down-arrow.png")); ui->expandButton->setIcon(FilesDefs::getIconFromQtResourcePath(":/icons/png/down-arrow.png"));
ui->expandButton->setToolTip(tr("Expand")); ui->expandButton->setToolTip(tr("Expand"));
} }

View File

@ -29,6 +29,7 @@
#include "gui/common/StatusDefs.h" #include "gui/common/StatusDefs.h"
#include "gui/connect/ConfCertDialog.h" #include "gui/connect/ConfCertDialog.h"
#include "gui/connect/PGPKeyDialog.h" #include "gui/connect/PGPKeyDialog.h"
#include "gui/common/FilesDefs.h"
#include "gui/connect/ConnectFriendWizard.h" #include "gui/connect/ConnectFriendWizard.h"
#include "gui/common/AvatarDefs.h" #include "gui/common/AvatarDefs.h"
#include "util/DateTime.h" #include "util/DateTime.h"
@ -295,13 +296,13 @@ void SecurityItem::doExpand(bool open)
if (open) if (open)
{ {
expandFrame->show(); expandFrame->show();
expandButton->setIcon(QIcon(QString(":/icons/png/up-arrow.png"))); expandButton->setIcon(FilesDefs::getIconFromQtResourcePath(QString(":/icons/png/up-arrow.png")));
expandButton->setToolTip(tr("Hide")); expandButton->setToolTip(tr("Hide"));
} }
else else
{ {
expandFrame->hide(); expandFrame->hide();
expandButton->setIcon(QIcon(QString(":/icons/png/down-arrow.png"))); expandButton->setIcon(FilesDefs::getIconFromQtResourcePath(QString(":/icons/png/down-arrow.png")));
expandButton->setToolTip(tr("Expand")); expandButton->setToolTip(tr("Expand"));
} }

View File

@ -211,14 +211,14 @@ void GxsCommentTreeWidget::customPopUpMenu(const QPoint& /*point*/)
contextMnu.addSeparator(); contextMnu.addSeparator();
QMenu *rep_menu = contextMnu.addMenu(tr("Reputation")); QMenu *rep_menu = contextMnu.addMenu(tr("Reputation"));
action = rep_menu->addAction(QIcon(IMAGE_MESSAGE), tr("Show Reputation"), this, SLOT(showReputation())); action = rep_menu->addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_MESSAGE), tr("Show Reputation"), this, SLOT(showReputation()));
contextMnu.addSeparator(); contextMnu.addSeparator();
action = rep_menu->addAction(QIcon(IMAGE_MESSAGE), tr("Interesting User"), this, SLOT(markInteresting())); action = rep_menu->addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_MESSAGE), tr("Interesting User"), this, SLOT(markInteresting()));
contextMnu.addSeparator(); contextMnu.addSeparator();
action = rep_menu->addAction(QIcon(IMAGE_MESSAGE), tr("Mark Spammy"), this, SLOT(markSpammer())); action = rep_menu->addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_MESSAGE), tr("Mark Spammy"), this, SLOT(markSpammer()));
action = rep_menu->addAction(QIcon(IMAGE_MESSAGE), tr("Ban User"), this, SLOT(banUser())); action = rep_menu->addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_MESSAGE), tr("Ban User"), this, SLOT(banUser()));
*/ */
} }

View File

@ -112,6 +112,12 @@ p, li { white-space: pre-wrap; }
<property name="wordWrap"> <property name="wordWrap">
<bool>true</bool> <bool>true</bool>
</property> </property>
<property name="openExternalLinks">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget> </widget>
</item> </item>
<item row="2" column="0"> <item row="2" column="0">

View File

@ -151,16 +151,16 @@ void GxsGroupFrameDialog::initUi()
/* Initialize group tree */ /* Initialize group tree */
QToolButton *newGroupButton = new QToolButton(this); QToolButton *newGroupButton = new QToolButton(this);
newGroupButton->setIcon(QIcon(icon(ICON_NEW))); newGroupButton->setIcon(FilesDefs::getIconFromQtResourcePath(icon(ICON_NEW)));
newGroupButton->setToolTip(text(TEXT_NEW)); newGroupButton->setToolTip(text(TEXT_NEW));
connect(newGroupButton, SIGNAL(clicked()), this, SLOT(newGroup())); connect(newGroupButton, SIGNAL(clicked()), this, SLOT(newGroup()));
ui->groupTreeWidget->addToolButton(newGroupButton); ui->groupTreeWidget->addToolButton(newGroupButton);
/* Create group tree */ /* Create group tree */
mYourGroups = ui->groupTreeWidget->addCategoryItem(text(TEXT_YOUR_GROUP), QIcon(icon(ICON_YOUR_GROUP)), true); mYourGroups = ui->groupTreeWidget->addCategoryItem(text(TEXT_YOUR_GROUP), FilesDefs::getIconFromQtResourcePath(icon(ICON_YOUR_GROUP)), true);
mSubscribedGroups = ui->groupTreeWidget->addCategoryItem(text(TEXT_SUBSCRIBED_GROUP), QIcon(icon(ICON_SUBSCRIBED_GROUP)), true); mSubscribedGroups = ui->groupTreeWidget->addCategoryItem(text(TEXT_SUBSCRIBED_GROUP), FilesDefs::getIconFromQtResourcePath(icon(ICON_SUBSCRIBED_GROUP)), true);
mPopularGroups = ui->groupTreeWidget->addCategoryItem(text(TEXT_POPULAR_GROUP), QIcon(icon(ICON_POPULAR_GROUP)), false); mPopularGroups = ui->groupTreeWidget->addCategoryItem(text(TEXT_POPULAR_GROUP), FilesDefs::getIconFromQtResourcePath(icon(ICON_POPULAR_GROUP)), false);
mOtherGroups = ui->groupTreeWidget->addCategoryItem(text(TEXT_OTHER_GROUP), QIcon(icon(ICON_OTHER_GROUP)), false); mOtherGroups = ui->groupTreeWidget->addCategoryItem(text(TEXT_OTHER_GROUP), FilesDefs::getIconFromQtResourcePath(icon(ICON_OTHER_GROUP)), false);
if (text(TEXT_TODO).isEmpty()) { if (text(TEXT_TODO).isEmpty()) {
ui->todoPushButton->hide(); ui->todoPushButton->hide();
@ -410,8 +410,8 @@ void GxsGroupFrameDialog::groupTreeCustomPopupMenu(QPoint point)
{ {
QMenu contextMnu(this); QMenu contextMnu(this);
contextMnu.addAction(QIcon(IMAGE_DELETE), tr("Remove this search"), this, SLOT(removeCurrentSearch()))->setData(search_request_id); contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_DELETE), tr("Remove this search"), this, SLOT(removeCurrentSearch()))->setData(search_request_id);
contextMnu.addAction(QIcon(IMAGE_DELETE), tr("Remove all searches"), this, SLOT(removeAllSearches())); contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_DELETE), tr("Remove all searches"), this, SLOT(removeAllSearches()));
contextMnu.exec(QCursor::pos()); contextMnu.exec(QCursor::pos());
return ; return ;
} }
@ -424,7 +424,7 @@ void GxsGroupFrameDialog::groupTreeCustomPopupMenu(QPoint point)
{ {
QMenu contextMnu(this); QMenu contextMnu(this);
contextMnu.addAction(QIcon(IMAGE_RETRIEVE), tr("Request data"), this, SLOT(distantRequestGroupData()))->setData(group_id_s); contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_RETRIEVE), tr("Request data"), this, SLOT(distantRequestGroupData()))->setData(group_id_s);
contextMnu.exec(QCursor::pos()); contextMnu.exec(QCursor::pos());
return ; return ;
} }
@ -442,27 +442,27 @@ void GxsGroupFrameDialog::groupTreeCustomPopupMenu(QPoint point)
QMenu contextMnu(this); QMenu contextMnu(this);
QAction *action; QAction *action;
action = contextMnu.addAction(QIcon(IMAGE_TABNEW), tr("Open in new tab"), this, SLOT(openInNewTab())); action = contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_TABNEW), tr("Open in new tab"), this, SLOT(openInNewTab()));
if(mGroupId.isNull()) // dont enable the open in tab if a tab is already here if(mGroupId.isNull()) // dont enable the open in tab if a tab is already here
action->setEnabled(false); action->setEnabled(false);
if (isSubscribed) { if (isSubscribed) {
action = contextMnu.addAction(QIcon(IMAGE_UNSUBSCRIBE), tr("Unsubscribe"), this, SLOT(unsubscribeGroup())); action = contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_UNSUBSCRIBE), tr("Unsubscribe"), this, SLOT(unsubscribeGroup()));
action->setEnabled (!mGroupId.isNull() && IS_GROUP_SUBSCRIBED(subscribeFlags)); action->setEnabled (!mGroupId.isNull() && IS_GROUP_SUBSCRIBED(subscribeFlags));
} else { } else {
action = contextMnu.addAction(QIcon(IMAGE_SUBSCRIBE), tr("Subscribe"), this, SLOT(subscribeGroup())); action = contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_SUBSCRIBE), tr("Subscribe"), this, SLOT(subscribeGroup()));
action->setDisabled (mGroupId.isNull() || IS_GROUP_SUBSCRIBED(subscribeFlags)); action->setDisabled (mGroupId.isNull() || IS_GROUP_SUBSCRIBED(subscribeFlags));
} }
contextMnu.addSeparator(); contextMnu.addSeparator();
contextMnu.addAction(QIcon(icon(ICON_NEW)), text(TEXT_NEW), this, SLOT(newGroup())); contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(icon(ICON_NEW)), text(TEXT_NEW), this, SLOT(newGroup()));
action = contextMnu.addAction(QIcon(IMAGE_INFO), tr("Show Details"), this, SLOT(showGroupDetails())); action = contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_INFO), tr("Show Details"), this, SLOT(showGroupDetails()));
action->setEnabled (!mGroupId.isNull()); action->setEnabled (!mGroupId.isNull());
action = contextMnu.addAction(QIcon(IMAGE_EDIT), tr("Edit Details"), this, SLOT(editGroupDetails())); action = contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_EDIT), tr("Edit Details"), this, SLOT(editGroupDetails()));
action->setEnabled (!mGroupId.isNull() && isAdmin); action->setEnabled (!mGroupId.isNull() && isAdmin);
uint32_t current_store_time = checkDelay(mInterface->getStoragePeriod(mGroupId))/86400 ; uint32_t current_store_time = checkDelay(mInterface->getStoragePeriod(mGroupId))/86400 ;
@ -472,39 +472,39 @@ void GxsGroupFrameDialog::groupTreeCustomPopupMenu(QPoint point)
QAction *actnn = NULL; QAction *actnn = NULL;
QMenu *ctxMenu2 = contextMnu.addMenu(tr("Synchronise posts of last...")) ; QMenu *ctxMenu2 = contextMnu.addMenu(tr("Synchronise posts of last...")) ;
actnn = ctxMenu2->addAction(tr(" 5 days" ),this,SLOT(setSyncPostsDelay())) ; actnn->setData(QVariant( 5)) ; if(current_sync_time == 5) { actnn->setEnabled(false);actnn->setIcon(QIcon(":/images/start.png"));} actnn = ctxMenu2->addAction(tr(" 5 days" ),this,SLOT(setSyncPostsDelay())) ; actnn->setData(QVariant( 5)) ; if(current_sync_time == 5) { actnn->setEnabled(false);actnn->setIcon(FilesDefs::getIconFromQtResourcePath(":/images/start.png"));}
actnn = ctxMenu2->addAction(tr(" 2 weeks" ),this,SLOT(setSyncPostsDelay())) ; actnn->setData(QVariant( 15)) ; if(current_sync_time == 15) { actnn->setEnabled(false);actnn->setIcon(QIcon(":/images/start.png"));} actnn = ctxMenu2->addAction(tr(" 2 weeks" ),this,SLOT(setSyncPostsDelay())) ; actnn->setData(QVariant( 15)) ; if(current_sync_time == 15) { actnn->setEnabled(false);actnn->setIcon(FilesDefs::getIconFromQtResourcePath(":/images/start.png"));}
actnn = ctxMenu2->addAction(tr(" 1 month" ),this,SLOT(setSyncPostsDelay())) ; actnn->setData(QVariant( 30)) ; if(current_sync_time == 30) { actnn->setEnabled(false);actnn->setIcon(QIcon(":/images/start.png"));} actnn = ctxMenu2->addAction(tr(" 1 month" ),this,SLOT(setSyncPostsDelay())) ; actnn->setData(QVariant( 30)) ; if(current_sync_time == 30) { actnn->setEnabled(false);actnn->setIcon(FilesDefs::getIconFromQtResourcePath(":/images/start.png"));}
actnn = ctxMenu2->addAction(tr(" 3 months" ),this,SLOT(setSyncPostsDelay())) ; actnn->setData(QVariant( 90)) ; if(current_sync_time == 90) { actnn->setEnabled(false);actnn->setIcon(QIcon(":/images/start.png"));} actnn = ctxMenu2->addAction(tr(" 3 months" ),this,SLOT(setSyncPostsDelay())) ; actnn->setData(QVariant( 90)) ; if(current_sync_time == 90) { actnn->setEnabled(false);actnn->setIcon(FilesDefs::getIconFromQtResourcePath(":/images/start.png"));}
actnn = ctxMenu2->addAction(tr(" 6 months" ),this,SLOT(setSyncPostsDelay())) ; actnn->setData(QVariant(180)) ; if(current_sync_time ==180) { actnn->setEnabled(false);actnn->setIcon(QIcon(":/images/start.png"));} actnn = ctxMenu2->addAction(tr(" 6 months" ),this,SLOT(setSyncPostsDelay())) ; actnn->setData(QVariant(180)) ; if(current_sync_time ==180) { actnn->setEnabled(false);actnn->setIcon(FilesDefs::getIconFromQtResourcePath(":/images/start.png"));}
actnn = ctxMenu2->addAction(tr(" 1 year " ),this,SLOT(setSyncPostsDelay())) ; actnn->setData(QVariant(365)) ; if(current_sync_time ==365) { actnn->setEnabled(false);actnn->setIcon(QIcon(":/images/start.png"));} actnn = ctxMenu2->addAction(tr(" 1 year " ),this,SLOT(setSyncPostsDelay())) ; actnn->setData(QVariant(365)) ; if(current_sync_time ==365) { actnn->setEnabled(false);actnn->setIcon(FilesDefs::getIconFromQtResourcePath(":/images/start.png"));}
actnn = ctxMenu2->addAction(tr(" Indefinitly"),this,SLOT(setSyncPostsDelay())) ; actnn->setData(QVariant( 0)) ; if(current_sync_time == 0) { actnn->setEnabled(false);actnn->setIcon(QIcon(":/images/start.png"));} actnn = ctxMenu2->addAction(tr(" Indefinitly"),this,SLOT(setSyncPostsDelay())) ; actnn->setData(QVariant( 0)) ; if(current_sync_time == 0) { actnn->setEnabled(false);actnn->setIcon(FilesDefs::getIconFromQtResourcePath(":/images/start.png"));}
ctxMenu2 = contextMnu.addMenu(tr("Store posts for at most...")) ; ctxMenu2 = contextMnu.addMenu(tr("Store posts for at most...")) ;
actnn = ctxMenu2->addAction(tr(" 5 days" ),this,SLOT(setStorePostsDelay())) ; actnn->setData(QVariant( 5)) ; if(current_store_time == 5) { actnn->setEnabled(false);actnn->setIcon(QIcon(":/images/start.png"));} actnn = ctxMenu2->addAction(tr(" 5 days" ),this,SLOT(setStorePostsDelay())) ; actnn->setData(QVariant( 5)) ; if(current_store_time == 5) { actnn->setEnabled(false);actnn->setIcon(FilesDefs::getIconFromQtResourcePath(":/images/start.png"));}
actnn = ctxMenu2->addAction(tr(" 2 weeks" ),this,SLOT(setStorePostsDelay())) ; actnn->setData(QVariant( 15)) ; if(current_store_time == 15) { actnn->setEnabled(false);actnn->setIcon(QIcon(":/images/start.png"));} actnn = ctxMenu2->addAction(tr(" 2 weeks" ),this,SLOT(setStorePostsDelay())) ; actnn->setData(QVariant( 15)) ; if(current_store_time == 15) { actnn->setEnabled(false);actnn->setIcon(FilesDefs::getIconFromQtResourcePath(":/images/start.png"));}
actnn = ctxMenu2->addAction(tr(" 1 month" ),this,SLOT(setStorePostsDelay())) ; actnn->setData(QVariant( 30)) ; if(current_store_time == 30) { actnn->setEnabled(false);actnn->setIcon(QIcon(":/images/start.png"));} actnn = ctxMenu2->addAction(tr(" 1 month" ),this,SLOT(setStorePostsDelay())) ; actnn->setData(QVariant( 30)) ; if(current_store_time == 30) { actnn->setEnabled(false);actnn->setIcon(FilesDefs::getIconFromQtResourcePath(":/images/start.png"));}
actnn = ctxMenu2->addAction(tr(" 3 months" ),this,SLOT(setStorePostsDelay())) ; actnn->setData(QVariant( 90)) ; if(current_store_time == 90) { actnn->setEnabled(false);actnn->setIcon(QIcon(":/images/start.png"));} actnn = ctxMenu2->addAction(tr(" 3 months" ),this,SLOT(setStorePostsDelay())) ; actnn->setData(QVariant( 90)) ; if(current_store_time == 90) { actnn->setEnabled(false);actnn->setIcon(FilesDefs::getIconFromQtResourcePath(":/images/start.png"));}
actnn = ctxMenu2->addAction(tr(" 6 months" ),this,SLOT(setStorePostsDelay())) ; actnn->setData(QVariant(180)) ; if(current_store_time ==180) { actnn->setEnabled(false);actnn->setIcon(QIcon(":/images/start.png"));} actnn = ctxMenu2->addAction(tr(" 6 months" ),this,SLOT(setStorePostsDelay())) ; actnn->setData(QVariant(180)) ; if(current_store_time ==180) { actnn->setEnabled(false);actnn->setIcon(FilesDefs::getIconFromQtResourcePath(":/images/start.png"));}
actnn = ctxMenu2->addAction(tr(" 1 year " ),this,SLOT(setStorePostsDelay())) ; actnn->setData(QVariant(365)) ; if(current_store_time ==365) { actnn->setEnabled(false);actnn->setIcon(QIcon(":/images/start.png"));} actnn = ctxMenu2->addAction(tr(" 1 year " ),this,SLOT(setStorePostsDelay())) ; actnn->setData(QVariant(365)) ; if(current_store_time ==365) { actnn->setEnabled(false);actnn->setIcon(FilesDefs::getIconFromQtResourcePath(":/images/start.png"));}
actnn = ctxMenu2->addAction(tr(" Indefinitly"),this,SLOT(setStorePostsDelay())) ; actnn->setData(QVariant( 0)) ; if(current_store_time == 0) { actnn->setEnabled(false);actnn->setIcon(QIcon(":/images/start.png"));} actnn = ctxMenu2->addAction(tr(" Indefinitly"),this,SLOT(setStorePostsDelay())) ; actnn->setData(QVariant( 0)) ; if(current_store_time == 0) { actnn->setEnabled(false);actnn->setIcon(FilesDefs::getIconFromQtResourcePath(":/images/start.png"));}
if (shareKeyType()) { if (shareKeyType()) {
action = contextMnu.addAction(QIcon(IMAGE_SHARE), tr("Share publish permissions..."), this, SLOT(sharePublishKey())); action = contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_SHARE), tr("Share publish permissions..."), this, SLOT(sharePublishKey()));
action->setEnabled(!mGroupId.isNull() && isPublisher); action->setEnabled(!mGroupId.isNull() && isPublisher);
} }
if (getLinkType() != RetroShareLink::TYPE_UNKNOWN) { if (getLinkType() != RetroShareLink::TYPE_UNKNOWN) {
action = contextMnu.addAction(QIcon(IMAGE_COPYLINK), tr("Copy RetroShare Link"), this, SLOT(copyGroupLink())); action = contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_COPYLINK), tr("Copy RetroShare Link"), this, SLOT(copyGroupLink()));
action->setEnabled(!mGroupId.isNull()); action->setEnabled(!mGroupId.isNull());
} }
contextMnu.addSeparator(); contextMnu.addSeparator();
action = contextMnu.addAction(QIcon(":/images/message-mail-read.png"), tr("Mark all as read"), this, SLOT(markMsgAsRead())); action = contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(":/images/message-mail-read.png"), tr("Mark all as read"), this, SLOT(markMsgAsRead()));
action->setEnabled (!mGroupId.isNull() && isSubscribed); action->setEnabled (!mGroupId.isNull() && isSubscribed);
action = contextMnu.addAction(QIcon(":/images/message-mail.png"), tr("Mark all as unread"), this, SLOT(markMsgAsUnread())); action = contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(":/images/message-mail.png"), tr("Mark all as unread"), this, SLOT(markMsgAsUnread()));
action->setEnabled (!mGroupId.isNull() && isSubscribed); action->setEnabled (!mGroupId.isNull() && isSubscribed);
/* Add special actions */ /* Add special actions */
@ -739,7 +739,7 @@ void GxsGroupFrameDialog::loadComment(const RsGxsGroupId &grpId, const QVector<R
commentDialog->commentLoad(grpId, msgv,most_recent_msgId); commentDialog->commentLoad(grpId, msgv,most_recent_msgId);
int index = ui->messageTabWidget->addTab(commentDialog, comments); int index = ui->messageTabWidget->addTab(commentDialog, comments);
ui->messageTabWidget->setTabIcon(index, QIcon(IMAGE_COMMENT)); ui->messageTabWidget->setTabIcon(index, FilesDefs::getIconFromQtResourcePath(IMAGE_COMMENT));
} }
ui->messageTabWidget->setCurrentWidget(commentDialog); ui->messageTabWidget->setCurrentWidget(commentDialog);
@ -956,12 +956,12 @@ void GxsGroupFrameDialog::groupInfoToGroupItemInfo(const RsGxsGenericGroupData *
#if TOGXS #if TOGXS
if (groupInfo.mGroupFlags & RS_DISTRIB_AUTHEN_REQ) { if (groupInfo.mGroupFlags & RS_DISTRIB_AUTHEN_REQ) {
groupItemInfo.name += " (" + tr("AUTHD") + ")"; groupItemInfo.name += " (" + tr("AUTHD") + ")";
groupItemInfo.icon = QIcon(IMAGE_GROUPAUTHD); groupItemInfo.icon = FilesDefs::getIconFromQtResourcePath(IMAGE_GROUPAUTHD);
} }
else else
#endif #endif
{ {
groupItemInfo.icon = QIcon(icon(ICON_DEFAULT)); groupItemInfo.icon = FilesDefs::getIconFromQtResourcePath(icon(ICON_DEFAULT));
} }
} }
@ -1209,7 +1209,7 @@ void GxsGroupFrameDialog::searchNetwork(const QString& search_string)
if(request_id == 0) if(request_id == 0)
return ; return ;
mSearchGroupsItems[request_id] = ui->groupTreeWidget->addSearchItem(tr("Search for")+ " \"" + search_string + "\"",(uint32_t)request_id,QIcon(icon(ICON_SEARCH))); mSearchGroupsItems[request_id] = ui->groupTreeWidget->addSearchItem(tr("Search for")+ " \"" + search_string + "\"",(uint32_t)request_id,FilesDefs::getIconFromQtResourcePath(icon(ICON_SEARCH)));
} }
void GxsGroupFrameDialog::distantRequestGroupData() void GxsGroupFrameDialog::distantRequestGroupData()

View File

@ -21,8 +21,9 @@
#ifndef _GXSGROUPFRAMEDIALOG_H #ifndef _GXSGROUPFRAMEDIALOG_H
#define _GXSGROUPFRAMEDIALOG_H #define _GXSGROUPFRAMEDIALOG_H
#include <retroshare-gui/RsAutoUpdatePage.h>
#include "gui/gxs/RsGxsUpdateBroadcastPage.h" #include "gui/gxs/RsGxsUpdateBroadcastPage.h"
#include "RsAutoUpdatePage.h"
#include "gui/RetroShareLink.h" #include "gui/RetroShareLink.h"
#include "gui/settings/rsharesettings.h" #include "gui/settings/rsharesettings.h"
#include "util/RsUserdata.h" #include "util/RsUserdata.h"

View File

@ -22,6 +22,7 @@
#include "GxsIdDetails.h" #include "GxsIdDetails.h"
#include "RsGxsUpdateBroadcastBase.h" #include "RsGxsUpdateBroadcastBase.h"
#include "gui/Identity/IdEditDialog.h" #include "gui/Identity/IdEditDialog.h"
#include "gui/common/FilesDefs.h"
#include "util/misc.h" #include "util/misc.h"
#include <retroshare/rspeers.h> #include <retroshare/rspeers.h>
@ -162,7 +163,7 @@ static void loadPrivateIdsCallback(GxsIdDetailsType type, const RsIdentityDetail
break; break;
case GXS_ID_DETAILS_TYPE_BANNED: case GXS_ID_DETAILS_TYPE_BANNED:
icons.push_back(QIcon(BANNED_ICON)) ; icons.push_back(FilesDefs::getIconFromQtResourcePath(BANNED_ICON)) ;
break; break;
} }
@ -285,7 +286,7 @@ void GxsIdChooser::loadPrivateIds()
QString str = tr("Create new Identity"); QString str = tr("Create new Identity");
QString id = ""; QString id = "";
addItem(QIcon(":/icons/png/add-identity.png"), str, id); addItem(FilesDefs::getIconFromQtResourcePath(":/icons/png/add-identity.png"), str, id);
setItemData(count() - 1, QString("%1_%2").arg(TYPE_CREATE_ID).arg(str), ROLE_SORT); setItemData(count() - 1, QString("%1_%2").arg(TYPE_CREATE_ID).arg(str), ROLE_SORT);
setItemData(count() - 1, TYPE_CREATE_ID, ROLE_TYPE); setItemData(count() - 1, TYPE_CREATE_ID, ROLE_TYPE);

View File

@ -21,6 +21,7 @@
#include "GxsIdDetails.h" #include "GxsIdDetails.h"
#include "gui/common/AvatarDialog.h" #include "gui/common/AvatarDialog.h"
#include "gui/common/FilesDefs.h"
#include "retroshare-gui/RsAutoUpdatePage.h" #include "retroshare-gui/RsAutoUpdatePage.h"
#include <retroshare/rspeers.h> #include <retroshare/rspeers.h>
@ -375,10 +376,10 @@ static bool findTagIcon(int tag_class, int /*tag_type*/, QIcon &icon)
{ {
default: default:
case 0: case 0:
icon = QIcon(IMAGE_DEV_AMBASSADOR); icon = FilesDefs::getIconFromQtResourcePath(IMAGE_DEV_AMBASSADOR);
break; break;
case 1: case 1:
icon = QIcon(IMAGE_DEV_CONTRIBUTOR); icon = FilesDefs::getIconFromQtResourcePath(IMAGE_DEV_CONTRIBUTOR);
break; break;
} }
return true; return true;
@ -974,7 +975,7 @@ QString GxsIdDetails::getNameForType(GxsIdDetailsType type, const RsIdentityDeta
QIcon GxsIdDetails::getLoadingIcon(const RsGxsId &/*id*/) QIcon GxsIdDetails::getLoadingIcon(const RsGxsId &/*id*/)
{ {
return QIcon(IMAGE_LOADING); return FilesDefs::getIconFromQtResourcePath(IMAGE_LOADING);
} }
bool GxsIdDetails::MakeIdDesc(const RsGxsId &id, bool doIcons, QString &str, QList<QIcon> &icons, QString& comment,uint32_t icon_types) bool GxsIdDetails::MakeIdDesc(const RsGxsId &id, bool doIcons, QString &str, QList<QIcon> &icons, QString& comment,uint32_t icon_types)
@ -1005,9 +1006,9 @@ bool GxsIdDetails::MakeIdDesc(const RsGxsId &id, bool doIcons, QString &str, QLi
// Cyril: I disabled these three which I believe to have been put for testing purposes. // Cyril: I disabled these three which I believe to have been put for testing purposes.
// //
// icons.push_back(QIcon(IMAGE_ANON)); // icons.push_back(FilesDefs::getIconFromQtResourcePath(IMAGE_ANON));
// icons.push_back(QIcon(IMAGE_ANON)); // icons.push_back(FilesDefs::getIconFromQtResourcePath(IMAGE_ANON));
// icons.push_back(QIcon(IMAGE_ANON)); // icons.push_back(FilesDefs::getIconFromQtResourcePath(IMAGE_ANON));
// std::cerr << "GxsIdTreeWidget::MakeIdDesc() ID Ok. Comment: " << comment.toStdString() ; // std::cerr << "GxsIdTreeWidget::MakeIdDesc() ID Ok. Comment: " << comment.toStdString() ;
// std::cerr << std::endl; // std::cerr << std::endl;
@ -1083,20 +1084,20 @@ QIcon GxsIdDetails::getReputationIcon(
RsReputationLevel icon_index, uint32_t min_reputation ) RsReputationLevel icon_index, uint32_t min_reputation )
{ {
if( static_cast<uint32_t>(icon_index) >= min_reputation ) if( static_cast<uint32_t>(icon_index) >= min_reputation )
return QIcon(REPUTATION_VOID); return FilesDefs::getIconFromQtResourcePath(REPUTATION_VOID);
switch(icon_index) switch(icon_index)
{ {
case RsReputationLevel::LOCALLY_NEGATIVE: case RsReputationLevel::LOCALLY_NEGATIVE:
return QIcon(REPUTATION_LOCALLY_NEGATIVE_ICON); return FilesDefs::getIconFromQtResourcePath(REPUTATION_LOCALLY_NEGATIVE_ICON);
case RsReputationLevel::LOCALLY_POSITIVE: case RsReputationLevel::LOCALLY_POSITIVE:
return QIcon(REPUTATION_LOCALLY_POSITIVE_ICON); return FilesDefs::getIconFromQtResourcePath(REPUTATION_LOCALLY_POSITIVE_ICON);
case RsReputationLevel::REMOTELY_POSITIVE: case RsReputationLevel::REMOTELY_POSITIVE:
return QIcon(REPUTATION_REMOTELY_POSITIVE_ICON); return FilesDefs::getIconFromQtResourcePath(REPUTATION_REMOTELY_POSITIVE_ICON);
case RsReputationLevel::REMOTELY_NEGATIVE: case RsReputationLevel::REMOTELY_NEGATIVE:
return QIcon(REPUTATION_REMOTELY_NEGATIVE_ICON); return FilesDefs::getIconFromQtResourcePath(REPUTATION_REMOTELY_NEGATIVE_ICON);
case RsReputationLevel::NEUTRAL: case RsReputationLevel::NEUTRAL:
return QIcon(REPUTATION_NEUTRAL_ICON); return FilesDefs::getIconFromQtResourcePath(REPUTATION_NEUTRAL_ICON);
default: default:
std::cerr << "Asked for unidentified icon index " std::cerr << "Asked for unidentified icon index "
<< static_cast<uint32_t>(icon_index) << std::endl; << static_cast<uint32_t>(icon_index) << std::endl;
@ -1112,7 +1113,7 @@ void GxsIdDetails::getIcons(const RsIdentityDetails &details, QList<QIcon> &icon
RsReputationLevel::LOCALLY_NEGATIVE ) RsReputationLevel::LOCALLY_NEGATIVE )
{ {
icons.clear() ; icons.clear() ;
icons.push_back(QIcon(IMAGE_BANNED)) ; icons.push_back(FilesDefs::getIconFromQtResourcePath(IMAGE_BANNED)) ;
return ; return ;
} }
@ -1141,12 +1142,12 @@ void GxsIdDetails::getIcons(const RsIdentityDetails &details, QList<QIcon> &icon
if (details.mFlags & RS_IDENTITY_FLAGS_PGP_LINKED) if (details.mFlags & RS_IDENTITY_FLAGS_PGP_LINKED)
{ {
if (details.mFlags & RS_IDENTITY_FLAGS_PGP_KNOWN) if (details.mFlags & RS_IDENTITY_FLAGS_PGP_KNOWN)
baseIcon = QIcon(IMAGE_PGPKNOWN); baseIcon = FilesDefs::getIconFromQtResourcePath(IMAGE_PGPKNOWN);
else else
baseIcon = QIcon(IMAGE_PGPUNKNOWN); baseIcon = FilesDefs::getIconFromQtResourcePath(IMAGE_PGPUNKNOWN);
} }
else else
baseIcon = QIcon(IMAGE_ANON); baseIcon = FilesDefs::getIconFromQtResourcePath(IMAGE_ANON);
icons.push_back(baseIcon); icons.push_back(baseIcon);
} }

View File

@ -67,7 +67,7 @@ static void fillGxsIdRSTreeWidgetItemCallback(GxsIdDetailsType type, const RsIde
break; break;
case GXS_ID_DETAILS_TYPE_BANNED: case GXS_ID_DETAILS_TYPE_BANNED:
icons.push_back(QIcon("BANNED_IMAGE")) ; icons.push_back(FilesDefs::getIconFromQtResourcePath("BANNED_IMAGE")) ;
break ; break ;
} }

View File

@ -20,7 +20,7 @@
#pragma once #pragma once
#include "mainpage.h" #include <retroshare-gui/mainpage.h>
#include <retroshare/rsgxsifacetypes.h> #include <retroshare/rsgxsifacetypes.h>
// This class implement a basic RS functionality which is that widgets displaying info // This class implement a basic RS functionality which is that widgets displaying info

View File

@ -122,9 +122,9 @@ void CreateGxsChannelMsg::contextMenu(QPoint /*point*/)
QAction *action ; QAction *action ;
if(n_file > 1) if(n_file > 1)
action = contextMnu.addAction(QIcon(":/images/pasterslink.png"), tr("Paste RetroShare Links"), this, SLOT(pasteLink())); action = contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(":/images/pasterslink.png"), tr("Paste RetroShare Links"), this, SLOT(pasteLink()));
else else
action = contextMnu.addAction(QIcon(":/images/pasterslink.png"), tr("Paste RetroShare Link"), this, SLOT(pasteLink())); action = contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(":/images/pasterslink.png"), tr("Paste RetroShare Link"), this, SLOT(pasteLink()));
action->setDisabled(n_file < 1) ; action->setDisabled(n_file < 1) ;
contextMnu.exec(QCursor::pos()); contextMnu.exec(QCursor::pos());

View File

@ -108,6 +108,7 @@ QString GxsChannelDialog::getHelpString() const
<p>Channels can be made anonymous, or attached to a Retroshare identity so that readers can contact you if needed.\ <p>Channels can be made anonymous, or attached to a Retroshare identity so that readers can contact you if needed.\
Enable \"Allow Comments\" if you want to let users comment on your posts.</p>\ Enable \"Allow Comments\" if you want to let users comment on your posts.</p>\
<p>Channel posts are kept for %1 days, and sync-ed over the last %2 days, unless you change this.</p>\ <p>Channel posts are kept for %1 days, and sync-ed over the last %2 days, unless you change this.</p>\
<p>UI Tip: use Control + mouse wheel to control image size in the thumbnail view.</p>\
").arg(QString::number(rsGxsChannels->getDefaultStoragePeriod()/86400)).arg(QString::number(rsGxsChannels->getDefaultSyncPeriod()/86400)); ").arg(QString::number(rsGxsChannels->getDefaultStoragePeriod()/86400)).arg(QString::number(rsGxsChannels->getDefaultSyncPeriod()/86400));
return hlp_str ; return hlp_str ;
@ -251,8 +252,8 @@ void GxsChannelDialog::groupTreeCustomActions(RsGxsGroupId grpId, int subscribeF
if (isSubscribed) if (isSubscribed)
{ {
QAction *action = autoDownload ? (new QAction(QIcon(":/images/redled.png"), tr("Disable Auto-Download"), this)) QAction *action = autoDownload ? (new QAction(FilesDefs::getIconFromQtResourcePath(":/images/redled.png"), tr("Disable Auto-Download"), this))
: (new QAction(QIcon(":/images/start.png"),tr("Enable Auto-Download"), this)); : (new QAction(FilesDefs::getIconFromQtResourcePath(":/images/start.png"),tr("Enable Auto-Download"), this));
connect(action, SIGNAL(triggered()), this, SLOT(toggleAutoDownload())); connect(action, SIGNAL(triggered()), this, SLOT(toggleAutoDownload()));
actions.append(action); actions.append(action);
@ -263,7 +264,7 @@ void GxsChannelDialog::groupTreeCustomActions(RsGxsGroupId grpId, int subscribeF
QMenu *mnu = new QMenu(tr("Set download directory")) ; QMenu *mnu = new QMenu(tr("Set download directory")) ;
if(dl_directory.empty()) if(dl_directory.empty())
mnu->addAction(QIcon(":/images/start.png"),tr("[Default directory]"), this, SLOT(setDefaultDirectory())) ; mnu->addAction(FilesDefs::getIconFromQtResourcePath(":/images/start.png"),tr("[Default directory]"), this, SLOT(setDefaultDirectory())) ;
else else
mnu->addAction(tr("[Default directory]"), this, SLOT(setDefaultDirectory())) ; mnu->addAction(tr("[Default directory]"), this, SLOT(setDefaultDirectory())) ;
@ -277,7 +278,7 @@ void GxsChannelDialog::groupTreeCustomActions(RsGxsGroupId grpId, int subscribeF
if(dl_directory == it->filename) if(dl_directory == it->filename)
{ {
action = new QAction(QIcon(":/images/start.png"),QString::fromUtf8(it->filename.c_str()),NULL) ; action = new QAction(FilesDefs::getIconFromQtResourcePath(":/images/start.png"),QString::fromUtf8(it->filename.c_str()),NULL) ;
found = true ; found = true ;
} }
else else
@ -291,7 +292,7 @@ void GxsChannelDialog::groupTreeCustomActions(RsGxsGroupId grpId, int subscribeF
if(!found && !dl_directory.empty()) if(!found && !dl_directory.empty())
{ {
QAction *action = new QAction(QIcon(":/images/start.png"),QString::fromUtf8(dl_directory.c_str()),NULL) ; QAction *action = new QAction(FilesDefs::getIconFromQtResourcePath(":/images/start.png"),QString::fromUtf8(dl_directory.c_str()),NULL) ;
connect(action,SIGNAL(triggered()),this,SLOT(setDownloadDirectory())) ; connect(action,SIGNAL(triggered()),this,SLOT(setDownloadDirectory())) ;
action->setData(QString::fromUtf8(dl_directory.c_str())) ; action->setData(QString::fromUtf8(dl_directory.c_str())) ;
@ -391,7 +392,7 @@ void GxsChannelDialog::groupInfoToGroupItemInfo(const RsGxsGenericGroupData *gro
groupItemInfo.icon = image; groupItemInfo.icon = image;
} }
else else
groupItemInfo.icon = QIcon(":icons/png/channel.png"); groupItemInfo.icon = FilesDefs::getIconFromQtResourcePath(":icons/png/channel.png");
groupItemInfo.description = QString::fromUtf8(channelGroupData->mDescription.c_str()); groupItemInfo.description = QString::fromUtf8(channelGroupData->mDescription.c_str());
} }

View File

@ -171,7 +171,7 @@ void RsGxsChannelPostsModel::setFilter(const QStringList& strings, uint32_t& cou
if(strings.empty()) if(strings.empty())
{ {
mFilteredPosts.clear(); mFilteredPosts.clear();
for(int i=0;i<mPosts.size();++i) for(size_t i=0;i<mPosts.size();++i)
mFilteredPosts.push_back(i); mFilteredPosts.push_back(i);
} }
else else
@ -179,7 +179,7 @@ void RsGxsChannelPostsModel::setFilter(const QStringList& strings, uint32_t& cou
mFilteredPosts.clear(); mFilteredPosts.clear();
//mFilteredPosts.push_back(0); //mFilteredPosts.push_back(0);
for(int i=0;i<mPosts.size();++i) for(size_t i=0;i<mPosts.size();++i)
{ {
bool passes_strings = true; bool passes_strings = true;
@ -281,7 +281,7 @@ bool RsGxsChannelPostsModel::convertRefPointerToTabEntry(quintptr ref, uint32_t&
QModelIndex RsGxsChannelPostsModel::index(int row, int column, const QModelIndex & parent) const QModelIndex RsGxsChannelPostsModel::index(int row, int column, const QModelIndex & parent) const
{ {
if(row < 0 || column < 0 || column >= mColumns) if(row < 0 || column < 0 || column >= (int)mColumns)
return QModelIndex(); return QModelIndex();
quintptr ref = getChildRef(parent.internalId(),column + row*mColumns); quintptr ref = getChildRef(parent.internalId(),column + row*mColumns);
@ -684,7 +684,19 @@ void RsGxsChannelPostsModel::createPostsArray(std::vector<RsGxsChannelPost>& pos
} }
} }
void RsGxsChannelPostsModel::setMsgReadStatus(const QModelIndex& i,bool read_status,bool with_children) void RsGxsChannelPostsModel::setAllMsgReadStatus(bool read_status)
{
// No need to call preMods()/postMods() here because we're not changing the model
// All operations below are done async
RsThread::async([this, read_status]()
{
for(uint32_t i=0;i<mPosts.size();++i)
rsGxsChannels->markRead(RsGxsGrpMsgIdPair(mPosts[i].mMeta.mGroupId,mPosts[i].mMeta.mMsgId),read_status);
});
}
void RsGxsChannelPostsModel::setMsgReadStatus(const QModelIndex& i,bool read_status)
{ {
if(!i.isValid()) if(!i.isValid())
return ; return ;
@ -697,10 +709,7 @@ void RsGxsChannelPostsModel::setMsgReadStatus(const QModelIndex& i,bool read_sta
if(!convertRefPointerToTabEntry(ref,entry) || entry >= mFilteredPosts.size()) if(!convertRefPointerToTabEntry(ref,entry) || entry >= mFilteredPosts.size())
return ; return ;
#warning TODO rsGxsChannels->markRead(RsGxsGrpMsgIdPair(mPosts[mFilteredPosts[entry]].mMeta.mGroupId,mPosts[mFilteredPosts[entry]].mMeta.mMsgId),read_status);
// bool has_unread_below, has_read_below;
// recursSetMsgReadStatus(entry,read_status,with_children) ;
// recursUpdateReadStatusAndTimes(0,has_unread_below,has_read_below);
} }
QModelIndex RsGxsChannelPostsModel::getIndexOfMessage(const RsGxsMessageId& mid) const QModelIndex RsGxsChannelPostsModel::getIndexOfMessage(const RsGxsMessageId& mid) const

View File

@ -127,7 +127,9 @@ public:
void setTextColorMissing (QColor color) { mTextColorMissing = color;} void setTextColorMissing (QColor color) { mTextColorMissing = color;}
#endif #endif
void setMsgReadStatus(const QModelIndex &i, bool read_status, bool with_children); void setMsgReadStatus(const QModelIndex &i, bool read_status);
void setAllMsgReadStatus(bool read_status);
void setFilter(const QStringList &strings, uint32_t &count) ; void setFilter(const QStringList &strings, uint32_t &count) ;
#ifdef TODO #ifdef TODO

View File

@ -220,11 +220,11 @@ void GxsChannelPostsWidget::groupNameChanged(const QString &name)
QIcon GxsChannelPostsWidget::groupIcon() QIcon GxsChannelPostsWidget::groupIcon()
{ {
if (mStateHelper->isLoading(mTokenTypeGroupData) || mStateHelper->isLoading(mTokenTypeAllPosts)) { if (mStateHelper->isLoading(mTokenTypeGroupData) || mStateHelper->isLoading(mTokenTypeAllPosts)) {
return QIcon(":/images/kalarm.png"); return FilesDefs::getIconFromQtResourcePath(":/images/kalarm.png");
} }
// if (mNewCount) { // if (mNewCount) {
// return QIcon(":/images/message-state-new.png"); // return FilesDefs::getIconFromQtResourcePath(":/images/message-state-new.png");
// } // }
return QIcon(); return QIcon();

View File

@ -102,7 +102,6 @@ void ChannelPostDelegate::paint(QPainter * painter, const QStyleOptionViewItem &
RsGxsChannelPost post = index.data(Qt::UserRole).value<RsGxsChannelPost>() ; RsGxsChannelPost post = index.data(Qt::UserRole).value<RsGxsChannelPost>() ;
painter->save();
painter->fillRect( option.rect, option.backgroundBrush); painter->fillRect( option.rect, option.backgroundBrush);
painter->restore(); painter->restore();
@ -246,7 +245,7 @@ GxsChannelPostsWidgetWithModel::GxsChannelPostsWidgetWithModel(const RsGxsGroupI
ui->channelPostFiles_TV->sortByColumn(0, Qt::AscendingOrder); ui->channelPostFiles_TV->sortByColumn(0, Qt::AscendingOrder);
ui->channelFiles_TV->setModel(mChannelFilesModel = new RsGxsChannelPostFilesModel()); ui->channelFiles_TV->setModel(mChannelFilesModel = new RsGxsChannelPostFilesModel());
ui->channelFiles_TV->setItemDelegate(new ChannelPostFilesDelegate()); ui->channelFiles_TV->setItemDelegate(mFilesDelegate = new ChannelPostFilesDelegate());
ui->channelFiles_TV->setPlaceholderText(tr("No files in the channel, or no channel selected")); ui->channelFiles_TV->setPlaceholderText(tr("No files in the channel, or no channel selected"));
ui->channelFiles_TV->setSortingEnabled(true); ui->channelFiles_TV->setSortingEnabled(true);
ui->channelFiles_TV->sortByColumn(0, Qt::AscendingOrder); ui->channelFiles_TV->sortByColumn(0, Qt::AscendingOrder);
@ -632,6 +631,7 @@ GxsChannelPostsWidgetWithModel::~GxsChannelPostsWidgetWithModel()
processSettings(false); processSettings(false);
delete(mAutoDownloadAction); delete(mAutoDownloadAction);
delete mFilesDelegate;
delete ui; delete ui;
} }
@ -1148,6 +1148,7 @@ public:
uint32_t mLastToken; uint32_t mLastToken;
}; };
#ifdef TO_REMOVE
static void setAllMessagesReadCallback(FeedItem *feedItem, void *data) static void setAllMessagesReadCallback(FeedItem *feedItem, void *data)
{ {
GxsChannelPostItem *channelPostItem = dynamic_cast<GxsChannelPostItem*>(feedItem); GxsChannelPostItem *channelPostItem = dynamic_cast<GxsChannelPostItem*>(feedItem);
@ -1164,16 +1165,15 @@ static void setAllMessagesReadCallback(FeedItem *feedItem, void *data)
RsGxsGrpMsgIdPair msgPair = std::make_pair(channelPostItem->groupId(), channelPostItem->messageId()); RsGxsGrpMsgIdPair msgPair = std::make_pair(channelPostItem->groupId(), channelPostItem->messageId());
rsGxsChannels->setMessageReadStatus(readData->mLastToken, msgPair, readData->mRead); rsGxsChannels->setMessageReadStatus(readData->mLastToken, msgPair, readData->mRead);
} }
#endif
void GxsChannelPostsWidgetWithModel::setAllMessagesReadDo(bool read, uint32_t &token) void GxsChannelPostsWidgetWithModel::setAllMessagesReadDo(bool read, uint32_t& /*token*/)
{ {
if (groupId().isNull() || !IS_GROUP_SUBSCRIBED(mGroup.mMeta.mSubscribeFlags)) { if (groupId().isNull() || !IS_GROUP_SUBSCRIBED(mGroup.mMeta.mSubscribeFlags))
return; return;
}
GxsChannelPostsReadData data(read); QModelIndex src_index;
//ui->feedWidget->withAll(setAllMessagesReadCallback, &data);
token = data.mLastToken; mChannelPostsModel->setAllMsgReadStatus(read);
} }

View File

@ -174,6 +174,7 @@ private:
RsGxsChannelPostFilesModel *mChannelPostFilesModel; RsGxsChannelPostFilesModel *mChannelPostFilesModel;
RsGxsChannelPostFilesModel *mChannelFilesModel; RsGxsChannelPostFilesModel *mChannelFilesModel;
ChannelPostDelegate *mChannelPostsDelegate; ChannelPostDelegate *mChannelPostsDelegate;
ChannelPostFilesDelegate *mFilesDelegate;
RsGxsMessageId mSelectedPost; RsGxsMessageId mSelectedPost;

View File

@ -775,7 +775,7 @@ void GxsForumThreadWidget::togglethreadview_internal()
ui->expandButton->setToolTip(tr("Hide")); ui->expandButton->setToolTip(tr("Hide"));
// } else { // } else {
// ui->postText->setVisible(false); // ui->postText->setVisible(false);
// ui->expandButton->setIcon(QIcon(QString(":/images/edit_add24.png"))); // ui->expandButton->setIcon(FilesDefs::getIconFromQtResourcePath(QString(":/images/edit_add24.png")));
// ui->expandButton->setToolTip(tr("Expand")); // ui->expandButton->setToolTip(tr("Expand"));
// } // }
} }

View File

@ -228,8 +228,8 @@ void GxsForumsDialog::groupInfoToGroupItemInfo(const RsGxsGenericGroupData *grou
groupItemInfo.description = QString::fromUtf8(forumGroupData->mDescription.c_str()); groupItemInfo.description = QString::fromUtf8(forumGroupData->mDescription.c_str());
if(IS_GROUP_ADMIN(groupData->mMeta.mSubscribeFlags)) if(IS_GROUP_ADMIN(groupData->mMeta.mSubscribeFlags))
groupItemInfo.icon = QIcon(":icons/png/forums.png"); groupItemInfo.icon = FilesDefs::getIconFromQtResourcePath(":icons/png/forums.png");
else if ((IS_GROUP_PGP_AUTHED(groupData->mMeta.mSignFlags)) || (IS_GROUP_MESSAGE_TRACKING(groupData->mMeta.mSignFlags)) ) else if ((IS_GROUP_PGP_AUTHED(groupData->mMeta.mSignFlags)) || (IS_GROUP_MESSAGE_TRACKING(groupData->mMeta.mSignFlags)) )
groupItemInfo.icon = QIcon(":icons/png/forums-signed.png"); groupItemInfo.icon = FilesDefs::getIconFromQtResourcePath(":icons/png/forums-signed.png");
} }

View File

@ -18,6 +18,7 @@
* * * *
*******************************************************************************/ *******************************************************************************/
#include "gui/common/FilesDefs.h"
#include <QMessageBox> #include <QMessageBox>
#include <QCloseEvent> #include <QCloseEvent>
#include <QClipboard> #include <QClipboard>
@ -696,7 +697,7 @@ void MessageComposer::contextMenuFileList(QPoint)
{ {
QMenu contextMnu(this); QMenu contextMnu(this);
QAction *action = contextMnu.addAction(QIcon(":/images/pasterslink.png"), tr("Paste RetroShare Link"), this, SLOT(pasteRecommended())); QAction *action = contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(":/images/pasterslink.png"), tr("Paste RetroShare Link"), this, SLOT(pasteRecommended()));
action->setDisabled(RSLinkClipboard::empty(RetroShareLink::TYPE_FILE)); action->setDisabled(RSLinkClipboard::empty(RetroShareLink::TYPE_FILE));
contextMnu.exec(QCursor::pos()); contextMnu.exec(QCursor::pos());
@ -805,7 +806,7 @@ void MessageComposer::peerStatusChanged(const QString& peer_id, int status)
{ {
QTableWidgetItem *item = ui.recipientWidget->item(row, COLUMN_RECIPIENT_ICON); QTableWidgetItem *item = ui.recipientWidget->item(row, COLUMN_RECIPIENT_ICON);
if (item) if (item)
item->setIcon(QIcon(StatusDefs::imageUser(status))); item->setIcon(FilesDefs::getIconFromQtResourcePath(StatusDefs::imageUser(status)));
} }
} }
} }
@ -1606,7 +1607,7 @@ void MessageComposer::setRecipientToRow(int row, enumType type, destinationType
switch(dest_type) switch(dest_type)
{ {
case PEER_TYPE_GROUP: { case PEER_TYPE_GROUP: {
icon = QIcon(IMAGE_GROUP16); icon = FilesDefs::getIconFromQtResourcePath(IMAGE_GROUP16);
RsGroupInfo groupInfo; RsGroupInfo groupInfo;
if (rsPeers->getGroupInfo(RsNodeGroupId(id), groupInfo)) { if (rsPeers->getGroupInfo(RsNodeGroupId(id), groupInfo)) {
@ -1652,7 +1653,7 @@ void MessageComposer::setRecipientToRow(int row, enumType type, destinationType
// No check of return value. Non existing status info is handled as offline. // No check of return value. Non existing status info is handled as offline.
rsStatus->getStatus(RsPeerId(id), peerStatusInfo); rsStatus->getStatus(RsPeerId(id), peerStatusInfo);
icon = QIcon(StatusDefs::imageUser(peerStatusInfo.status)); icon = FilesDefs::getIconFromQtResourcePath(StatusDefs::imageUser(peerStatusInfo.status));
} }
break ; break ;
default: default:
@ -1928,7 +1929,7 @@ void MessageComposer::setupFileActions()
connect(a, SIGNAL(triggered()), this, SLOT(filePrint())); connect(a, SIGNAL(triggered()), this, SLOT(filePrint()));
menu->addAction(a); menu->addAction(a);
/*a = new QAction(QIcon(":/images/textedit/fileprint.png"), tr("Print Preview..."), this); /*a = new QAction(FilesDefs::getIconFromQtResourcePath(":/images/textedit/fileprint.png"), tr("Print Preview..."), this);
connect(a, SIGNAL(triggered()), this, SLOT(filePrintPreview())); connect(a, SIGNAL(triggered()), this, SLOT(filePrintPreview()));
menu->addAction(a);*/ menu->addAction(a);*/
@ -2021,7 +2022,7 @@ void MessageComposer::setupContactActions()
connect(mActionAddBCC, SIGNAL(triggered(bool)), this, SLOT(addBcc())); connect(mActionAddBCC, SIGNAL(triggered(bool)), this, SLOT(addBcc()));
mActionAddRecommend = new QAction(tr("Add as Recommend"), this); mActionAddRecommend = new QAction(tr("Add as Recommend"), this);
connect(mActionAddRecommend, SIGNAL(triggered(bool)), this, SLOT(addRecommend())); connect(mActionAddRecommend, SIGNAL(triggered(bool)), this, SLOT(addRecommend()));
mActionContactDetails = new QAction(QIcon(IMAGE_FRIENDINFO), tr("Details"), this); mActionContactDetails = new QAction(FilesDefs::getIconFromQtResourcePath(IMAGE_FRIENDINFO), tr("Details"), this);
connect(mActionContactDetails, SIGNAL(triggered(bool)), this, SLOT(contactDetails())); connect(mActionContactDetails, SIGNAL(triggered(bool)), this, SLOT(contactDetails()));
ui.friendSelectionWidget->addContextMenuAction(mActionAddTo); ui.friendSelectionWidget->addContextMenuAction(mActionAddTo);
@ -2435,9 +2436,9 @@ void MessageComposer::on_contactsdockWidget_visibilityChanged(bool visible)
void MessageComposer::updatecontactsviewicons() void MessageComposer::updatecontactsviewicons()
{ {
if(!ui.contactsdockWidget->isVisible()){ if(!ui.contactsdockWidget->isVisible()){
ui.actionContactsView->setIcon(QIcon(":/icons/mail/contacts.png")); ui.actionContactsView->setIcon(FilesDefs::getIconFromQtResourcePath(":/icons/mail/contacts.png"));
}else{ }else{
ui.actionContactsView->setIcon(QIcon(":/icons/mail/contacts.png")); ui.actionContactsView->setIcon(FilesDefs::getIconFromQtResourcePath(":/icons/mail/contacts.png"));
} }
} }

View File

@ -18,6 +18,7 @@
* * * *
*******************************************************************************/ *******************************************************************************/
#include "gui/common/FilesDefs.h"
#include "MessageUserNotify.h" #include "MessageUserNotify.h"
#include "gui/notifyqt.h" #include "gui/notifyqt.h"
#include "gui/MainWindow.h" #include "gui/MainWindow.h"
@ -40,12 +41,12 @@ bool MessageUserNotify::hasSetting(QString *name, QString *group)
QIcon MessageUserNotify::getIcon() QIcon MessageUserNotify::getIcon()
{ {
return QIcon(":/icons/png/messages.png"); return FilesDefs::getIconFromQtResourcePath(":/icons/png/messages.png");
} }
QIcon MessageUserNotify::getMainIcon(bool hasNew) QIcon MessageUserNotify::getMainIcon(bool hasNew)
{ {
return hasNew ? QIcon(":/icons/png/messages-notify.png") : QIcon(":/icons/png/messages.png"); return hasNew ? FilesDefs::getIconFromQtResourcePath(":/icons/png/messages-notify.png") : FilesDefs::getIconFromQtResourcePath(":/icons/png/messages.png");
} }
unsigned int MessageUserNotify::getNewCount() unsigned int MessageUserNotify::getNewCount()

View File

@ -315,8 +315,8 @@ void MessageWidget::msgfilelistWidgetCostumPopupMenu( QPoint /*point*/ )
{ {
QMenu contextMnu(this); QMenu contextMnu(this);
contextMnu.addAction(QIcon(IMAGE_DOWNLOAD), tr("Download"), this, SLOT(getcurrentrecommended())); contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_DOWNLOAD), tr("Download"), this, SLOT(getcurrentrecommended()));
contextMnu.addAction(QIcon(IMAGE_DOWNLOADALL), tr("Download all"), this, SLOT(getallrecommended())); contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_DOWNLOADALL), tr("Download all"), this, SLOT(getallrecommended()));
contextMnu.exec(QCursor::pos()); contextMnu.exec(QCursor::pos());
} }
@ -328,10 +328,10 @@ void MessageWidget::togglefileview(bool noUpdate/*=false*/)
*/ */
if (ui.expandFilesButton->isChecked()) { if (ui.expandFilesButton->isChecked()) {
ui.expandFilesButton->setIcon(QIcon(QString(":/icons/png/down-arrow.png"))); ui.expandFilesButton->setIcon(FilesDefs::getIconFromQtResourcePath(QString(":/icons/png/down-arrow.png")));
ui.expandFilesButton->setToolTip(tr("Hide the attachment pane")); ui.expandFilesButton->setToolTip(tr("Hide the attachment pane"));
} else { } else {
ui.expandFilesButton->setIcon(QIcon(QString(":/icons/png/up-arrow.png"))); ui.expandFilesButton->setIcon(FilesDefs::getIconFromQtResourcePath(QString(":/icons/png/up-arrow.png")));
ui.expandFilesButton->setToolTip(tr("Show the attachment pane")); ui.expandFilesButton->setToolTip(tr("Show the attachment pane"));
} }
if (!noUpdate) if (!noUpdate)

View File

@ -18,6 +18,7 @@
* * * *
*******************************************************************************/ *******************************************************************************/
#include "gui/common/FilesDefs.h"
#include "MessageWindow.h" #include "MessageWindow.h"
#include "MessageWidget.h" #include "MessageWidget.h"
#include "MessageComposer.h" #include "MessageComposer.h"
@ -180,12 +181,12 @@ void MessageWindow::setupFileActions()
menuBar()->addMenu(menu); menuBar()->addMenu(menu);
actionSaveAs = menu->addAction(tr("Save &As File")); actionSaveAs = menu->addAction(tr("Save &As File"));
actionPrint = menu->addAction(QIcon(":/images/textedit/fileprint.png"), tr("&Print...")); actionPrint = menu->addAction(FilesDefs::getIconFromQtResourcePath(":/images/textedit/fileprint.png"), tr("&Print..."));
actionPrint->setShortcut(QKeySequence::Print); actionPrint->setShortcut(QKeySequence::Print);
actionPrintPreview = menu->addAction(QIcon(":/images/textedit/fileprint.png"), tr("Print Preview...")); actionPrintPreview = menu->addAction(FilesDefs::getIconFromQtResourcePath(":/images/textedit/fileprint.png"), tr("Print Preview..."));
// a = new QAction(QIcon(":/images/textedit/exportpdf.png"), tr("&Export PDF..."), this); // a = new QAction(FilesDefs::getIconFromQtResourcePath(":/images/textedit/exportpdf.png"), tr("&Export PDF..."), this);
// a->setShortcut(Qt::CTRL + Qt::Key_D); // a->setShortcut(Qt::CTRL + Qt::Key_D);
// connect(a, SIGNAL(triggered()), this, SLOT(filePrintPdf())); // connect(a, SIGNAL(triggered()), this, SLOT(filePrintPdf()));
// menu->addAction(a); // menu->addAction(a);

View File

@ -422,7 +422,7 @@ void MessagesDialog::fillQuickView()
// add static items // add static items
item = new QListWidgetItem(tr("Starred"), ui.quickViewWidget); item = new QListWidgetItem(tr("Starred"), ui.quickViewWidget);
item->setIcon(QIcon(IMAGE_STAR_ON)); item->setIcon(FilesDefs::getIconFromQtResourcePath(IMAGE_STAR_ON));
item->setData(ROLE_QUICKVIEW_TYPE, QUICKVIEW_TYPE_STATIC); item->setData(ROLE_QUICKVIEW_TYPE, QUICKVIEW_TYPE_STATIC);
item->setData(ROLE_QUICKVIEW_ID, QUICKVIEW_STATIC_ID_STARRED); item->setData(ROLE_QUICKVIEW_ID, QUICKVIEW_STATIC_ID_STARRED);
item->setData(ROLE_QUICKVIEW_TEXT, item->text()); // for updateMessageSummaryList item->setData(ROLE_QUICKVIEW_TEXT, item->text()); // for updateMessageSummaryList
@ -432,7 +432,7 @@ void MessagesDialog::fillQuickView()
} }
item = new QListWidgetItem(tr("System"), ui.quickViewWidget); item = new QListWidgetItem(tr("System"), ui.quickViewWidget);
item->setIcon(QIcon(IMAGE_NOTFICATION)); item->setIcon(FilesDefs::getIconFromQtResourcePath(IMAGE_NOTFICATION));
item->setData(ROLE_QUICKVIEW_TYPE, QUICKVIEW_TYPE_STATIC); item->setData(ROLE_QUICKVIEW_TYPE, QUICKVIEW_TYPE_STATIC);
item->setData(ROLE_QUICKVIEW_ID, QUICKVIEW_STATIC_ID_SYSTEM); item->setData(ROLE_QUICKVIEW_ID, QUICKVIEW_STATIC_ID_SYSTEM);
item->setData(ROLE_QUICKVIEW_TEXT, item->text()); // for updateMessageSummaryList item->setData(ROLE_QUICKVIEW_TEXT, item->text()); // for updateMessageSummaryList
@ -442,7 +442,7 @@ void MessagesDialog::fillQuickView()
} }
item = new QListWidgetItem(tr("Spam"), ui.quickViewWidget); item = new QListWidgetItem(tr("Spam"), ui.quickViewWidget);
item->setIcon(QIcon(IMAGE_SPAM_ON)); item->setIcon(FilesDefs::getIconFromQtResourcePath(IMAGE_SPAM_ON));
item->setData(ROLE_QUICKVIEW_TYPE, QUICKVIEW_TYPE_STATIC); item->setData(ROLE_QUICKVIEW_TYPE, QUICKVIEW_TYPE_STATIC);
item->setData(ROLE_QUICKVIEW_ID, QUICKVIEW_STATIC_ID_SPAM); item->setData(ROLE_QUICKVIEW_ID, QUICKVIEW_STATIC_ID_SPAM);
item->setData(ROLE_QUICKVIEW_TEXT, item->text()); // for updateMessageSummaryList item->setData(ROLE_QUICKVIEW_TEXT, item->text()); // for updateMessageSummaryList
@ -452,7 +452,7 @@ void MessagesDialog::fillQuickView()
} }
item = new QListWidgetItem(tr("Attachment"), ui.quickViewWidget); item = new QListWidgetItem(tr("Attachment"), ui.quickViewWidget);
item->setIcon(QIcon(IMAGE_ATTACHMENT)); item->setIcon(FilesDefs::getIconFromQtResourcePath(IMAGE_ATTACHMENT));
item->setData(ROLE_QUICKVIEW_TYPE, QUICKVIEW_TYPE_STATIC); item->setData(ROLE_QUICKVIEW_TYPE, QUICKVIEW_TYPE_STATIC);
item->setData(ROLE_QUICKVIEW_ID, QUICKVIEW_STATIC_ID_ATTACHMENT); item->setData(ROLE_QUICKVIEW_ID, QUICKVIEW_STATIC_ID_ATTACHMENT);
item->setData(ROLE_QUICKVIEW_TEXT, item->text()); // for updateMessageSummaryList item->setData(ROLE_QUICKVIEW_TEXT, item->text()); // for updateMessageSummaryList
@ -584,13 +584,13 @@ void MessagesDialog::messageTreeWidgetCustomPopupMenu(QPoint /*point*/)
QMenu contextMnu( this ); QMenu contextMnu( this );
QAction *action = contextMnu.addAction(QIcon(":/images/view_split_top_bottom.png"), tr("Open in a new window"), this, SLOT(openAsWindow())); QAction *action = contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(":/images/view_split_top_bottom.png"), tr("Open in a new window"), this, SLOT(openAsWindow()));
if (nCount != 1) { if (nCount != 1) {
action->setDisabled(true); action->setDisabled(true);
} }
action = contextMnu.addAction(QIcon(":/images/tab-dock.png"), tr("Open in a new tab"), this, SLOT(openAsTab())); action = contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(":/images/tab-dock.png"), tr("Open in a new tab"), this, SLOT(openAsTab()));
if (nCount != 1) { if (nCount != 1) {
action->setDisabled(true); action->setDisabled(true);
} }
@ -608,12 +608,12 @@ void MessagesDialog::messageTreeWidgetCustomPopupMenu(QPoint /*point*/)
contextMnu.addSeparator(); contextMnu.addSeparator();
action = contextMnu.addAction(QIcon(":/images/message-mail-read.png"), tr("Mark as read"), this, SLOT(markAsRead())); action = contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(":/images/message-mail-read.png"), tr("Mark as read"), this, SLOT(markAsRead()));
if (itemsUnread.isEmpty()) { if (itemsUnread.isEmpty()) {
action->setDisabled(true); action->setDisabled(true);
} }
action = contextMnu.addAction(QIcon(":/images/message-mail.png"), tr("Mark as unread"), this, SLOT(markAsUnread())); action = contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(":/images/message-mail.png"), tr("Mark as unread"), this, SLOT(markAsUnread()));
if (itemsRead.isEmpty()) { if (itemsRead.isEmpty()) {
action->setDisabled(true); action->setDisabled(true);
@ -647,7 +647,7 @@ void MessagesDialog::messageTreeWidgetCustomPopupMenu(QPoint /*point*/)
action->setDisabled(true); action->setDisabled(true);
} }
action = contextMnu.addAction(QIcon(IMAGE_MESSAGEREMOVE), (nCount > 1) ? tr("Remove Messages") : tr("Remove Message"), this, SLOT(removemessage())); action = contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_MESSAGEREMOVE), (nCount > 1) ? tr("Remove Messages") : tr("Remove Message"), this, SLOT(removemessage()));
if (nCount == 0) { if (nCount == 0) {
action->setDisabled(true); action->setDisabled(true);
} }
@ -674,11 +674,11 @@ void MessagesDialog::messageTreeWidgetCustomPopupMenu(QPoint /*point*/)
{ {
std::cerr << "Src ID = " << msgInfo.rsgxsid_srcId << std::endl; std::cerr << "Src ID = " << msgInfo.rsgxsid_srcId << std::endl;
contextMnu.addAction(QIcon(IMAGE_AUTHOR_INFO),tr("Show author in People"),this,SLOT(showAuthorInPeopleTab())); contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_AUTHOR_INFO),tr("Show author in People"),this,SLOT(showAuthorInPeopleTab()));
contextMnu.addSeparator(); contextMnu.addSeparator();
} }
contextMnu.addAction(QIcon(IMAGE_MESSAGE), tr("New Message"), this, SLOT(newmessage())); contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_MESSAGE), tr("New Message"), this, SLOT(newmessage()));
contextMnu.exec(QCursor::pos()); contextMnu.exec(QCursor::pos());
} }
@ -767,7 +767,7 @@ void MessagesDialog::openAsTab()
return; return;
} }
ui.tabWidget->addTab(msgWidget,QIcon(IMAGE_MAIL), msgWidget->subject(true)); ui.tabWidget->addTab(msgWidget,FilesDefs::getIconFromQtResourcePath(IMAGE_MAIL), msgWidget->subject(true));
ui.tabWidget->setCurrentWidget(msgWidget); ui.tabWidget->setCurrentWidget(msgWidget);
connect(msgWidget, SIGNAL(messageRemoved()), this, SLOT(messageRemoved())); connect(msgWidget, SIGNAL(messageRemoved()), this, SLOT(messageRemoved()));
@ -1284,7 +1284,7 @@ void MessagesDialog::updateMessageSummaryList()
QFont qf = item->font(); QFont qf = item->font();
qf.setBold(true); qf.setBold(true);
item->setFont(qf); item->setFont(qf);
item->setIcon(QIcon(":/images/folder-inbox-new.png")); item->setIcon(FilesDefs::getIconFromQtResourcePath(":/images/folder-inbox-new.png"));
item->setData(Qt::ForegroundRole, mTextColorInbox); item->setData(Qt::ForegroundRole, mTextColorInbox);
} }
else else
@ -1294,7 +1294,7 @@ void MessagesDialog::updateMessageSummaryList()
QFont qf = item->font(); QFont qf = item->font();
qf.setBold(false); qf.setBold(false);
item->setFont(qf); item->setFont(qf);
item->setIcon(QIcon(":/images/folder-inbox.png")); item->setIcon(FilesDefs::getIconFromQtResourcePath(":/images/folder-inbox.png"));
item->setData(Qt::ForegroundRole, QVariant()); item->setData(Qt::ForegroundRole, QVariant());
} }
@ -1553,6 +1553,6 @@ void MessagesDialog::updateInterface()
else else
{ {
ui.tabWidget->setTabText(0, tr("No Box selected.")); ui.tabWidget->setTabText(0, tr("No Box selected."));
ui.tabWidget->setTabIcon(0, QIcon(":/icons/warning_yellow_128.png")); ui.tabWidget->setTabIcon(0, FilesDefs::getIconFromQtResourcePath(":/icons/warning_yellow_128.png"));
} }
} }

View File

@ -23,7 +23,8 @@
#include <QSortFilterProxyModel> #include <QSortFilterProxyModel>
#include "mainpage.h" #include <retroshare-gui/mainpage.h>
#include "ui_MessagesDialog.h" #include "ui_MessagesDialog.h"
#define IMAGE_MESSAGES ":/icons/png/message.png" #define IMAGE_MESSAGES ":/icons/png/message.png"

View File

@ -18,6 +18,7 @@
* * * *
*******************************************************************************/ *******************************************************************************/
#include "gui/common/FilesDefs.h"
#include <retroshare/rsgxsifacehelper.h> #include <retroshare/rsgxsifacehelper.h>
#include <QInputDialog> #include <QInputDialog>
@ -32,7 +33,7 @@
#include <retroshare/rsidentity.h> #include <retroshare/rsidentity.h>
#include <util/rsdir.h> #include <util/rsdir.h>
#include "RsAutoUpdatePage.h" #include <retroshare-gui/RsAutoUpdatePage.h>
#include "MainWindow.h" #include "MainWindow.h"
#include "toaster/OnlineToaster.h" #include "toaster/OnlineToaster.h"
@ -276,7 +277,7 @@ bool NotifyQt::askForPluginConfirmation(const std::string& plugin_file_name, con
text += "</UL>" ; text += "</UL>" ;
dialog.setText(text) ; dialog.setText(text) ;
dialog.setWindowIcon(QIcon(":/icons/logo_128.png")); dialog.setWindowIcon(FilesDefs::getIconFromQtResourcePath(":/icons/logo_128.png"));
dialog.setStandardButtons(QMessageBox::Yes | QMessageBox::No) ; dialog.setStandardButtons(QMessageBox::Yes | QMessageBox::No) ;
int ret = dialog.exec(); int ret = dialog.exec();

View File

@ -19,6 +19,7 @@
*******************************************************************************/ *******************************************************************************/
#include "gui/common/FilesDefs.h"
#include <rshare.h> #include <rshare.h>
#include <util/rsrandom.h> #include <util/rsrandom.h>
#include <retroshare/rsinit.h> #include <retroshare/rsinit.h>
@ -67,7 +68,7 @@ void ProfileManager::identityTreeWidgetCostumPopupMenu(QPoint)
QMenu contextMnu(this); QMenu contextMnu(this);
QAction *action = contextMnu.addAction(QIcon(IMAGE_EXPORT), tr("Export Identity"), this, SLOT(exportIdentity())); QAction *action = contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_EXPORT), tr("Export Identity"), this, SLOT(exportIdentity()));
action->setEnabled(item != NULL); action->setEnabled(item != NULL);
contextMnu.exec(QCursor::pos()); contextMnu.exec(QCursor::pos());

View File

@ -928,3 +928,9 @@ MessagesDialog QWidget#messageTreeWidget::item:hover {
GxsForumThreadWidget QWidget#threadTreeWidget::item { GxsForumThreadWidget QWidget#threadTreeWidget::item {
padding: 2px; padding: 2px;
} }
PulseTopLevel QFrame#frame, PulseViewGroup QFrame#frame, PulseReply QFrame#frame {
border: 2px solid #7ecbfb;
border-radius: 6px;
background: white;
}

View File

@ -42,6 +42,7 @@
#include "gui/statusbar/SoundStatus.h" #include "gui/statusbar/SoundStatus.h"
#include "gui/statusbar/ToasterDisable.h" #include "gui/statusbar/ToasterDisable.h"
#include "gui/statusbar/SysTrayStatus.h" #include "gui/statusbar/SysTrayStatus.h"
#include "gui/common/FilesDefs.h"
/** Constructor */ /** Constructor */
AppearancePage::AppearancePage(QWidget * parent, Qt::WindowFlags flags) AppearancePage::AppearancePage(QWidget * parent, Qt::WindowFlags flags)
@ -69,7 +70,7 @@ AppearancePage::AppearancePage(QWidget * parent, Qt::WindowFlags flags)
/* Populate combo boxes */ /* Populate combo boxes */
foreach (QString code, LanguageSupport::languageCodes()) { foreach (QString code, LanguageSupport::languageCodes()) {
ui.cmboLanguage->addItem(QIcon(":/images/flags/" + code + ".png"), LanguageSupport::languageName(code), code); ui.cmboLanguage->addItem(FilesDefs::getIconFromQtResourcePath(":/images/flags/" + code + ".png"), LanguageSupport::languageName(code), code);
} }
foreach (QString style, QStyleFactory::keys()) { foreach (QString style, QStyleFactory::keys()) {
ui.cmboStyle->addItem(style, style.toLower()); ui.cmboStyle->addItem(style, style.toLower());

View File

@ -19,6 +19,7 @@
* * * *
*******************************************************************************/ *******************************************************************************/
#include "gui/common/FilesDefs.h"
#include "FileAssociationsPage.h" #include "FileAssociationsPage.h"
#include "AddFileAssociationDialog.h" #include "AddFileAssociationDialog.h"
//#include "rshare.h" // for Rshare::dataDirectory() method //#include "rshare.h" // for Rshare::dataDirectory() method
@ -60,19 +61,19 @@ FileAssociationsPage::FileAssociationsPage(QWidget * parent, Qt::WindowFlags fla
QVBoxLayout* pageLay = new QVBoxLayout(this); QVBoxLayout* pageLay = new QVBoxLayout(this);
toolBar = new QToolBar("actions", this); toolBar = new QToolBar("actions", this);
newAction = new QAction(QIcon(":/icons/png/add.png"), tr("&New"), this); newAction = new QAction(FilesDefs::getIconFromQtResourcePath(":/icons/png/add.png"), tr("&New"), this);
//newAction->setShortcut(tr("Ctrl+N")); //newAction->setShortcut(tr("Ctrl+N"));
newAction->setStatusTip(tr("Add new Association")); newAction->setStatusTip(tr("Add new Association"));
connect(newAction, SIGNAL(triggered()), this, SLOT(addnew())); connect(newAction, SIGNAL(triggered()), this, SLOT(addnew()));
toolBar->addAction(newAction); toolBar->addAction(newAction);
editAction = new QAction(QIcon(":/images/kcmsystem24.png"), editAction = new QAction(FilesDefs::getIconFromQtResourcePath(":/images/kcmsystem24.png"),
tr("&Edit"), this); tr("&Edit"), this);
editAction->setStatusTip(tr("Edit this Association")); editAction->setStatusTip(tr("Edit this Association"));
connect(editAction, SIGNAL(triggered()), this, SLOT(edit())); connect(editAction, SIGNAL(triggered()), this, SLOT(edit()));
toolBar->addAction(editAction); toolBar->addAction(editAction);
removeAction = new QAction(QIcon(":/images/edit_remove24.png"), removeAction = new QAction(FilesDefs::getIconFromQtResourcePath(":/images/edit_remove24.png"),
tr("&Remove"), this); tr("&Remove"), this);
removeAction->setStatusTip(tr("Remove this Association")); removeAction->setStatusTip(tr("Remove this Association"));
connect(removeAction, SIGNAL(triggered()), this, SLOT(remove())); connect(removeAction, SIGNAL(triggered()), this, SLOT(remove()));

View File

@ -1352,7 +1352,7 @@ void ServerPage::updateInProxyIndicator()
return ; return ;
//ui.iconlabel_tor_incoming->setPixmap(QPixmap(ICON_STATUS_UNKNOWN)) ; //ui.iconlabel_tor_incoming->setPixmap(QPixmap(ICON_STATUS_UNKNOWN)) ;
//ui.testIncomingTor_PB->setIcon(QIcon(":/loader/circleball-16.gif")) ; //ui.testIncomingTor_PB->setIcon(FilesDefs::getIconFromQtResourcePath(":/loader/circleball-16.gif")) ;
QMovie *movie = new QMovie(":/images/loader/circleball-16.gif"); QMovie *movie = new QMovie(":/images/loader/circleball-16.gif");
ui.iconlabel_service_incoming->setMovie(movie); ui.iconlabel_service_incoming->setMovie(movie);
movie->start(); movie->start();
@ -1846,11 +1846,11 @@ void ServerPage::updateInProxyIndicatorResult(bool success)
ui.iconlabel_service_incoming->setPixmap(QPixmap(ICON_STATUS_OK)) ; ui.iconlabel_service_incoming->setPixmap(QPixmap(ICON_STATUS_OK)) ;
ui.iconlabel_service_incoming->setToolTip(tr("You are reachable through the hidden service.")) ; ui.iconlabel_service_incoming->setToolTip(tr("You are reachable through the hidden service.")) ;
//ui.testIncomingTor_PB->setIcon(QIcon(ICON_STATUS_OK)) ; //ui.testIncomingTor_PB->setIcon(FilesDefs::getIconFromQtResourcePath(ICON_STATUS_OK)) ;
} else { } else {
std::cerr <<"Failed!" << std::endl; std::cerr <<"Failed!" << std::endl;
//ui.testIncomingTor_PB->setIcon(QIcon(ICON_STATUS_UNKNOWN)) ; //ui.testIncomingTor_PB->setIcon(FilesDefs::getIconFromQtResourcePath(ICON_STATUS_UNKNOWN)) ;
ui.iconlabel_service_incoming->setPixmap(QPixmap(ICON_STATUS_UNKNOWN)) ; ui.iconlabel_service_incoming->setPixmap(QPixmap(ICON_STATUS_UNKNOWN)) ;
ui.iconlabel_service_incoming->setToolTip(tr("The proxy is not enabled or broken.\nAre all services up and running fine??\nAlso check your ports!")) ; ui.iconlabel_service_incoming->setToolTip(tr("The proxy is not enabled or broken.\nAre all services up and running fine??\nAlso check your ports!")) ;
} }

View File

@ -21,10 +21,12 @@
#ifndef RSETTINGSWIN_HPP_ #ifndef RSETTINGSWIN_HPP_
#define RSETTINGSWIN_HPP_ #define RSETTINGSWIN_HPP_
#include "gui/common/FilesDefs.h"
#include <QDialog> #include <QDialog>
#include <retroshare-gui/configpage.h> #include <retroshare-gui/configpage.h>
#include <retroshare-gui/mainpage.h>
#include "ui_settingsw.h" #include "ui_settingsw.h"
#include "mainpage.h"
class FloatingHelpBrowser; class FloatingHelpBrowser;
@ -44,7 +46,7 @@ public:
void postModDirectories(bool update_local); void postModDirectories(bool update_local);
virtual QIcon iconPixmap() const { return QIcon(IMAGE_PREFERENCES) ; } //MainPage virtual QIcon iconPixmap() const { return FilesDefs::getIconFromQtResourcePath(IMAGE_PREFERENCES) ; } //MainPage
virtual QString pageName() const { return tr("Preferences") ; } //MainPage virtual QString pageName() const { return tr("Preferences") ; } //MainPage
protected: protected:

View File

@ -24,7 +24,7 @@
#include <QAbstractItemDelegate> #include <QAbstractItemDelegate>
#include "RsAutoUpdatePage.h" #include <retroshare-gui/RsAutoUpdatePage.h>
#include "gui/common/RSGraphWidget.h" #include "gui/common/RSGraphWidget.h"
#include "ui_BwCtrlWindow.h" #include "ui_BwCtrlWindow.h"

View File

@ -21,7 +21,8 @@
#ifndef RSDHT_WINDOW_H #ifndef RSDHT_WINDOW_H
#define RSDHT_WINDOW_H #define RSDHT_WINDOW_H
#include "RsAutoUpdatePage.h" #include <retroshare-gui/RsAutoUpdatePage.h>
#include "ui_DhtWindow.h" #include "ui_DhtWindow.h"
class DhtWindow : public RsAutoUpdatePage/*, public Ui::DhtWindow*/ { class DhtWindow : public RsAutoUpdatePage/*, public Ui::DhtWindow*/ {

View File

@ -126,7 +126,7 @@ void GlobalRouterStatistics::CustomPopupMenu( QPoint )
QTreeWidgetItem *item = treeWidget->currentItem(); QTreeWidgetItem *item = treeWidget->currentItem();
if (item) { if (item) {
contextMnu.addAction(QIcon(":/images/info16.png"), tr("Details"), this, SLOT(personDetails())); contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(":/images/info16.png"), tr("Details"), this, SLOT(personDetails()));
} }

Some files were not shown because too many files have changed in this diff Show More