2010-05-21 09:54:40 -04:00
|
|
|
/****************************************************************
|
|
|
|
* 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 "MessagePage.h"
|
|
|
|
#include "rshare.h"
|
2010-05-23 13:21:30 -04:00
|
|
|
#include "rsharesettings.h"
|
|
|
|
|
2010-05-27 15:48:52 -04:00
|
|
|
#include "../MainWindow.h"
|
|
|
|
#include "../MessagesDialog.h"
|
|
|
|
|
2010-05-21 09:54:40 -04:00
|
|
|
MessagePage::MessagePage(QWidget * parent, Qt::WFlags flags)
|
|
|
|
: ConfigPage(parent, flags)
|
|
|
|
{
|
|
|
|
ui.setupUi(this);
|
|
|
|
setAttribute(Qt::WA_QuitOnClose, false);
|
2010-05-27 15:48:52 -04:00
|
|
|
|
|
|
|
connect (ui.addpushButton, SIGNAL(clicked(bool)), this, SLOT (addTag()));
|
|
|
|
connect (ui.editpushButton, SIGNAL(clicked(bool)), this, SLOT (editTag()));
|
|
|
|
connect (ui.deletepushButton, SIGNAL(clicked(bool)), this, SLOT (deleteTag()));
|
|
|
|
|
|
|
|
connect (ui.tags_listWidget, SIGNAL(currentRowChanged(int)), this, SLOT(currentRowChangedTag(int)));
|
|
|
|
|
|
|
|
ui.editpushButton->setEnabled(false);
|
|
|
|
ui.deletepushButton->setEnabled(false);
|
2010-05-21 09:54:40 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
MessagePage::~MessagePage()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
MessagePage::closeEvent (QCloseEvent * event)
|
|
|
|
{
|
|
|
|
QWidget::closeEvent(event);
|
|
|
|
}
|
|
|
|
|
|
|
|
/** Saves the changes on this page */
|
|
|
|
bool
|
|
|
|
MessagePage::save(QString &errmsg)
|
|
|
|
{
|
2010-05-23 13:21:30 -04:00
|
|
|
Settings->setMsgSetToReadOnActivate(ui.setMsgToReadOnActivate->isChecked());
|
|
|
|
|
2010-05-27 15:48:52 -04:00
|
|
|
#ifdef STATIC_MSGID
|
|
|
|
MessagesDialog *pPage = (MessagesDialog*) MainWindow::getPage (MainWindow::Messages);
|
|
|
|
if (pPage) {
|
|
|
|
pPage->setTagItems (m_TagItems);
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2010-05-23 13:21:30 -04:00
|
|
|
return true;
|
2010-05-21 09:54:40 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
/** Loads the settings for this page */
|
|
|
|
void
|
|
|
|
MessagePage::load()
|
|
|
|
{
|
2010-05-23 13:21:30 -04:00
|
|
|
ui.setMsgToReadOnActivate->setChecked(Settings->getMsgSetToReadOnActivate());
|
2010-05-27 15:48:52 -04:00
|
|
|
|
|
|
|
#ifdef STATIC_MSGID
|
|
|
|
MessagesDialog *pPage = (MessagesDialog*) MainWindow::getPage (MainWindow::Messages);
|
|
|
|
if (pPage) {
|
|
|
|
pPage->getTagItems (m_TagItems);
|
|
|
|
|
|
|
|
// fill items
|
|
|
|
std::map<int, TagItem>::iterator Item;
|
|
|
|
for (Item = m_TagItems.begin(); Item != m_TagItems.end(); Item++) {
|
|
|
|
if (Item->second._delete) {
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
|
|
|
|
QListWidgetItem *pItemWidget = new QListWidgetItem(Item->second.text, ui.tags_listWidget);
|
|
|
|
pItemWidget->setTextColor(QColor(Item->second.color));
|
|
|
|
pItemWidget->setData(Qt::UserRole, Item->first);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (m_TagItems.size()) {
|
|
|
|
ui.tags_listWidget->setCurrentItem(ui.tags_listWidget->item(0));
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
ui.tags_listWidget->setEnabled(false);
|
|
|
|
ui.addpushButton->setEnabled(false);
|
|
|
|
ui.editpushButton->setEnabled(false);
|
|
|
|
ui.deletepushButton->setEnabled(false);
|
|
|
|
}
|
|
|
|
#else
|
|
|
|
ui.tags_listWidget->setEnabled(false);
|
|
|
|
ui.addpushButton->setEnabled(false);
|
|
|
|
ui.editpushButton->setEnabled(false);
|
|
|
|
ui.deletepushButton->setEnabled(false);
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
|
|
|
|
void MessagePage::addTag()
|
|
|
|
{
|
|
|
|
NewTag Tag(m_TagItems);
|
|
|
|
if (Tag.exec() == QDialog::Accepted && Tag.m_nId) {
|
|
|
|
TagItem &Item = m_TagItems [Tag.m_nId];
|
|
|
|
QListWidgetItem *pItemWidget = new QListWidgetItem(Item.text, ui.tags_listWidget);
|
|
|
|
pItemWidget->setTextColor(QColor(Item.color));
|
|
|
|
pItemWidget->setData(Qt::UserRole, Tag.m_nId);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void MessagePage::editTag()
|
|
|
|
{
|
|
|
|
QListWidgetItem *pItemWidget = ui.tags_listWidget->currentItem();
|
|
|
|
if (pItemWidget == NULL) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
int nId = pItemWidget->data(Qt::UserRole).toInt();
|
|
|
|
if (nId == 0) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
NewTag Tag(m_TagItems, nId);
|
2010-05-27 19:21:18 -04:00
|
|
|
Tag.setWindowTitle(tr("Edit Tag"));
|
2010-05-27 15:48:52 -04:00
|
|
|
if (Tag.exec() == QDialog::Accepted && Tag.m_nId) {
|
|
|
|
TagItem &Item = m_TagItems [Tag.m_nId];
|
|
|
|
pItemWidget->setText(Item.text);
|
|
|
|
pItemWidget->setTextColor(QColor(Item.color));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void MessagePage::deleteTag()
|
|
|
|
{
|
|
|
|
QListWidgetItem *pItemWidget = ui.tags_listWidget->currentItem();
|
|
|
|
if (pItemWidget == NULL) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
int nId = pItemWidget->data(Qt::UserRole).toInt();
|
|
|
|
if (nId == 0) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (nId < 0) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
TagItem &Item = m_TagItems [nId];
|
|
|
|
Item._delete = true;
|
|
|
|
|
|
|
|
ui.tags_listWidget->removeItemWidget(pItemWidget);
|
|
|
|
delete (pItemWidget);
|
2010-05-21 09:54:40 -04:00
|
|
|
}
|
|
|
|
|
2010-05-27 15:48:52 -04:00
|
|
|
void MessagePage::currentRowChangedTag(int row)
|
|
|
|
{
|
|
|
|
QListWidgetItem *pItemWidget = ui.tags_listWidget->item(row);
|
|
|
|
|
|
|
|
bool bEditEnable = false;
|
|
|
|
bool bDeleteEnable = false;
|
|
|
|
|
|
|
|
if (pItemWidget) {
|
|
|
|
bEditEnable = true;
|
|
|
|
|
|
|
|
int nId = pItemWidget->data(Qt::UserRole).toInt();
|
|
|
|
|
|
|
|
if (nId > 0) {
|
|
|
|
bDeleteEnable = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
ui.editpushButton->setEnabled(bEditEnable);
|
|
|
|
ui.deletepushButton->setEnabled(bDeleteEnable);
|
|
|
|
}
|