mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-01-12 16:09:37 -05:00
These damn new files.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3444 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
1f8017d06a
commit
2011d897ee
51
retroshare-gui/src/gui/im_history/IMHistoryItemDelegate.cpp
Normal file
51
retroshare-gui/src/gui/im_history/IMHistoryItemDelegate.cpp
Normal file
@ -0,0 +1,51 @@
|
||||
/****************************************************************
|
||||
* RetroShare is distributed under the following license:
|
||||
*
|
||||
* Copyright (C) 2009 The RetroShare Team
|
||||
*
|
||||
* 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 <qvariant.h>
|
||||
#include <QPainter>
|
||||
|
||||
#include "IMHistoryItemDelegate.h"
|
||||
#include "IMHistoryItemPainter.h"
|
||||
|
||||
IMHistoryItemDelegate::IMHistoryItemDelegate(QWidget *parent)
|
||||
: QItemDelegate(parent)
|
||||
{
|
||||
}
|
||||
|
||||
void IMHistoryItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
|
||||
{
|
||||
if (qVariantCanConvert<IMHistoryItemPainter>(index.data())) {
|
||||
IMHistoryItemPainter itemPainter = qVariantValue<IMHistoryItemPainter>(index.data());
|
||||
itemPainter.paint(painter, option, IMHistoryItemPainter::ReadOnly);
|
||||
} else {
|
||||
QItemDelegate::paint(painter, option, index);
|
||||
}
|
||||
}
|
||||
|
||||
QSize IMHistoryItemDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
|
||||
{
|
||||
if (qVariantCanConvert<IMHistoryItemPainter>(index.data())) {
|
||||
IMHistoryItemPainter painter = qVariantValue<IMHistoryItemPainter>(index.data());
|
||||
return painter.sizeHint();
|
||||
} else {
|
||||
return QItemDelegate::sizeHint(option, index);
|
||||
}
|
||||
}
|
38
retroshare-gui/src/gui/im_history/IMHistoryItemDelegate.h
Normal file
38
retroshare-gui/src/gui/im_history/IMHistoryItemDelegate.h
Normal file
@ -0,0 +1,38 @@
|
||||
/****************************************************************
|
||||
* RetroShare is distributed under the following license:
|
||||
*
|
||||
* Copyright (C) 2009 The RetroShare Team
|
||||
*
|
||||
* 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 _IMHISTORYITEMDELEGATE_H_
|
||||
#define _IMHISTORYITEMDELEGATE_H_
|
||||
|
||||
#include <QItemDelegate>
|
||||
|
||||
class IMHistoryItemDelegate : public QItemDelegate
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
IMHistoryItemDelegate(QWidget *parent = 0);
|
||||
|
||||
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
|
||||
QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const;
|
||||
};
|
||||
|
||||
#endif // _IMHISTORYITEMDELEGATE_H_
|
64
retroshare-gui/src/gui/im_history/IMHistoryItemPainter.cpp
Normal file
64
retroshare-gui/src/gui/im_history/IMHistoryItemPainter.cpp
Normal file
@ -0,0 +1,64 @@
|
||||
/****************************************************************
|
||||
* RetroShare is distributed under the following license:
|
||||
*
|
||||
* Copyright (C) 2009 The RetroShare Team
|
||||
*
|
||||
* 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 <QTextDocument>
|
||||
#include <QPainter>
|
||||
#include <QAbstractTextDocumentLayout>
|
||||
|
||||
#include "IMHistoryItemPainter.h"
|
||||
|
||||
IMHistoryItemPainter::IMHistoryItemPainter(QString text)
|
||||
{
|
||||
itemText = text;
|
||||
|
||||
/* calcultate size */
|
||||
QTextDocument doc;
|
||||
doc.setHtml(itemText);
|
||||
size = doc.size().toSize();
|
||||
}
|
||||
|
||||
QSize IMHistoryItemPainter::sizeHint() const
|
||||
{
|
||||
return size;
|
||||
}
|
||||
|
||||
void IMHistoryItemPainter::paint(QPainter *painter, const QStyleOptionViewItem &option, EditMode mode) const
|
||||
{
|
||||
// if (mode == Editable) {
|
||||
// painter->setBrush(option.palette.highlight());
|
||||
// } else {
|
||||
painter->setBrush(option.palette.foreground());
|
||||
// }
|
||||
if (option.state & QStyle::State_Selected) {
|
||||
painter->fillRect(option.rect, option.palette.highlight());
|
||||
}
|
||||
|
||||
painter->save();
|
||||
|
||||
QTextDocument doc;
|
||||
doc.setHtml(itemText);
|
||||
QAbstractTextDocumentLayout::PaintContext context;
|
||||
doc.setPageSize(option.rect.size());
|
||||
painter->translate(option.rect.x(), option.rect.y());
|
||||
doc.documentLayout()->draw(painter, context);
|
||||
|
||||
painter->restore();
|
||||
}
|
50
retroshare-gui/src/gui/im_history/IMHistoryItemPainter.h
Normal file
50
retroshare-gui/src/gui/im_history/IMHistoryItemPainter.h
Normal file
@ -0,0 +1,50 @@
|
||||
/****************************************************************
|
||||
* RetroShare is distributed under the following license:
|
||||
*
|
||||
* Copyright (C) 2009 The RetroShare Team
|
||||
*
|
||||
* 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 _IMHISTORYITEMPAINTER_H_
|
||||
#define _IMHISTORYITEMPAINTER_H_
|
||||
|
||||
#include <QMetaType>
|
||||
#include <QString>
|
||||
#include <QStyleOption>
|
||||
|
||||
#include "IMHistoryItem.h"
|
||||
|
||||
class QPainter;
|
||||
|
||||
class IMHistoryItemPainter
|
||||
{
|
||||
public:
|
||||
enum EditMode { /*Editable,*/ ReadOnly };
|
||||
|
||||
IMHistoryItemPainter(QString text = "");
|
||||
|
||||
void paint(QPainter *painter, const QStyleOptionViewItem &option, EditMode mode) const;
|
||||
QSize sizeHint() const;
|
||||
|
||||
private:
|
||||
QString itemText;
|
||||
QSize size;
|
||||
};
|
||||
|
||||
Q_DECLARE_METATYPE(IMHistoryItemPainter)
|
||||
|
||||
#endif // _IMHISTORYITEMPAINTER_H_
|
Loading…
Reference in New Issue
Block a user