Added patch from braindead

- Added new base class MimeTextEdit to paste images from the clipboard into a QTextEdit and added this in MessageComposer and private chat.
- Disabled paste of images for the next stable release.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5613 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
thunder2 2012-09-26 23:32:53 +00:00
parent 1d76628181
commit 805f64808e
5 changed files with 139 additions and 20 deletions

View File

@ -259,25 +259,6 @@ border-image: url(:/images/closepressed.png)
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="0" colspan="2">
<widget class="QTextEdit" name="chatTextEdit">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="contextMenuPolicy">
<enum>Qt::CustomContextMenu</enum>
</property>
</widget>
</item>
<item row="0" column="0"> <item row="0" column="0">
<widget class="QLabel" name="typingpixmapLabel"> <widget class="QLabel" name="typingpixmapLabel">
<property name="minimumSize"> <property name="minimumSize">
@ -300,6 +281,25 @@ border-image: url(:/images/closepressed.png)
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="0" colspan="2">
<widget class="MimeTextEdit" name="chatTextEdit">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="contextMenuPolicy">
<enum>Qt::CustomContextMenu</enum>
</property>
</widget>
</item>
</layout> </layout>
</widget> </widget>
</widget> </widget>
@ -725,6 +725,11 @@ border-image: url(:/images/closepressed.png)
<header location="global">gui/common/HashBox.h</header> <header location="global">gui/common/HashBox.h</header>
<container>1</container> <container>1</container>
</customwidget> </customwidget>
<customwidget>
<class>MimeTextEdit</class>
<extends>QTextEdit</extends>
<header location="global">gui/common/MimeTextEdit.h</header>
</customwidget>
</customwidgets> </customwidgets>
<resources> <resources>
<include location="../images.qrc"/> <include location="../images.qrc"/>

View File

@ -0,0 +1,67 @@
/****************************************************************
* This file is distributed under the following license:
*
* Copyright (c) 2010, 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 <QMimeData>
#include <QTextDocumentFragment>
#include "MimeTextEdit.h"
#include "util/HandleRichText.h"
MimeTextEdit::MimeTextEdit(QWidget *parent)
: QTextEdit(parent)
{
}
bool MimeTextEdit::canInsertFromMimeData(const QMimeData* source) const
{
#if QT_VERSION >= 0x040700
// embedded images are not supported before QT 4.7.0
// if (source != NULL) {
// if (source->hasImage()) {
// return true;
// }
// }
#endif
return QTextEdit::canInsertFromMimeData(source);
}
void MimeTextEdit::insertFromMimeData(const QMimeData* source)
{
#if QT_VERSION >= 0x040700
// embedded images are not supported before QT 4.7.0
// if (source != NULL) {
// if (source->hasImage()) {
// // insert as embedded image
// QImage image = qvariant_cast<QImage>(source->imageData());
// if (image.isNull() == false) {
// QString encodedImage;
// if (RsHtml::makeEmbeddedImage(image, encodedImage, 640*480)) {
// QTextDocumentFragment fragment = QTextDocumentFragment::fromHtml(encodedImage);
// this->textCursor().insertFragment(fragment);
// return;
// }
// }
// }
// }
#endif
return QTextEdit::insertFromMimeData(source);
}

View File

@ -0,0 +1,40 @@
/****************************************************************
* This file is distributed under the following license:
*
* Copyright (c) 2012, 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 MIMETEXTEDIT_H
#define MIMETEXTEDIT_H
#include <QTextEdit>
class MimeTextEdit : public QTextEdit
{
Q_OBJECT
public:
MimeTextEdit(QWidget *parent = 0);
protected:
virtual bool canInsertFromMimeData(const QMimeData* source) const;
virtual void insertFromMimeData(const QMimeData* source);
};
#endif // MIMETEXTEDIT_H

View File

@ -640,7 +640,7 @@
</widget> </widget>
</item> </item>
<item row="6" column="0"> <item row="6" column="0">
<widget class="QTextEdit" name="msgText"> <widget class="MimeTextEdit" name="msgText">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding"> <sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
<horstretch>4</horstretch> <horstretch>4</horstretch>
@ -950,6 +950,11 @@
<header location="global">gui/common/HashBox.h</header> <header location="global">gui/common/HashBox.h</header>
<container>1</container> <container>1</container>
</customwidget> </customwidget>
<customwidget>
<class>MimeTextEdit</class>
<extends>QTextEdit</extends>
<header location="global">gui/common/MimeTextEdit.h</header>
</customwidget>
<customwidget> <customwidget>
<class>FriendSelectionWidget</class> <class>FriendSelectionWidget</class>
<extends>QWidget</extends> <extends>QWidget</extends>

View File

@ -378,6 +378,7 @@ HEADERS += rshare.h \
gui/common/LinkTextBrowser.h \ gui/common/LinkTextBrowser.h \
gui/common/UserNotify.h \ gui/common/UserNotify.h \
gui/common/HeaderFrame.h \ gui/common/HeaderFrame.h \
gui/common/MimeTextEdit.h \
gui/style/RSStyle.h \ gui/style/RSStyle.h \
gui/style/StyleDialog.h \ gui/style/StyleDialog.h \
gui/MessagesDialog.h \ gui/MessagesDialog.h \
@ -639,6 +640,7 @@ SOURCES += main.cpp \
gui/common/LinkTextBrowser.cpp \ gui/common/LinkTextBrowser.cpp \
gui/common/UserNotify.cpp \ gui/common/UserNotify.cpp \
gui/common/HeaderFrame.cpp \ gui/common/HeaderFrame.cpp \
gui/common/MimeTextEdit.cpp \
gui/style/RSStyle.cpp \ gui/style/RSStyle.cpp \
gui/style/StyleDialog.cpp \ gui/style/StyleDialog.cpp \
gui/settings/rsharesettings.cpp \ gui/settings/rsharesettings.cpp \