mirror of
https://github.com/RetroShare/RetroShare.git
synced 2024-10-01 02:35:48 -04:00
rolled back commit 1200 only for popupchatdialog
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1215 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
4ef40b5cd1
commit
3698fc5a2c
@ -91,23 +91,26 @@ SearchDialog::SearchDialog(QWidget *parent)
|
|||||||
/* initialise the filetypes mapping */
|
/* initialise the filetypes mapping */
|
||||||
if (!SearchDialog::initialised)
|
if (!SearchDialog::initialised)
|
||||||
{
|
{
|
||||||
initialiseFileTypeMappings();
|
initialiseFileTypeMappings();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Advanced search panel specifica */
|
/* Advanced search panel specifica */
|
||||||
RshareSettings rsharesettings;
|
RshareSettings rsharesettings;
|
||||||
QString key (UI_PREF_ADVANCED_SEARCH);
|
QString key (UI_PREF_ADVANCED_SEARCH);
|
||||||
bool useAdvanced = rsharesettings.value(key, QVariant(false)).toBool();
|
bool useAdvanced = rsharesettings.value(key, QVariant(false)).toBool();
|
||||||
if (useAdvanced)
|
/*if (useAdvanced)
|
||||||
{
|
{
|
||||||
ui.toggleAdvancedSearchBtn->setChecked(true);
|
ui.toggleAdvancedSearchBtn->setChecked(true);
|
||||||
ui.SimpleSearchPanel->hide();
|
ui.SimpleSearchPanel->hide();
|
||||||
} else {
|
} else {
|
||||||
ui.AdvancedSearchPanel->hide();
|
ui.AdvancedSearchPanel->hide();
|
||||||
}
|
}*/
|
||||||
|
|
||||||
connect(ui.toggleAdvancedSearchBtn, SIGNAL(toggled(bool)), this, SLOT(toggleAdvancedSearchDialog(bool)));
|
//connect(ui.toggleAdvancedSearchBtn, SIGNAL(toggled(bool)), this, SLOT(toggleAdvancedSearchDialog(bool)));
|
||||||
connect(ui.focusAdvSearchDialogBtn, SIGNAL(clicked()), this, SLOT(showAdvSearchDialog()));
|
//connect(ui.focusAdvSearchDialogBtn, SIGNAL(clicked()), this, SLOT(showAdvSearchDialog()));
|
||||||
|
connect(ui.toggleAdvancedSearchBtn, SIGNAL(clicked()), this, SLOT(showAdvSearchDialog()));
|
||||||
|
connect(ui.cloaseallsearchresultsButton, SIGNAL(clicked()), this, SLOT(searchRemoveAll()));
|
||||||
|
connect(ui.resetButton, SIGNAL(clicked()), this, SLOT(clearKeyword()));
|
||||||
|
|
||||||
/* End Advanced Search Panel specifics */
|
/* End Advanced Search Panel specifics */
|
||||||
|
|
||||||
@ -128,6 +131,8 @@ SearchDialog::SearchDialog(QWidget *parent)
|
|||||||
|
|
||||||
connect ( ui.searchSummaryWidget, SIGNAL( currentItemChanged ( QTreeWidgetItem *, QTreeWidgetItem * ) ),
|
connect ( ui.searchSummaryWidget, SIGNAL( currentItemChanged ( QTreeWidgetItem *, QTreeWidgetItem * ) ),
|
||||||
this, SLOT( selectSearchResults( void ) ) );
|
this, SLOT( selectSearchResults( void ) ) );
|
||||||
|
|
||||||
|
connect( ui.searchResultWidget, SIGNAL( itemDoubleClicked ( QTreeWidgetItem *, int)), this, SLOT(download()));
|
||||||
|
|
||||||
|
|
||||||
/* hide the Tree +/- */
|
/* hide the Tree +/- */
|
||||||
@ -149,8 +154,8 @@ SearchDialog::SearchDialog(QWidget *parent)
|
|||||||
_smheader->setResizeMode (2, QHeaderView::Interactive);
|
_smheader->setResizeMode (2, QHeaderView::Interactive);
|
||||||
|
|
||||||
_smheader->resizeSection ( 0, 80 );
|
_smheader->resizeSection ( 0, 80 );
|
||||||
_smheader->resizeSection ( 1, 75 );
|
_smheader->resizeSection ( 1, 60 );
|
||||||
_smheader->resizeSection ( 2, 75 );
|
_smheader->resizeSection ( 2, 30 );
|
||||||
|
|
||||||
ui.searchResultWidget->setColumnCount(6);
|
ui.searchResultWidget->setColumnCount(6);
|
||||||
_smheader = ui.searchResultWidget->header () ;
|
_smheader = ui.searchResultWidget->header () ;
|
||||||
@ -168,11 +173,11 @@ SearchDialog::SearchDialog(QWidget *parent)
|
|||||||
|
|
||||||
|
|
||||||
// set header text aligment
|
// set header text aligment
|
||||||
QTreeWidgetItem * headerItem = ui.searchResultWidget->headerItem();
|
QTreeWidgetItem * headerItem = ui.searchResultWidget->headerItem();
|
||||||
headerItem->setTextAlignment(2, Qt::AlignRight | Qt::AlignRight);
|
headerItem->setTextAlignment(2, Qt::AlignRight | Qt::AlignRight);
|
||||||
headerItem->setTextAlignment(3, Qt::AlignRight | Qt::AlignRight);
|
headerItem->setTextAlignment(3, Qt::AlignRight | Qt::AlignRight);
|
||||||
|
|
||||||
ui.searchResultWidget->sortItems(SR_NAME_COL, Qt::AscendingOrder);
|
ui.searchResultWidget->sortItems(SR_NAME_COL, Qt::AscendingOrder);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -367,6 +372,7 @@ void SearchDialog::searchRemoveAll()
|
|||||||
nextSearchId = 1;
|
nextSearchId = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
<<<<<<< HEAD:retroshare-gui/src/gui/SearchDialog.cpp
|
||||||
/** clear keywords and ComboBox **/
|
/** clear keywords and ComboBox **/
|
||||||
void SearchDialog::clearKeyword()
|
void SearchDialog::clearKeyword()
|
||||||
{
|
{
|
||||||
@ -375,6 +381,16 @@ void SearchDialog::clearKeyword()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
=======
|
||||||
|
/** clear keywords **/
|
||||||
|
void SearchDialog::clearKeyword()
|
||||||
|
{
|
||||||
|
ui.lineEdit->clear();
|
||||||
|
ui.FileTypeComboBox->setCurrentIndex(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
>>>>>>> c9de750...
|
||||||
|
* Rolled back Modifications to SearchDialog and PopupChatDialog.:retroshare-gui/src/gui/SearchDialog.cpp
|
||||||
/* *****************************************************************
|
/* *****************************************************************
|
||||||
Advanced search implementation
|
Advanced search implementation
|
||||||
*******************************************************************/
|
*******************************************************************/
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -33,9 +33,13 @@
|
|||||||
#include <QIcon>
|
#include <QIcon>
|
||||||
#include <QPixmap>
|
#include <QPixmap>
|
||||||
#include <QHashIterator>
|
#include <QHashIterator>
|
||||||
|
#include <QDesktopServices>
|
||||||
|
|
||||||
#include "rsiface/rspeers.h"
|
#include "rsiface/rspeers.h"
|
||||||
#include "rsiface/rsmsgs.h"
|
#include "rsiface/rsmsgs.h"
|
||||||
|
#include "rsiface/rsfiles.h"
|
||||||
|
|
||||||
|
#include "gui/feeds/SubFileItem.h"
|
||||||
|
|
||||||
#define appDir QApplication::applicationDirPath()
|
#define appDir QApplication::applicationDirPath()
|
||||||
|
|
||||||
@ -76,7 +80,8 @@ PopupChatDialog::PopupChatDialog(std::string id, std::string name,
|
|||||||
connect(ui.chattextEdit, SIGNAL(textChanged ( ) ), this, SLOT(checkChat( ) ));
|
connect(ui.chattextEdit, SIGNAL(textChanged ( ) ), this, SLOT(checkChat( ) ));
|
||||||
|
|
||||||
connect(ui.sendButton, SIGNAL(clicked( ) ), this, SLOT(sendChat( ) ));
|
connect(ui.sendButton, SIGNAL(clicked( ) ), this, SLOT(sendChat( ) ));
|
||||||
|
connect(ui.addFileButton, SIGNAL(clicked() ), this , SLOT(addExtraFile()));
|
||||||
|
|
||||||
connect(ui.textboldButton, SIGNAL(clicked()), this, SLOT(setFont()));
|
connect(ui.textboldButton, SIGNAL(clicked()), this, SLOT(setFont()));
|
||||||
connect(ui.textunderlineButton, SIGNAL(clicked()), this, SLOT(setFont()));
|
connect(ui.textunderlineButton, SIGNAL(clicked()), this, SLOT(setFont()));
|
||||||
connect(ui.textitalicButton, SIGNAL(clicked()), this, SLOT(setFont()));
|
connect(ui.textitalicButton, SIGNAL(clicked()), this, SLOT(setFont()));
|
||||||
@ -85,10 +90,13 @@ PopupChatDialog::PopupChatDialog(std::string id, std::string name,
|
|||||||
connect(ui.emoteiconButton, SIGNAL(clicked()), this, SLOT(smileyWidget()));
|
connect(ui.emoteiconButton, SIGNAL(clicked()), this, SLOT(smileyWidget()));
|
||||||
connect(ui.styleButton, SIGNAL(clicked()), SLOT(changeStyle()));
|
connect(ui.styleButton, SIGNAL(clicked()), SLOT(changeStyle()));
|
||||||
|
|
||||||
|
connect(ui.textBrowser, SIGNAL(anchorClicked(const QUrl &)), SLOT(anchorClicked(const QUrl &)));
|
||||||
|
|
||||||
// Create the status bar
|
// Create the status bar
|
||||||
resetStatusBar() ;
|
resetStatusBar() ;
|
||||||
|
|
||||||
ui.textBrowser->setOpenExternalLinks ( false );
|
ui.textBrowser->setOpenExternalLinks ( false );
|
||||||
|
ui.textBrowser->setOpenLinks ( false );
|
||||||
|
|
||||||
QString title = QString::fromStdString(name) + " :" + tr(" RetroShare - Encrypted Chat") ;
|
QString title = QString::fromStdString(name) + " :" + tr(" RetroShare - Encrypted Chat") ;
|
||||||
setWindowTitle(title);
|
setWindowTitle(title);
|
||||||
@ -131,7 +139,7 @@ PopupChatDialog::PopupChatDialog(std::string id, std::string name,
|
|||||||
|
|
||||||
void PopupChatDialog::resetStatusBar()
|
void PopupChatDialog::resetStatusBar()
|
||||||
{
|
{
|
||||||
statusBar()->showMessage(QString("Chatting with ") + QString::fromStdString(dialogName) + " (" +QString::fromStdString(dialogId)+ ")") ;
|
statusBar()->showMessage(tr("Chatting with ") + QString::fromStdString(dialogName) + " (" +QString::fromStdString(dialogId)+ ")") ;
|
||||||
}
|
}
|
||||||
|
|
||||||
void PopupChatDialog::updateStatusTyping()
|
void PopupChatDialog::updateStatusTyping()
|
||||||
@ -243,6 +251,19 @@ void PopupChatDialog::addChatMsg(ChatInfo *ci)
|
|||||||
QString name = QString::fromStdString(ci ->name);
|
QString name = QString::fromStdString(ci ->name);
|
||||||
QString message = QString::fromStdWString(ci -> msg);
|
QString message = QString::fromStdWString(ci -> msg);
|
||||||
|
|
||||||
|
//replace url by a link
|
||||||
|
//first, avoid DTD link taht stands at the beginning of the string
|
||||||
|
QString messageSubString = message.mid(110, -1);
|
||||||
|
//replace http:// and www. with <a href> links
|
||||||
|
messageSubString.replace(QRegExp("(http://[^ <]*)|(www\\.[^ <]*)"), "<a href=\"\\1\\2\">\\1\\2</a>");
|
||||||
|
//rebuild the full message
|
||||||
|
message = message.left(109) + messageSubString;
|
||||||
|
|
||||||
|
#ifdef CHAT_DEBUG
|
||||||
|
std::cout << "PopupChatDialog:addChatMsg message : " << message.toStdString() << std::endl;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/*QHashIterator<QString, QString> i(smileys);
|
/*QHashIterator<QString, QString> i(smileys);
|
||||||
while(i.hasNext())
|
while(i.hasNext())
|
||||||
{
|
{
|
||||||
@ -294,7 +315,7 @@ void PopupChatDialog::checkChat()
|
|||||||
|
|
||||||
void PopupChatDialog::sendChat()
|
void PopupChatDialog::sendChat()
|
||||||
{
|
{
|
||||||
QTextEdit *chatWidget = ui.chattextEdit;
|
QTextEdit *chatWidget = ui.chattextEdit;
|
||||||
|
|
||||||
ChatInfo ci;
|
ChatInfo ci;
|
||||||
|
|
||||||
@ -678,3 +699,123 @@ void PopupChatDialog::getAvatar()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PopupChatDialog::addExtraFile()
|
||||||
|
{
|
||||||
|
// select a file
|
||||||
|
QString qfile = QFileDialog::getOpenFileName(this, tr("Add Extra File"), "", "", 0,
|
||||||
|
QFileDialog::DontResolveSymlinks);
|
||||||
|
std::string filePath = qfile.toStdString();
|
||||||
|
if (filePath != "")
|
||||||
|
{
|
||||||
|
/* add a SubFileItem to the attachment section */
|
||||||
|
std::cerr << "PopupChatDialog::addExtraFile() hashing file.";
|
||||||
|
std::cerr << std::endl;
|
||||||
|
|
||||||
|
/* add widget in for new destination */
|
||||||
|
SubFileItem *file = new SubFileItem(filePath);
|
||||||
|
//file->
|
||||||
|
|
||||||
|
ui.vboxLayout->addWidget(file, 1, 0);
|
||||||
|
|
||||||
|
//when the file is local or is finished hashing, call the fileHashingFinished method to send a chat message
|
||||||
|
if (file->getState() == SFI_STATE_LOCAL) {
|
||||||
|
fileHashingFinished(file);
|
||||||
|
} else {
|
||||||
|
QObject::connect(file,SIGNAL(fileFinished(SubFileItem *)), SLOT(fileHashingFinished(SubFileItem *))) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void PopupChatDialog::fileHashingFinished(SubFileItem* file) {
|
||||||
|
std::cerr << "PopupChatDialog::fileHashingFinished() started.";
|
||||||
|
std::cerr << std::endl;
|
||||||
|
|
||||||
|
ChatInfo ci;
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
rsiface->lockData(); /* Lock Interface */
|
||||||
|
const RsConfig &conf = rsiface->getConfig();
|
||||||
|
|
||||||
|
ci.rsid = conf.ownId;
|
||||||
|
ci.name = conf.ownName;
|
||||||
|
|
||||||
|
rsiface->unlockData(); /* Unlock Interface */
|
||||||
|
}
|
||||||
|
|
||||||
|
//convert fileSize from uint_64 to string for html link
|
||||||
|
char fileSizeChar [100];
|
||||||
|
sprintf(fileSizeChar, "%lld", file->FileSize());
|
||||||
|
std::string fileSize = *(&fileSizeChar);
|
||||||
|
|
||||||
|
std::string mesgString = "<a href='file:?fileHash=" + (file->FileHash()) + "&fileName=" + (file->FileName()) + "&fileSize=" + fileSize + "'>" + (file->FileName()) + "</a>";
|
||||||
|
#ifdef CHAT_DEBUG
|
||||||
|
std::cerr << "PopupChatDialog::anchorClicked mesgString : " << mesgString << std::endl;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const char * messageString = mesgString.c_str ();
|
||||||
|
|
||||||
|
//convert char massageString to w_char
|
||||||
|
wchar_t* message;
|
||||||
|
int requiredSize = mbstowcs(NULL, messageString, 0); // C4996
|
||||||
|
/* Add one to leave room for the NULL terminator */
|
||||||
|
message = (wchar_t *)malloc( (requiredSize + 1) * sizeof( wchar_t ));
|
||||||
|
if (! message)
|
||||||
|
{
|
||||||
|
std::cerr << ("Memory allocation failure.\n");
|
||||||
|
}
|
||||||
|
int size = mbstowcs( message, messageString, requiredSize + 1); // C4996
|
||||||
|
if (size == (size_t) (-1))
|
||||||
|
{
|
||||||
|
printf("Couldn't convert string--invalid multibyte character.\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
ci.msg = message;
|
||||||
|
ci.chatflags = RS_CHAT_PRIVATE;
|
||||||
|
|
||||||
|
addChatMsg(&ci);
|
||||||
|
|
||||||
|
/* put proper destination */
|
||||||
|
ci.rsid = dialogId;
|
||||||
|
ci.name = dialogName;
|
||||||
|
|
||||||
|
rsMsgs -> ChatSend(ci);
|
||||||
|
}
|
||||||
|
|
||||||
|
void PopupChatDialog::anchorClicked (const QUrl& link ) {
|
||||||
|
#ifdef CHAT_DEBUG
|
||||||
|
std::cerr << "PopupChatDialog::anchorClicked link.scheme() : " << link.scheme().toStdString() << std::endl;
|
||||||
|
#endif
|
||||||
|
if (link.scheme() == "file") {
|
||||||
|
std::string fileName = link.queryItemValue(QString("fileName")).toStdString();
|
||||||
|
std::string fileHash = link.queryItemValue(QString("fileHash")).toStdString();
|
||||||
|
uint32_t fileSize = link.queryItemValue(QString("fileSize")).toInt();
|
||||||
|
#ifdef CHAT_DEBUG
|
||||||
|
std::cerr << "PopupChatDialog::anchorClicked FileRequest : fileName : " << fileName << ". fileHash : " << fileHash << ". fileSize : " << fileSize;
|
||||||
|
std::cerr << ". source id : " << dialogId << std::endl;
|
||||||
|
#endif
|
||||||
|
if (fileName != "" &&
|
||||||
|
fileHash != "") {
|
||||||
|
std::list<std::string> srcIds;
|
||||||
|
srcIds.push_front(dialogId);
|
||||||
|
rsFiles->FileRequest(fileName, fileHash, fileSize, "", 0, srcIds);
|
||||||
|
|
||||||
|
QMessageBox mb(tr("File Request Confirmation"), tr("The file has been added to your download list."),QMessageBox::Information,QMessageBox::Ok,0,0);
|
||||||
|
mb.setButtonText( QMessageBox::Ok, "OK" );
|
||||||
|
mb.exec();
|
||||||
|
} else {
|
||||||
|
QMessageBox mb(tr("File Request Error"), tr("The file link is malformed."),QMessageBox::Information,QMessageBox::Ok,0,0);
|
||||||
|
mb.setButtonText( QMessageBox::Ok, "OK" );
|
||||||
|
mb.exec();
|
||||||
|
}
|
||||||
|
} else if (link.scheme() == "http") {
|
||||||
|
QDesktopServices::openUrl(link);
|
||||||
|
} else if (link.scheme() == "") {
|
||||||
|
//it's probably a web adress, let's add http:// at the beginning of the link
|
||||||
|
QString newAddress = link.toString();
|
||||||
|
newAddress.prepend("http://");
|
||||||
|
QDesktopServices::openUrl(QUrl(newAddress));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -30,6 +30,7 @@
|
|||||||
#include <gui/Preferences/rsharesettings.h>
|
#include <gui/Preferences/rsharesettings.h>
|
||||||
|
|
||||||
#include "rsiface/rsiface.h"
|
#include "rsiface/rsiface.h"
|
||||||
|
#include "gui/feeds/SubFileItem.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -74,15 +75,19 @@ public slots:
|
|||||||
void addSmiley();
|
void addSmiley();
|
||||||
|
|
||||||
void changeStyle();
|
void changeStyle();
|
||||||
|
void fileHashingFinished(SubFileItem* file);
|
||||||
|
|
||||||
void resetStatusBar() ;
|
void resetStatusBar() ;
|
||||||
void updateStatusTyping() ;
|
void updateStatusTyping() ;
|
||||||
void updateStatusString(const QString&) ;
|
void updateStatusString(const QString&) ;
|
||||||
|
void anchorClicked (const QUrl &);
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void closeEvent (QCloseEvent * event);
|
void closeEvent (QCloseEvent * event);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
void addExtraFile();
|
||||||
void showAvatarFrame(bool show);
|
void showAvatarFrame(bool show);
|
||||||
|
|
||||||
void setColor();
|
void setColor();
|
||||||
@ -95,7 +100,6 @@ private slots:
|
|||||||
void getAvatar();
|
void getAvatar();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
void colorChanged(const QColor &c);
|
void colorChanged(const QColor &c);
|
||||||
@ -120,10 +124,9 @@ private:
|
|||||||
QStringList history;
|
QStringList history;
|
||||||
QString wholeChat;
|
QString wholeChat;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** Qt Designer generated object */
|
/** Qt Designer generated object */
|
||||||
Ui::PopupChatDialog ui;
|
Ui::PopupChatDialog ui;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>484</width>
|
<width>484</width>
|
||||||
<height>437</height>
|
<height>439</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle" >
|
<property name="windowTitle" >
|
||||||
@ -446,7 +446,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="0" >
|
<item row="3" column="0" >
|
||||||
<layout class="QGridLayout" >
|
<layout class="QHBoxLayout" >
|
||||||
<property name="leftMargin" >
|
<property name="leftMargin" >
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
@ -456,23 +456,30 @@ p, li { white-space: pre-wrap; }
|
|||||||
<property name="bottomMargin" >
|
<property name="bottomMargin" >
|
||||||
<number>2</number>
|
<number>2</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="horizontalSpacing" >
|
<item>
|
||||||
<number>6</number>
|
<widget class="QPushButton" name="addFileButton" >
|
||||||
</property>
|
<property name="text" >
|
||||||
<item row="0" column="0" >
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="icon" >
|
||||||
|
<iconset resource="../images.qrc" >:/images/add-share24.png</iconset>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
<spacer>
|
<spacer>
|
||||||
<property name="orientation" >
|
<property name="orientation" >
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeHint" >
|
<property name="sizeHint" >
|
||||||
<size>
|
<size>
|
||||||
<width>351</width>
|
<width>331</width>
|
||||||
<height>20</height>
|
<height>20</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="1" >
|
<item>
|
||||||
<widget class="QPushButton" name="sendButton" >
|
<widget class="QPushButton" name="sendButton" >
|
||||||
<property name="text" >
|
<property name="text" >
|
||||||
<string>Send</string>
|
<string>Send</string>
|
||||||
@ -481,6 +488,9 @@ p, li { white-space: pre-wrap; }
|
|||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="4" column="0" >
|
||||||
|
<layout class="QVBoxLayout" />
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QStatusBar" name="statusbar" />
|
<widget class="QStatusBar" name="statusbar" />
|
||||||
|
Loading…
Reference in New Issue
Block a user