New read status for forum messages.
New mail messages are marked with a new icon in front of the title. git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3352 b45a01b8-16f6-495d-af2f-9b41ad6348cc
@ -34,11 +34,9 @@
|
|||||||
#include "rstypes.h"
|
#include "rstypes.h"
|
||||||
#include "rsdistrib.h" /* For FLAGS */
|
#include "rsdistrib.h" /* For FLAGS */
|
||||||
|
|
||||||
#define RS_FORUMMSG_NEW 0x0010
|
#define FORUM_MSG_STATUS_MASK 0x000f
|
||||||
|
#define FORUM_MSG_STATUS_READ 0x0001
|
||||||
#define FORUM_MSG_STATUS_MASK 0x000f
|
#define FORUM_MSG_STATUS_UNREAD_BY_USER 0x0002
|
||||||
#define FORUM_MSG_STATUS_READ 0x0001
|
|
||||||
#define FORUM_MSG_STATUS_UNREADY_BY_USER 0x0002
|
|
||||||
|
|
||||||
class ForumInfo
|
class ForumInfo
|
||||||
{
|
{
|
||||||
@ -137,7 +135,7 @@ virtual bool getForumThreadList(std::string fId, std::list<ThreadInfoSummary> &m
|
|||||||
virtual bool getForumThreadMsgList(std::string fId, std::string pId, std::list<ThreadInfoSummary> &msgs) = 0;
|
virtual bool getForumThreadMsgList(std::string fId, std::string pId, std::list<ThreadInfoSummary> &msgs) = 0;
|
||||||
virtual bool getForumMessage(std::string fId, std::string mId, ForumMsgInfo &msg) = 0;
|
virtual bool getForumMessage(std::string fId, std::string mId, ForumMsgInfo &msg) = 0;
|
||||||
virtual bool setMessageStatus(const std::string& fId,const std::string& mId, const uint32_t status, const uint32_t statusMask) = 0;
|
virtual bool setMessageStatus(const std::string& fId,const std::string& mId, const uint32_t status, const uint32_t statusMask) = 0;
|
||||||
virtual bool getMessageStatus(const std::string& fId, const std::string& mId, uint32_t& status, const uint32_t statusMask) = 0;
|
virtual bool getMessageStatus(const std::string& fId, const std::string& mId, uint32_t& status) = 0;
|
||||||
virtual bool ForumMessageSend(ForumMsgInfo &info) = 0;
|
virtual bool ForumMessageSend(ForumMsgInfo &info) = 0;
|
||||||
|
|
||||||
virtual bool forumSubscribe(std::string fId, bool subscribe) = 0;
|
virtual bool forumSubscribe(std::string fId, bool subscribe) = 0;
|
||||||
|
@ -271,14 +271,43 @@ bool p3Forums::ForumMessageSend(ForumMsgInfo &info)
|
|||||||
|
|
||||||
bool p3Forums::setMessageStatus(const std::string& fId,const std::string& mId,const uint32_t status, const uint32_t statusMask)
|
bool p3Forums::setMessageStatus(const std::string& fId,const std::string& mId,const uint32_t status, const uint32_t statusMask)
|
||||||
{
|
{
|
||||||
setReadStatus(fId, mId, (status & statusMask));
|
RsStackMutex stack(distribMtx);
|
||||||
|
|
||||||
|
std::list<RsForumReadStatus *>::iterator lit = mReadStatus.begin();
|
||||||
|
|
||||||
|
for(; lit != mReadStatus.end(); lit++)
|
||||||
|
{
|
||||||
|
|
||||||
|
if((*lit)->forumId == fId)
|
||||||
|
{
|
||||||
|
RsForumReadStatus* rsi = *lit;
|
||||||
|
rsi->msgReadStatus[mId] &= ~statusMask;
|
||||||
|
rsi->msgReadStatus[mId] |= (status & statusMask);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// if forum id does not exist create one
|
||||||
|
if(lit == mReadStatus.end())
|
||||||
|
{
|
||||||
|
RsForumReadStatus* rsi = new RsForumReadStatus();
|
||||||
|
rsi->forumId = fId;
|
||||||
|
rsi->msgReadStatus[mId] = status & statusMask;
|
||||||
|
mReadStatus.push_back(rsi);
|
||||||
|
mSaveList.push_back(rsi);
|
||||||
|
}
|
||||||
|
|
||||||
|
IndicateConfigChanged();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool p3Forums::getMessageStatus(const std::string& fId, const std::string& mId, uint32_t& status, uint32_t statusMask)
|
bool p3Forums::getMessageStatus(const std::string& fId, const std::string& mId, uint32_t& status)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
status = 0;
|
||||||
|
|
||||||
RsStackMutex stack(distribMtx);
|
RsStackMutex stack(distribMtx);
|
||||||
|
|
||||||
std::list<RsForumReadStatus *>::iterator lit = mReadStatus.begin();
|
std::list<RsForumReadStatus *>::iterator lit = mReadStatus.begin();
|
||||||
@ -293,22 +322,17 @@ bool p3Forums::getMessageStatus(const std::string& fId, const std::string& mId,
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::map<std::string, uint32_t >::iterator mit;
|
|
||||||
|
|
||||||
if(lit == mReadStatus.end())
|
if(lit == mReadStatus.end())
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
std::map<std::string, uint32_t >::iterator mit = (*lit)->msgReadStatus.find(mId);
|
||||||
|
|
||||||
|
if(mit != (*lit)->msgReadStatus.end())
|
||||||
{
|
{
|
||||||
mit = (*lit)->msgReadStatus.find(mId);
|
status = mit->second;
|
||||||
|
return true;
|
||||||
if(mit != (*lit)->msgReadStatus.end())
|
|
||||||
{
|
|
||||||
status = (mit->second & statusMask);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
@ -573,36 +597,6 @@ std::list<RsItem* > p3Forums::childSaveList()
|
|||||||
return mSaveList;
|
return mSaveList;
|
||||||
}
|
}
|
||||||
|
|
||||||
void p3Forums::setReadStatus(const std::string& forumId, const std::string& msgId, const uint32_t status)
|
|
||||||
{
|
|
||||||
RsStackMutex stack(distribMtx);
|
|
||||||
|
|
||||||
std::list<RsForumReadStatus *>::iterator lit = mReadStatus.begin();
|
|
||||||
|
|
||||||
for(; lit != mReadStatus.end(); lit++)
|
|
||||||
{
|
|
||||||
|
|
||||||
if((*lit)->forumId == forumId)
|
|
||||||
{
|
|
||||||
(*lit)->msgReadStatus[msgId] = status;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// if forum id does not exist create one
|
|
||||||
if(lit == mReadStatus.end())
|
|
||||||
{
|
|
||||||
RsForumReadStatus* rsi = new RsForumReadStatus();
|
|
||||||
rsi->forumId = forumId;
|
|
||||||
rsi->msgReadStatus[msgId] = status;
|
|
||||||
mReadStatus.push_back(rsi);
|
|
||||||
mSaveList.push_back(rsi);
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool p3Forums::childLoadList(std::list<RsItem* >& configSaves)
|
bool p3Forums::childLoadList(std::list<RsItem* >& configSaves)
|
||||||
{
|
{
|
||||||
RsForumReadStatus* drs = NULL;
|
RsForumReadStatus* drs = NULL;
|
||||||
|
@ -54,10 +54,9 @@ virtual bool getForumList(std::list<ForumInfo> &forumList);
|
|||||||
virtual bool getForumThreadList(std::string fId, std::list<ThreadInfoSummary> &msgs);
|
virtual bool getForumThreadList(std::string fId, std::list<ThreadInfoSummary> &msgs);
|
||||||
virtual bool getForumThreadMsgList(std::string fId, std::string tId, std::list<ThreadInfoSummary> &msgs);
|
virtual bool getForumThreadMsgList(std::string fId, std::string tId, std::list<ThreadInfoSummary> &msgs);
|
||||||
virtual bool getForumMessage(std::string fId, std::string mId, ForumMsgInfo &msg);
|
virtual bool getForumMessage(std::string fId, std::string mId, ForumMsgInfo &msg);
|
||||||
virtual void setReadStatus(const std::string& forumId,const std::string& msgId,const uint32_t status);
|
|
||||||
virtual bool ForumMessageSend(ForumMsgInfo &info);
|
virtual bool ForumMessageSend(ForumMsgInfo &info);
|
||||||
virtual bool setMessageStatus(const std::string& fId, const std::string& mId, const uint32_t status, const uint32_t statusMask);
|
virtual bool setMessageStatus(const std::string& fId, const std::string& mId, const uint32_t status, const uint32_t statusMask);
|
||||||
virtual bool getMessageStatus(const std::string& fId, const std::string& mId, uint32_t& status, const uint32_t statusMask);
|
virtual bool getMessageStatus(const std::string& fId, const std::string& mId, uint32_t& status);
|
||||||
|
|
||||||
virtual bool forumSubscribe(std::string fId, bool subscribe);
|
virtual bool forumSubscribe(std::string fId, bool subscribe);
|
||||||
|
|
||||||
|
@ -247,6 +247,7 @@ HEADERS += rshare.h \
|
|||||||
gui/settings/CryptoPage.h \
|
gui/settings/CryptoPage.h \
|
||||||
gui/settings/MessagePage.h \
|
gui/settings/MessagePage.h \
|
||||||
gui/settings/NewTag.h \
|
gui/settings/NewTag.h \
|
||||||
|
gui/settings/ForumPage.h \
|
||||||
gui/settings/AppearancePage.h \
|
gui/settings/AppearancePage.h \
|
||||||
gui/settings/FileAssociationsPage.h \
|
gui/settings/FileAssociationsPage.h \
|
||||||
gui/settings/SoundPage.h \
|
gui/settings/SoundPage.h \
|
||||||
@ -342,6 +343,7 @@ FORMS += gui/StartDialog.ui \
|
|||||||
gui/settings/CryptoPage.ui \
|
gui/settings/CryptoPage.ui \
|
||||||
gui/settings/MessagePage.ui \
|
gui/settings/MessagePage.ui \
|
||||||
gui/settings/NewTag.ui \
|
gui/settings/NewTag.ui \
|
||||||
|
gui/settings/ForumPage.ui \
|
||||||
gui/settings/AppearancePage.ui \
|
gui/settings/AppearancePage.ui \
|
||||||
gui/settings/TransferPage.ui \
|
gui/settings/TransferPage.ui \
|
||||||
gui/settings/SoundPage.ui \
|
gui/settings/SoundPage.ui \
|
||||||
@ -455,6 +457,7 @@ SOURCES += main.cpp \
|
|||||||
gui/settings/CryptoPage.cpp \
|
gui/settings/CryptoPage.cpp \
|
||||||
gui/settings/MessagePage.cpp \
|
gui/settings/MessagePage.cpp \
|
||||||
gui/settings/NewTag.cpp \
|
gui/settings/NewTag.cpp \
|
||||||
|
gui/settings/ForumPage.cpp \
|
||||||
gui/settings/AppearancePage.cpp \
|
gui/settings/AppearancePage.cpp \
|
||||||
gui/settings/FileAssociationsPage.cpp \
|
gui/settings/FileAssociationsPage.cpp \
|
||||||
gui/settings/SoundPage.cpp \
|
gui/settings/SoundPage.cpp \
|
||||||
|
@ -31,95 +31,98 @@ class ForumsDialog : public RsAutoUpdatePage
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
ForumsDialog(QWidget *parent = 0);
|
ForumsDialog(QWidget *parent = 0);
|
||||||
~ForumsDialog();
|
~ForumsDialog();
|
||||||
|
|
||||||
void insertForums();
|
/* overloaded from RsAuthUpdatePage */
|
||||||
void insertPost();
|
virtual void updateDisplay();
|
||||||
|
|
||||||
void loadForumEmoticons();
|
|
||||||
|
|
||||||
/* overloaded from RsAuthUpdatePage */
|
|
||||||
virtual void updateDisplay();
|
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
void anchorClicked (const QUrl &);
|
||||||
|
/** Create the context popup menu and it's submenus */
|
||||||
|
void forumListCustomPopupMenu( QPoint point );
|
||||||
|
void threadListCustomPopupMenu( QPoint point );
|
||||||
|
|
||||||
void anchorClicked (const QUrl &);
|
void newforum();
|
||||||
void insertThreads();
|
|
||||||
/** Create the context popup menu and it's submenus */
|
|
||||||
void forumListCustomPopupMenu( QPoint point );
|
|
||||||
void threadListCustomPopupMenu( QPoint point );
|
|
||||||
|
|
||||||
void newforum();
|
void changedForum( QTreeWidgetItem *curr, QTreeWidgetItem *prev );
|
||||||
|
void changedThread();
|
||||||
|
void clickedThread (QTreeWidgetItem *item, int column);
|
||||||
|
|
||||||
|
void replytomessage();
|
||||||
|
//void print();
|
||||||
|
//void printpreview();
|
||||||
|
|
||||||
void changedForum( QTreeWidgetItem *curr, QTreeWidgetItem *prev );
|
//void removemessage();
|
||||||
void changedThread();
|
void markMsgAsRead();
|
||||||
|
void markMsgAsReadAll();
|
||||||
|
void markMsgAsUnread();
|
||||||
|
void markMsgAsUnreadAll();
|
||||||
|
|
||||||
void replytomessage();
|
/* handle splitter */
|
||||||
//void print();
|
void togglethreadview();
|
||||||
//void printpreview();
|
|
||||||
|
|
||||||
void removemessage();
|
void createthread();
|
||||||
void markMsgAsRead();
|
void createmessage();
|
||||||
|
|
||||||
/* handle splitter */
|
void subscribeToForum();
|
||||||
void togglethreadview();
|
void unsubscribeToForum();
|
||||||
|
|
||||||
void showthread();
|
void showForumDetails();
|
||||||
void createmessage();
|
|
||||||
|
|
||||||
void subscribeToForum();
|
void previousMessage ();
|
||||||
void unsubscribeToForum();
|
void nextMessage ();
|
||||||
|
|
||||||
void showForumDetails();
|
void changedViewBox();
|
||||||
|
|
||||||
void previousMessage ();
|
void filterColumnChanged();
|
||||||
void nextMessage ();
|
void filterRegExpChanged();
|
||||||
|
void clearFilter();
|
||||||
void changedViewBox();
|
|
||||||
|
|
||||||
void filterColumnChanged();
|
|
||||||
void filterRegExpChanged();
|
|
||||||
void clearFilter();
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
void insertForums();
|
||||||
|
void insertThreads();
|
||||||
|
void insertPost();
|
||||||
|
|
||||||
void forumSubscribe(bool subscribe);
|
void loadForumEmoticons();
|
||||||
bool getCurrentMsg(std::string &cid, std::string &mid);
|
|
||||||
void FillForums(QTreeWidgetItem *Forum, QList<QTreeWidgetItem *> &ChildList);
|
|
||||||
void FillThreads(QList<QTreeWidgetItem *> &ThreadList);
|
|
||||||
void FillChildren(QTreeWidgetItem *Parent, QTreeWidgetItem *NewParent);
|
|
||||||
|
|
||||||
void processSettings(bool bLoad);
|
void forumSubscribe(bool subscribe);
|
||||||
void togglethreadview_internal();
|
void FillForums(QTreeWidgetItem *Forum, QList<QTreeWidgetItem *> &ChildList);
|
||||||
|
void FillThreads(QList<QTreeWidgetItem *> &ThreadList, bool bExpandNewMessages, std::list<QTreeWidgetItem*> &itemToExpand);
|
||||||
|
void FillChildren(QTreeWidgetItem *Parent, QTreeWidgetItem *NewParent, bool bExpandNewMessages, std::list<QTreeWidgetItem*> &itemToExpand);
|
||||||
|
|
||||||
void FilterItems();
|
int getSelectedMsgCount(QList<QTreeWidgetItem*> *pRows, QList<QTreeWidgetItem*> *pRowsRead, QList<QTreeWidgetItem*> *pRowsUnread);
|
||||||
bool FilterItem(QTreeWidgetItem *pItem, QString &sPattern, int nFilterColumn);
|
void setMsgAsReadUnread(QList<QTreeWidgetItem*> &Rows, bool bRead);
|
||||||
|
void markMsgAsReadUnread(bool bRead, bool bAll);
|
||||||
|
void CalculateIconsAndFonts(QTreeWidgetItem *pItem = NULL);
|
||||||
|
void CalculateIconsAndFonts(QTreeWidgetItem *pItem, bool &bHasReadChilddren, bool &bHasUnreadChilddren);
|
||||||
|
|
||||||
bool m_bProcessSettings;
|
void processSettings(bool bLoad);
|
||||||
|
void togglethreadview_internal();
|
||||||
|
|
||||||
QTreeWidgetItem *YourForums;
|
void FilterItems();
|
||||||
QTreeWidgetItem *SubscribedForums;
|
bool FilterItem(QTreeWidgetItem *pItem, QString &sPattern, int nFilterColumn);
|
||||||
QTreeWidgetItem *PopularForums;
|
|
||||||
QTreeWidgetItem *OtherForums;
|
|
||||||
|
|
||||||
std::string mCurrForumId;
|
bool m_bProcessSettings;
|
||||||
std::string mCurrThreadId;
|
|
||||||
std::string mCurrPostId;
|
|
||||||
|
|
||||||
QFont m_ForumNameFont;
|
QTreeWidgetItem *YourForums;
|
||||||
QFont m_ItemFont;
|
QTreeWidgetItem *SubscribedForums;
|
||||||
int m_LastViewType;
|
QTreeWidgetItem *PopularForums;
|
||||||
std::string m_LastForumID;
|
QTreeWidgetItem *OtherForums;
|
||||||
|
|
||||||
QHash<QString, QString> smileys;
|
std::string mCurrForumId;
|
||||||
|
std::string mCurrThreadId;
|
||||||
|
bool m_bIsForumSubscribed;
|
||||||
|
|
||||||
std::string fId;
|
QFont m_ForumNameFont;
|
||||||
std::string pId;
|
QFont m_ItemFont;
|
||||||
|
int m_LastViewType;
|
||||||
|
std::string m_LastForumID;
|
||||||
|
|
||||||
/** Qt Designer generated object */
|
QHash<QString, QString> smileys;
|
||||||
Ui::ForumsDialog ui;
|
|
||||||
|
/** Qt Designer generated object */
|
||||||
|
Ui::ForumsDialog ui;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -878,6 +878,15 @@ background: white;}</string>
|
|||||||
<string>Title</string>
|
<string>Title</string>
|
||||||
</property>
|
</property>
|
||||||
</column>
|
</column>
|
||||||
|
<column>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="images.qrc">
|
||||||
|
<normaloff>:/images/message-state-header.png</normaloff>:/images/message-state-header.png</iconset>
|
||||||
|
</property>
|
||||||
|
</column>
|
||||||
<column>
|
<column>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Date</string>
|
<string>Date</string>
|
||||||
|
@ -55,7 +55,7 @@
|
|||||||
#define COLUMN_COUNT 7
|
#define COLUMN_COUNT 7
|
||||||
#define COLUMN_ATTACHEMENTS 0
|
#define COLUMN_ATTACHEMENTS 0
|
||||||
#define COLUMN_SUBJECT 1
|
#define COLUMN_SUBJECT 1
|
||||||
#define COLUMN_READ 2
|
#define COLUMN_UNREAD 2
|
||||||
#define COLUMN_FROM 3
|
#define COLUMN_FROM 3
|
||||||
#define COLUMN_DATE 4
|
#define COLUMN_DATE 4
|
||||||
#define COLUMN_CONTENT 5
|
#define COLUMN_CONTENT 5
|
||||||
@ -63,9 +63,10 @@
|
|||||||
|
|
||||||
#define COLUMN_DATA 0 // column for storing the userdata like msgid and srcid
|
#define COLUMN_DATA 0 // column for storing the userdata like msgid and srcid
|
||||||
|
|
||||||
#define ROLE_SORT Qt::UserRole
|
#define ROLE_SORT Qt::UserRole
|
||||||
#define ROLE_MSGID Qt::UserRole + 1
|
#define ROLE_MSGID Qt::UserRole + 1
|
||||||
#define ROLE_SRCID Qt::UserRole + 2
|
#define ROLE_SRCID Qt::UserRole + 2
|
||||||
|
#define ROLE_UNREAD Qt::UserRole + 3
|
||||||
|
|
||||||
#define ROW_INBOX 0
|
#define ROW_INBOX 0
|
||||||
#define ROW_OUTBOX 1
|
#define ROW_OUTBOX 1
|
||||||
@ -93,10 +94,10 @@
|
|||||||
#define CONFIG_SECTION_TAG "Tag"
|
#define CONFIG_SECTION_TAG "Tag"
|
||||||
#define CONFIG_KEY_TAG "Tag"
|
#define CONFIG_KEY_TAG "Tag"
|
||||||
|
|
||||||
class MyItemDelegate : public QItemDelegate
|
class MessagesItemDelegate : public QItemDelegate
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MyItemDelegate(QObject *parent = 0) : QItemDelegate(parent)
|
MessagesItemDelegate(QObject *parent = 0) : QItemDelegate(parent)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -104,7 +105,7 @@ public:
|
|||||||
{
|
{
|
||||||
QStyleOptionViewItem ownOption (option);
|
QStyleOptionViewItem ownOption (option);
|
||||||
|
|
||||||
if (index.column() == COLUMN_READ) {
|
if (index.column() == COLUMN_UNREAD) {
|
||||||
ownOption.state &= ~QStyle::State_HasFocus; // don't show text and focus rectangle
|
ownOption.state &= ~QStyle::State_HasFocus; // don't show text and focus rectangle
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -115,7 +116,7 @@ public:
|
|||||||
{
|
{
|
||||||
QStyleOptionViewItem ownOption (option);
|
QStyleOptionViewItem ownOption (option);
|
||||||
|
|
||||||
if (index.column() == COLUMN_READ) {
|
if (index.column() == COLUMN_UNREAD) {
|
||||||
ownOption.state &= ~QStyle::State_HasFocus; // don't show text and focus rectangle
|
ownOption.state &= ~QStyle::State_HasFocus; // don't show text and focus rectangle
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -123,10 +124,10 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
class MyMenu : public QMenu
|
class MessagesMenu : public QMenu
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MyMenu(const QString &title, QWidget *parent) : QMenu (title, parent)
|
MessagesMenu(const QString &title, QWidget *parent) : QMenu (title, parent)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -287,7 +288,7 @@ MessagesDialog::MessagesDialog(QWidget *parent)
|
|||||||
MessagesModel = new QStandardItemModel(0, COLUMN_COUNT);
|
MessagesModel = new QStandardItemModel(0, COLUMN_COUNT);
|
||||||
MessagesModel->setHeaderData(COLUMN_ATTACHEMENTS, Qt::Horizontal, QIcon(":/images/attachment.png"), Qt::DecorationRole);
|
MessagesModel->setHeaderData(COLUMN_ATTACHEMENTS, Qt::Horizontal, QIcon(":/images/attachment.png"), Qt::DecorationRole);
|
||||||
MessagesModel->setHeaderData(COLUMN_SUBJECT, Qt::Horizontal, tr("Subject"));
|
MessagesModel->setHeaderData(COLUMN_SUBJECT, Qt::Horizontal, tr("Subject"));
|
||||||
MessagesModel->setHeaderData(COLUMN_READ, Qt::Horizontal, QIcon(":/images/message-mail-state-header.png"), Qt::DecorationRole);
|
MessagesModel->setHeaderData(COLUMN_UNREAD, Qt::Horizontal, QIcon(":/images/message-state-header.png"), Qt::DecorationRole);
|
||||||
MessagesModel->setHeaderData(COLUMN_FROM, Qt::Horizontal, tr("From"));
|
MessagesModel->setHeaderData(COLUMN_FROM, Qt::Horizontal, tr("From"));
|
||||||
MessagesModel->setHeaderData(COLUMN_DATE, Qt::Horizontal, tr("Date"));
|
MessagesModel->setHeaderData(COLUMN_DATE, Qt::Horizontal, tr("Date"));
|
||||||
MessagesModel->setHeaderData(COLUMN_TAGS, Qt::Horizontal, tr("Tags"));
|
MessagesModel->setHeaderData(COLUMN_TAGS, Qt::Horizontal, tr("Tags"));
|
||||||
@ -301,7 +302,7 @@ MessagesDialog::MessagesDialog(QWidget *parent)
|
|||||||
ui.messagestreeView->setModel(proxyModel);
|
ui.messagestreeView->setModel(proxyModel);
|
||||||
ui.messagestreeView->setSelectionBehavior(QTreeView::SelectRows);
|
ui.messagestreeView->setSelectionBehavior(QTreeView::SelectRows);
|
||||||
|
|
||||||
QItemDelegate *pDelegate = new MyItemDelegate(this);
|
QItemDelegate *pDelegate = new MessagesItemDelegate(this);
|
||||||
ui.messagestreeView->setItemDelegate(pDelegate);
|
ui.messagestreeView->setItemDelegate(pDelegate);
|
||||||
|
|
||||||
ui.messagestreeView->setRootIsDecorated(false);
|
ui.messagestreeView->setRootIsDecorated(false);
|
||||||
@ -326,7 +327,7 @@ MessagesDialog::MessagesDialog(QWidget *parent)
|
|||||||
QHeaderView * msgwheader = ui.messagestreeView->header () ;
|
QHeaderView * msgwheader = ui.messagestreeView->header () ;
|
||||||
msgwheader->resizeSection (COLUMN_ATTACHEMENTS, 24);
|
msgwheader->resizeSection (COLUMN_ATTACHEMENTS, 24);
|
||||||
msgwheader->resizeSection (COLUMN_SUBJECT, 250);
|
msgwheader->resizeSection (COLUMN_SUBJECT, 250);
|
||||||
msgwheader->resizeSection (COLUMN_READ, 16);
|
msgwheader->resizeSection (COLUMN_UNREAD, 16);
|
||||||
msgwheader->resizeSection (COLUMN_FROM, 140);
|
msgwheader->resizeSection (COLUMN_FROM, 140);
|
||||||
msgwheader->resizeSection (COLUMN_DATE, 140);
|
msgwheader->resizeSection (COLUMN_DATE, 140);
|
||||||
|
|
||||||
@ -372,8 +373,8 @@ MessagesDialog::MessagesDialog(QWidget *parent)
|
|||||||
/* Set header sizes for the fixed columns and resize modes, must be set after processSettings */
|
/* Set header sizes for the fixed columns and resize modes, must be set after processSettings */
|
||||||
msgwheader->setResizeMode (COLUMN_ATTACHEMENTS, QHeaderView::Fixed);
|
msgwheader->setResizeMode (COLUMN_ATTACHEMENTS, QHeaderView::Fixed);
|
||||||
msgwheader->setResizeMode (COLUMN_DATE, QHeaderView::Interactive);
|
msgwheader->setResizeMode (COLUMN_DATE, QHeaderView::Interactive);
|
||||||
msgwheader->setResizeMode (COLUMN_READ, QHeaderView::Fixed);
|
msgwheader->setResizeMode (COLUMN_UNREAD, QHeaderView::Fixed);
|
||||||
msgwheader->resizeSection (COLUMN_READ, 24);
|
msgwheader->resizeSection (COLUMN_UNREAD, 24);
|
||||||
|
|
||||||
// fill folder list
|
// fill folder list
|
||||||
updateMessageSummaryList();
|
updateMessageSummaryList();
|
||||||
@ -622,7 +623,7 @@ void MessagesDialog::fillTags()
|
|||||||
getTagItems(TagItems);
|
getTagItems(TagItems);
|
||||||
|
|
||||||
// create tag menu
|
// create tag menu
|
||||||
QMenu *pMenu = new MyMenu (tr("Tag"), this);
|
QMenu *pMenu = new MessagesMenu (tr("Tag"), this);
|
||||||
connect(pMenu, SIGNAL(triggered (QAction*)), this, SLOT(tagTriggered(QAction*)));
|
connect(pMenu, SIGNAL(triggered (QAction*)), this, SLOT(tagTriggered(QAction*)));
|
||||||
connect(pMenu, SIGNAL(aboutToShow()), this, SLOT(tagAboutToShow()));
|
connect(pMenu, SIGNAL(aboutToShow()), this, SLOT(tagAboutToShow()));
|
||||||
|
|
||||||
@ -735,7 +736,7 @@ int MessagesDialog::getSelectedMsgCount (QList<int> *pRows, QList<int> *pRowsRea
|
|||||||
|
|
||||||
if (pRows) pRows->append(mappedRow);
|
if (pRows) pRows->append(mappedRow);
|
||||||
|
|
||||||
if (MessagesModel->item(mappedRow, COLUMN_SUBJECT)->font().bold()) {
|
if (MessagesModel->item(mappedRow, COLUMN_DATA)->data(ROLE_UNREAD).toBool()) {
|
||||||
if (pRowsUnread) pRowsUnread->append(mappedRow);
|
if (pRowsUnread) pRowsUnread->append(mappedRow);
|
||||||
} else {
|
} else {
|
||||||
if (pRowsRead) pRowsRead->append(mappedRow);
|
if (pRowsRead) pRowsRead->append(mappedRow);
|
||||||
@ -750,8 +751,8 @@ int MessagesDialog::getSelectedMsgCount (QList<int> *pRows, QList<int> *pRowsRea
|
|||||||
bool MessagesDialog::isMessageRead(int nRow)
|
bool MessagesDialog::isMessageRead(int nRow)
|
||||||
{
|
{
|
||||||
QStandardItem *item;
|
QStandardItem *item;
|
||||||
item = MessagesModel->item(nRow,COLUMN_SUBJECT);
|
item = MessagesModel->item(nRow,COLUMN_DATA);
|
||||||
return !item->font().bold();
|
return !item->data(ROLE_UNREAD).toBool();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessagesDialog::messageslistWidgetCostumPopupMenu( QPoint point )
|
void MessagesDialog::messageslistWidgetCostumPopupMenu( QPoint point )
|
||||||
@ -1226,6 +1227,7 @@ static void InitIconAndFont(RSettings *pConfig, QStandardItem *pItem [COLUMN_COU
|
|||||||
} else {
|
} else {
|
||||||
pItem[COLUMN_SUBJECT]->setIcon(QIcon(":/images/message-mail.png"));
|
pItem[COLUMN_SUBJECT]->setIcon(QIcon(":/images/message-mail.png"));
|
||||||
}
|
}
|
||||||
|
pItem[COLUMN_SUBJECT]->setIcon(QIcon(":/images/message-state-new.png"));
|
||||||
} else {
|
} else {
|
||||||
// Change Message icon when Subject is Re: or Fwd:
|
// Change Message icon when Subject is Re: or Fwd:
|
||||||
if (sText.startsWith("Re:", Qt::CaseInsensitive)) {
|
if (sText.startsWith("Re:", Qt::CaseInsensitive)) {
|
||||||
@ -1235,6 +1237,7 @@ static void InitIconAndFont(RSettings *pConfig, QStandardItem *pItem [COLUMN_COU
|
|||||||
} else {
|
} else {
|
||||||
pItem[COLUMN_SUBJECT]->setIcon(QIcon(":/images/message-mail-read.png"));
|
pItem[COLUMN_SUBJECT]->setIcon(QIcon(":/images/message-mail-read.png"));
|
||||||
}
|
}
|
||||||
|
pItem[COLUMN_SUBJECT]->setIcon(QIcon());
|
||||||
}
|
}
|
||||||
|
|
||||||
// show the locale "New" state
|
// show the locale "New" state
|
||||||
@ -1245,10 +1248,11 @@ static void InitIconAndFont(RSettings *pConfig, QStandardItem *pItem [COLUMN_COU
|
|||||||
pConfig->endGroup();
|
pConfig->endGroup();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// set icon
|
||||||
if (bNew) {
|
if (bNew) {
|
||||||
pItem[COLUMN_READ]->setIcon(QIcon(":/images/message-mail-state-unread.png"));
|
pItem[COLUMN_UNREAD]->setIcon(QIcon(":/images/message-state-unread.png"));
|
||||||
} else {
|
} else {
|
||||||
pItem[COLUMN_READ]->setIcon(QIcon(":/images/message-mail-state-read.png"));
|
pItem[COLUMN_UNREAD]->setIcon(QIcon(":/images/message-state-read.png"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// set font
|
// set font
|
||||||
@ -1257,6 +1261,8 @@ static void InitIconAndFont(RSettings *pConfig, QStandardItem *pItem [COLUMN_COU
|
|||||||
qf.setBold(bNew);
|
qf.setBold(bNew);
|
||||||
pItem[i]->setFont(qf);
|
pItem[i]->setFont(qf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pItem[COLUMN_DATA]->setData(bNew, ROLE_UNREAD);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessagesDialog::insertMessages()
|
void MessagesDialog::insertMessages()
|
||||||
@ -1596,7 +1602,7 @@ void MessagesDialog::insertMessages()
|
|||||||
|
|
||||||
ui.messagestreeView->showColumn(COLUMN_ATTACHEMENTS);
|
ui.messagestreeView->showColumn(COLUMN_ATTACHEMENTS);
|
||||||
ui.messagestreeView->showColumn(COLUMN_SUBJECT);
|
ui.messagestreeView->showColumn(COLUMN_SUBJECT);
|
||||||
ui.messagestreeView->showColumn(COLUMN_READ);
|
ui.messagestreeView->showColumn(COLUMN_UNREAD);
|
||||||
ui.messagestreeView->showColumn(COLUMN_FROM);
|
ui.messagestreeView->showColumn(COLUMN_FROM);
|
||||||
ui.messagestreeView->showColumn(COLUMN_DATE);
|
ui.messagestreeView->showColumn(COLUMN_DATE);
|
||||||
ui.messagestreeView->showColumn(COLUMN_TAGS);
|
ui.messagestreeView->showColumn(COLUMN_TAGS);
|
||||||
@ -1620,7 +1626,7 @@ void MessagesDialog::clicked(const QModelIndex &index )
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (index.column() == COLUMN_READ) {
|
if (index.column() == COLUMN_UNREAD) {
|
||||||
int mappedRow = proxyModel->mapToSource(index).row();
|
int mappedRow = proxyModel->mapToSource(index).row();
|
||||||
|
|
||||||
QList<int> Rows;
|
QList<int> Rows;
|
||||||
|
@ -172,9 +172,9 @@ void CreateForumMsg::createMsg()
|
|||||||
if ((msgInfo.msg == L"") && (msgInfo.title == L""))
|
if ((msgInfo.msg == L"") && (msgInfo.title == L""))
|
||||||
return; /* do nothing */
|
return; /* do nothing */
|
||||||
|
|
||||||
rsForums->ForumMessageSend(msgInfo);
|
if (rsForums->ForumMessageSend(msgInfo) == true) {
|
||||||
|
close();
|
||||||
close();
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CreateForumMsg::closeEvent (QCloseEvent * event)
|
void CreateForumMsg::closeEvent (QCloseEvent * event)
|
||||||
|
@ -263,9 +263,10 @@
|
|||||||
<file>images/message-mail-forwarded-read.png</file>
|
<file>images/message-mail-forwarded-read.png</file>
|
||||||
<file>images/message-mail-replied.png</file>
|
<file>images/message-mail-replied.png</file>
|
||||||
<file>images/message-mail-forwarded.png</file>
|
<file>images/message-mail-forwarded.png</file>
|
||||||
<file>images/message-mail-state-read.png</file>
|
<file>images/message-state-read.png</file>
|
||||||
<file>images/message-mail-state-unread.png</file>
|
<file>images/message-state-unread.png</file>
|
||||||
<file>images/message-mail-state-header.png</file>
|
<file>images/message-state-header.png</file>
|
||||||
|
<file>images/message-state-new.png</file>
|
||||||
<file>images/message-news.png</file>
|
<file>images/message-news.png</file>
|
||||||
<file>images/message.png</file>
|
<file>images/message.png</file>
|
||||||
<file>images/messages_new.png</file>
|
<file>images/messages_new.png</file>
|
||||||
|
Before Width: | Height: | Size: 383 B After Width: | Height: | Size: 383 B |
BIN
retroshare-gui/src/gui/images/message-state-new.png
Normal file
After Width: | Height: | Size: 371 B |
Before Width: | Height: | Size: 208 B After Width: | Height: | Size: 208 B |
Before Width: | Height: | Size: 302 B After Width: | Height: | Size: 302 B |
62
retroshare-gui/src/gui/settings/ForumPage.cpp
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
/****************************************************************
|
||||||
|
* RetroShare is distributed under the following license:
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006, crypton
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||||
|
* Boston, MA 02110-1301, USA.
|
||||||
|
****************************************************************/
|
||||||
|
|
||||||
|
#include "ForumPage.h"
|
||||||
|
#include "rshare.h"
|
||||||
|
#include "rsharesettings.h"
|
||||||
|
|
||||||
|
#include "../MainWindow.h"
|
||||||
|
#include "../ForumsDialog.h"
|
||||||
|
|
||||||
|
ForumPage::ForumPage(QWidget * parent, Qt::WFlags flags)
|
||||||
|
: ConfigPage(parent, flags)
|
||||||
|
{
|
||||||
|
ui.setupUi(this);
|
||||||
|
setAttribute(Qt::WA_QuitOnClose, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
ForumPage::~ForumPage()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ForumPage::closeEvent (QCloseEvent * event)
|
||||||
|
{
|
||||||
|
QWidget::closeEvent(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Saves the changes on this page */
|
||||||
|
bool
|
||||||
|
ForumPage::save(QString &errmsg)
|
||||||
|
{
|
||||||
|
Settings->setForumMsgSetToReadOnActivate(ui.setMsgToReadOnActivate->isChecked());
|
||||||
|
Settings->setExpandNewMessages(ui.expandNewMessages->isChecked());
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Loads the settings for this page */
|
||||||
|
void
|
||||||
|
ForumPage::load()
|
||||||
|
{
|
||||||
|
ui.setMsgToReadOnActivate->setChecked(Settings->getForumMsgSetToReadOnActivate());
|
||||||
|
ui.expandNewMessages->setChecked(Settings->getExpandNewMessages());
|
||||||
|
}
|
52
retroshare-gui/src/gui/settings/ForumPage.h
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
/****************************************************************
|
||||||
|
* RetroShare is distributed under the following license:
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006, crypton
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||||
|
* Boston, MA 02110-1301, USA.
|
||||||
|
****************************************************************/
|
||||||
|
|
||||||
|
#ifndef FORUMPAGE_H
|
||||||
|
#define FORUMPAGE_H
|
||||||
|
|
||||||
|
#include <QtGui/QWidget>
|
||||||
|
|
||||||
|
#include "configpage.h"
|
||||||
|
#include "ui_ForumPage.h"
|
||||||
|
|
||||||
|
#include "NewTag.h"
|
||||||
|
|
||||||
|
class ForumPage : public ConfigPage
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
ForumPage(QWidget * parent = 0, Qt::WFlags flags = 0);
|
||||||
|
~ForumPage();
|
||||||
|
|
||||||
|
/** Saves the changes on this page */
|
||||||
|
bool save(QString &errmsg);
|
||||||
|
/** Loads the settings for this page */
|
||||||
|
void load();
|
||||||
|
|
||||||
|
private:
|
||||||
|
void closeEvent (QCloseEvent * event);
|
||||||
|
|
||||||
|
Ui::ForumPage ui;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // !FORUMPAGE_H
|
||||||
|
|
543
retroshare-gui/src/gui/settings/ForumPage.ui
Normal file
@ -0,0 +1,543 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>ForumPage</class>
|
||||||
|
<widget class="QWidget" name="ForumPage">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>423</width>
|
||||||
|
<height>340</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="palette">
|
||||||
|
<palette>
|
||||||
|
<active>
|
||||||
|
<colorrole role="WindowText">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>0</red>
|
||||||
|
<green>0</green>
|
||||||
|
<blue>0</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Button">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>208</red>
|
||||||
|
<green>208</green>
|
||||||
|
<blue>208</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Light">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>255</red>
|
||||||
|
<green>255</green>
|
||||||
|
<blue>255</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Midlight">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>247</red>
|
||||||
|
<green>247</green>
|
||||||
|
<blue>247</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Dark">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>104</red>
|
||||||
|
<green>104</green>
|
||||||
|
<blue>104</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Mid">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>139</red>
|
||||||
|
<green>139</green>
|
||||||
|
<blue>139</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Text">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>0</red>
|
||||||
|
<green>0</green>
|
||||||
|
<blue>0</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="BrightText">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>255</red>
|
||||||
|
<green>255</green>
|
||||||
|
<blue>255</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="ButtonText">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>0</red>
|
||||||
|
<green>0</green>
|
||||||
|
<blue>0</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Base">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>255</red>
|
||||||
|
<green>255</green>
|
||||||
|
<blue>255</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Window">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>240</red>
|
||||||
|
<green>240</green>
|
||||||
|
<blue>240</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Shadow">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>0</red>
|
||||||
|
<green>0</green>
|
||||||
|
<blue>0</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Highlight">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>0</red>
|
||||||
|
<green>0</green>
|
||||||
|
<blue>128</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="HighlightedText">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>255</red>
|
||||||
|
<green>255</green>
|
||||||
|
<blue>255</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Link">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>0</red>
|
||||||
|
<green>0</green>
|
||||||
|
<blue>255</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="LinkVisited">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>255</red>
|
||||||
|
<green>0</green>
|
||||||
|
<blue>255</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="AlternateBase">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>231</red>
|
||||||
|
<green>231</green>
|
||||||
|
<blue>231</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
</active>
|
||||||
|
<inactive>
|
||||||
|
<colorrole role="WindowText">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>0</red>
|
||||||
|
<green>0</green>
|
||||||
|
<blue>0</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Button">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>208</red>
|
||||||
|
<green>208</green>
|
||||||
|
<blue>208</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Light">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>255</red>
|
||||||
|
<green>255</green>
|
||||||
|
<blue>255</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Midlight">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>247</red>
|
||||||
|
<green>247</green>
|
||||||
|
<blue>247</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Dark">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>104</red>
|
||||||
|
<green>104</green>
|
||||||
|
<blue>104</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Mid">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>139</red>
|
||||||
|
<green>139</green>
|
||||||
|
<blue>139</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Text">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>0</red>
|
||||||
|
<green>0</green>
|
||||||
|
<blue>0</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="BrightText">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>255</red>
|
||||||
|
<green>255</green>
|
||||||
|
<blue>255</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="ButtonText">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>0</red>
|
||||||
|
<green>0</green>
|
||||||
|
<blue>0</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Base">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>255</red>
|
||||||
|
<green>255</green>
|
||||||
|
<blue>255</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Window">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>240</red>
|
||||||
|
<green>240</green>
|
||||||
|
<blue>240</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Shadow">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>0</red>
|
||||||
|
<green>0</green>
|
||||||
|
<blue>0</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Highlight">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>192</red>
|
||||||
|
<green>192</green>
|
||||||
|
<blue>192</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="HighlightedText">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>0</red>
|
||||||
|
<green>0</green>
|
||||||
|
<blue>0</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Link">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>0</red>
|
||||||
|
<green>0</green>
|
||||||
|
<blue>255</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="LinkVisited">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>255</red>
|
||||||
|
<green>0</green>
|
||||||
|
<blue>255</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="AlternateBase">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>231</red>
|
||||||
|
<green>231</green>
|
||||||
|
<blue>231</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
</inactive>
|
||||||
|
<disabled>
|
||||||
|
<colorrole role="WindowText">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>104</red>
|
||||||
|
<green>104</green>
|
||||||
|
<blue>104</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Button">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>208</red>
|
||||||
|
<green>208</green>
|
||||||
|
<blue>208</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Light">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>255</red>
|
||||||
|
<green>255</green>
|
||||||
|
<blue>255</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Midlight">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>247</red>
|
||||||
|
<green>247</green>
|
||||||
|
<blue>247</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Dark">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>104</red>
|
||||||
|
<green>104</green>
|
||||||
|
<blue>104</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Mid">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>139</red>
|
||||||
|
<green>139</green>
|
||||||
|
<blue>139</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Text">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>104</red>
|
||||||
|
<green>104</green>
|
||||||
|
<blue>104</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="BrightText">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>255</red>
|
||||||
|
<green>255</green>
|
||||||
|
<blue>255</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="ButtonText">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>104</red>
|
||||||
|
<green>104</green>
|
||||||
|
<blue>104</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Base">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>240</red>
|
||||||
|
<green>240</green>
|
||||||
|
<blue>240</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Window">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>240</red>
|
||||||
|
<green>240</green>
|
||||||
|
<blue>240</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Shadow">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>0</red>
|
||||||
|
<green>0</green>
|
||||||
|
<blue>0</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Highlight">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>0</red>
|
||||||
|
<green>0</green>
|
||||||
|
<blue>128</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="HighlightedText">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>255</red>
|
||||||
|
<green>255</green>
|
||||||
|
<blue>255</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Link">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>0</red>
|
||||||
|
<green>0</green>
|
||||||
|
<blue>255</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="LinkVisited">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>255</red>
|
||||||
|
<green>0</green>
|
||||||
|
<blue>255</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="AlternateBase">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>231</red>
|
||||||
|
<green>231</green>
|
||||||
|
<blue>231</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
</disabled>
|
||||||
|
</palette>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<family>Arial</family>
|
||||||
|
<pointsize>8</pointsize>
|
||||||
|
<weight>50</weight>
|
||||||
|
<italic>false</italic>
|
||||||
|
<bold>false</bold>
|
||||||
|
<underline>false</underline>
|
||||||
|
<strikeout>false</strikeout>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="contextMenuPolicy">
|
||||||
|
<enum>Qt::NoContextMenu</enum>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_3">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QGroupBox" name="groupBox">
|
||||||
|
<property name="title">
|
||||||
|
<string>Misc</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_2">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QCheckBox" name="setMsgToReadOnActivate">
|
||||||
|
<property name="text">
|
||||||
|
<string>Set message to read on activate</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QCheckBox" name="expandNewMessages">
|
||||||
|
<property name="text">
|
||||||
|
<string>Expand new messages</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<spacer name="verticalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
@ -33,6 +33,7 @@
|
|||||||
#include "TransferPage.h"
|
#include "TransferPage.h"
|
||||||
#include "ChatPage.h"
|
#include "ChatPage.h"
|
||||||
#include "MessagePage.h"
|
#include "MessagePage.h"
|
||||||
|
#include "ForumPage.h"
|
||||||
|
|
||||||
#define IMAGE_GENERAL ":/images/kcmsystem24.png"
|
#define IMAGE_GENERAL ":/images/kcmsystem24.png"
|
||||||
|
|
||||||
@ -109,6 +110,7 @@ RSettingsWin::initStackedWidget()
|
|||||||
stackedWidget->addWidget(new NotifyPage());
|
stackedWidget->addWidget(new NotifyPage());
|
||||||
stackedWidget->addWidget(new CryptoPage());
|
stackedWidget->addWidget(new CryptoPage());
|
||||||
stackedWidget->addWidget(new MessagePage());
|
stackedWidget->addWidget(new MessagePage());
|
||||||
|
stackedWidget->addWidget(new ForumPage());
|
||||||
stackedWidget->addWidget(new ChatPage());
|
stackedWidget->addWidget(new ChatPage());
|
||||||
stackedWidget->addWidget(new AppearancePage());
|
stackedWidget->addWidget(new AppearancePage());
|
||||||
stackedWidget->addWidget(new SoundPage() );
|
stackedWidget->addWidget(new SoundPage() );
|
||||||
@ -153,6 +155,10 @@ RSettingsWin::setNewPage(int page)
|
|||||||
text = tr("Message");
|
text = tr("Message");
|
||||||
pageicon->setPixmap(QPixmap(":/images/evolution.png"));
|
pageicon->setPixmap(QPixmap(":/images/evolution.png"));
|
||||||
break;
|
break;
|
||||||
|
case Forum:
|
||||||
|
text = tr("Forum");
|
||||||
|
pageicon->setPixmap(QPixmap(":/images/konversation.png"));
|
||||||
|
break;
|
||||||
case Chat:
|
case Chat:
|
||||||
text = tr("Chat");
|
text = tr("Chat");
|
||||||
pageicon->setPixmap(QPixmap(":/images/chat_24.png"));
|
pageicon->setPixmap(QPixmap(":/images/chat_24.png"));
|
||||||
|
@ -32,7 +32,7 @@ class RSettingsWin: public QDialog, private Ui::Settings
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
enum PageType { General = 0, Server, Transfer,
|
enum PageType { General = 0, Server, Transfer,
|
||||||
Directories, Notify, Security, Message, Chat, Appearance, Sound, Fileassociations };
|
Directories, Notify, Security, Message, Forum, Chat, Appearance, Sound, Fileassociations };
|
||||||
|
|
||||||
static void showYourself(QWidget *parent);
|
static void showYourself(QWidget *parent);
|
||||||
static void postModDirectories(bool update_local);
|
static void postModDirectories(bool update_local);
|
||||||
|
@ -378,6 +378,27 @@ void RshareSettings::setMsgSetToReadOnActivate (bool bValue)
|
|||||||
setValueToGroup("MessageDialog", "SetMsgToReadOnActivate", bValue);
|
setValueToGroup("MessageDialog", "SetMsgToReadOnActivate", bValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Forums */
|
||||||
|
bool RshareSettings::getForumMsgSetToReadOnActivate ()
|
||||||
|
{
|
||||||
|
return valueFromGroup("ForumDialog", "SetMsgToReadOnActivate", true).toBool();
|
||||||
|
}
|
||||||
|
|
||||||
|
void RshareSettings::setForumMsgSetToReadOnActivate (bool bValue)
|
||||||
|
{
|
||||||
|
setValueToGroup("ForumDialog", "SetMsgToReadOnActivate", bValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool RshareSettings::getExpandNewMessages()
|
||||||
|
{
|
||||||
|
return valueFromGroup("ForumDialog", "ExpandNewMessages", true).toBool();
|
||||||
|
}
|
||||||
|
|
||||||
|
void RshareSettings::setExpandNewMessages (bool bValue)
|
||||||
|
{
|
||||||
|
setValueToGroup("ForumDialog", "ExpandNewMessages", bValue);
|
||||||
|
}
|
||||||
|
|
||||||
/* time before idle */
|
/* time before idle */
|
||||||
uint RshareSettings::getMaxTimeBeforeIdle()
|
uint RshareSettings::getMaxTimeBeforeIdle()
|
||||||
{
|
{
|
||||||
|
@ -133,6 +133,12 @@ public:
|
|||||||
bool getMsgSetToReadOnActivate ();
|
bool getMsgSetToReadOnActivate ();
|
||||||
void setMsgSetToReadOnActivate (bool bValue);
|
void setMsgSetToReadOnActivate (bool bValue);
|
||||||
|
|
||||||
|
/* Forums */
|
||||||
|
bool getForumMsgSetToReadOnActivate ();
|
||||||
|
void setForumMsgSetToReadOnActivate (bool bValue);
|
||||||
|
bool getExpandNewMessages ();
|
||||||
|
void setExpandNewMessages (bool bValue);
|
||||||
|
|
||||||
/* time before idle */
|
/* time before idle */
|
||||||
uint getMaxTimeBeforeIdle();
|
uint getMaxTimeBeforeIdle();
|
||||||
void setMaxTimeBeforeIdle(uint nValue);
|
void setMaxTimeBeforeIdle(uint nValue);
|
||||||
|
@ -140,6 +140,15 @@
|
|||||||
<normaloff>:/images/evolution.png</normaloff>:/images/evolution.png</iconset>
|
<normaloff>:/images/evolution.png</normaloff>:/images/evolution.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Forum</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../images.qrc">
|
||||||
|
<normaloff>:/images/konversation.png</normaloff>:/images/konversation.png</iconset>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Chat</string>
|
<string>Chat</string>
|
||||||
|