diff --git a/retroshare-gui/src/gui/ChannelFeed.cpp b/retroshare-gui/src/gui/ChannelFeed.cpp index 0d99c8e5d..8cf604aaf 100644 --- a/retroshare-gui/src/gui/ChannelFeed.cpp +++ b/retroshare-gui/src/gui/ChannelFeed.cpp @@ -118,6 +118,7 @@ ChannelFeed::ChannelFeed(QWidget *parent) void ChannelFeed::createChannel() { CreateForum *cf = new CreateForum(NULL, false); + cf->setWindowTitle(tr("Create Channel")); cf->show(); } diff --git a/retroshare-gui/src/gui/ForumsDialog.cpp b/retroshare-gui/src/gui/ForumsDialog.cpp index 973ad0f39..7f02a4caf 100644 --- a/retroshare-gui/src/gui/ForumsDialog.cpp +++ b/retroshare-gui/src/gui/ForumsDialog.cpp @@ -50,7 +50,7 @@ #define IMAGE_DOWNLOAD ":/images/start.png" #define IMAGE_DOWNLOADALL ":/images/startall.png" -/* Images for TreeWidget */ +/* Images for TreeWidget */ #define IMAGE_FOLDER ":/images/folder16.png" #define IMAGE_FOLDERGREEN ":/images/folder_green.png" #define IMAGE_FOLDERRED ":/images/folder_red.png" @@ -65,7 +65,7 @@ /** Constructor */ -ForumsDialog::ForumsDialog(QWidget *parent) +ForumsDialog::ForumsDialog(QWidget *parent) : MainPage(parent) { /* Invoke the Qt Designer generated object setup routine */ @@ -94,72 +94,19 @@ ForumsDialog::ForumsDialog(QWidget *parent) timer->start(1000); -#if 0 - connect( ui.msgWidget, SIGNAL( itemClicked ( QTreeWidgetItem *, int) ), this, SLOT( updateMessages ( QTreeWidgetItem *, int) ) ); - connect( ui.listWidget, SIGNAL( currentRowChanged ( int) ), this, SLOT( changeBox ( int) ) ); - - connect(ui.newmessageButton, SIGNAL(clicked()), this, SLOT(newmessage())); - connect(ui.removemessageButton, SIGNAL(clicked()), this, SLOT(removemessage())); - //connect(ui.printbutton, SIGNAL(clicked()), this, SLOT(print())); - //connect(ui.actionPrint, SIGNAL(triggered()), this, SLOT(print())); - //connect(ui.actionPrintPreview, SIGNAL(triggered()), this, SLOT(printpreview())); - connect(ui.downloadButton, SIGNAL(clicked()), this, SLOT(getallrecommended())); - - - mCurrCertId = ""; - mCurrMsgId = ""; - - /* hide the Tree +/- */ - ui.msgList->setRootIsDecorated( false ); - ui.msgWidget->setRootIsDecorated( false ); - - /* Set header resize modes and initial section sizes */ - QHeaderView * msgwheader = ui.msgWidget->header () ; - msgwheader->setResizeMode (0, QHeaderView::Custom); - msgwheader->setResizeMode (3, QHeaderView::Interactive); - - msgwheader->resizeSection ( 0, 24 ); - msgwheader->resizeSection ( 2, 250 ); - msgwheader->resizeSection ( 3, 140 ); - - /* Set header resize modes and initial section sizes */ - QHeaderView * msglheader = ui.msgList->header () ; - msglheader->setResizeMode (0, QHeaderView::Interactive); - msglheader->setResizeMode (1, QHeaderView::Interactive); - msglheader->setResizeMode (2, QHeaderView::Interactive); - msglheader->setResizeMode (3, QHeaderView::Interactive); - - msglheader->resizeSection ( 0, 200 ); - msglheader->resizeSection ( 1, 100 ); - msglheader->resizeSection ( 2, 100 ); - msglheader->resizeSection ( 3, 200 ); - - ui.newmessageButton->setIcon(QIcon(QString(":/images/folder-draft24-pressed.png"))); - ui.replymessageButton->setIcon(QIcon(QString(":/images/replymail-pressed.png"))); - ui.removemessageButton->setIcon(QIcon(QString(":/images/deletemail-pressed.png"))); - ui.printbutton->setIcon(QIcon(QString(":/images/print24.png"))); - - /*Disabled Reply Button */ - ui.replymessageButton->setEnabled(false); - - QMenu * printmenu = new QMenu(); - printmenu->addAction(ui.actionPrint); - printmenu->addAction(ui.actionPrintPreview); - ui.printbutton->setMenu(printmenu); - -#endif - /* Set header resize modes and initial section sizes */ - QHeaderView * ftheader = ui.forumTreeWidget->header () ; + /* Set header resize modes and initial section sizes */ + QHeaderView * ftheader = ui.forumTreeWidget->header () ; ftheader->setResizeMode (0, QHeaderView::Interactive); - + ftheader->resizeSection ( 0, 170 ); /* Set header resize modes and initial section sizes */ - QHeaderView * ttheader = ui.threadTreeWidget->header () ; - ttheader->setResizeMode (0, QHeaderView::Interactive); - + QHeaderView * ttheader = ui.threadTreeWidget->header () ; + ttheader->setResizeMode (0, QHeaderView::Interactive); + ttheader->resizeSection ( 0, 170 ); + ttheader->resizeSection ( 1, 170 ); @@ -230,7 +177,7 @@ void ForumsDialog::newmessage() /* window will destroy itself! */ } -void ForumsDialog::replytomessage() +void ForumsDialog::replytomessage() { /* put msg on msgBoard, and switch to it. */ @@ -276,7 +223,7 @@ void ForumsDialog::togglefileview() newSizeList.push_back(totalSize); newSizeList.push_back(0); ui.expandButton->setIcon(QIcon(QString(":/images/edit_add24.png"))); - ui.expandButton->setToolTip("Expand"); + ui.expandButton->setToolTip("Expand"); } else { @@ -285,8 +232,8 @@ void ForumsDialog::togglefileview() int nMsgSize = (totalSize / 2); newSizeList.push_back(nlistSize); newSizeList.push_back(nMsgSize); - ui.expandButton->setIcon(QIcon(QString(":/images/edit_remove24.png"))); - ui.expandButton->setToolTip("Hide"); + ui.expandButton->setIcon(QIcon(QString(":/images/edit_remove24.png"))); + ui.expandButton->setToolTip("Hide"); } ui.msgSplitter->setSizes(newSizeList); diff --git a/retroshare-gui/src/gui/forums/CreateForumMsg.cpp b/retroshare-gui/src/gui/forums/CreateForumMsg.cpp index acfef6004..643cd05e9 100644 --- a/retroshare-gui/src/gui/forums/CreateForumMsg.cpp +++ b/retroshare-gui/src/gui/forums/CreateForumMsg.cpp @@ -26,6 +26,29 @@ #include "rsiface/rsforums.h" +#include <QContextMenuEvent> +#include <QCloseEvent> +#include <QColorDialog> +#include <QClipboard> +#include <QFile> +#include <QFileDialog> +#include <QFileInfo> +#include <QMenu> +#include <QCursor> +#include <QPoint> +#include <QMouseEvent> +#include <QMessageBox> +#include <QPixmap> +#include <QPrintDialog> +#include <QPrinter> +#include <QHeaderView> +#include <QTextCodec> +#include <QTextEdit> +#include <QTextCursor> +#include <QTextList> +#include <QTextStream> +#include <QTextDocumentFragment> + /** Constructor */ CreateForumMsg::CreateForumMsg(std::string fId, std::string pId) : QMainWindow(NULL), mForumId(fId), mParentId(pId) @@ -33,13 +56,106 @@ CreateForumMsg::CreateForumMsg(std::string fId, std::string pId) /* Invoke the Qt Designer generated object setup routine */ ui.setupUi(this); - RshareSettings config; + RshareSettings config; config.loadWidgetInformation(this); // connect up the buttons. connect( ui.postmessage_action, SIGNAL( triggered (bool) ), this, SLOT( createMsg( ) ) ); connect( ui.close_action, SIGNAL( triggered (bool) ), this, SLOT( cancelMsg( ) ) ); + connect(ui.boldbtn, SIGNAL(clicked()), this, SLOT(textBold())); + connect(ui.underlinebtn, SIGNAL(clicked()), this, SLOT(textUnderline())); + connect(ui.italicbtn, SIGNAL(clicked()), this, SLOT(textItalic())); + connect(ui.colorbtn, SIGNAL(clicked()), this, SLOT(textColor())); + + connect(ui.forumMessage, SIGNAL(currentCharFormatChanged(const QTextCharFormat &)), + this, SLOT(currentCharFormatChanged(const QTextCharFormat &))); + connect(ui.forumMessage, SIGNAL(cursorPositionChanged()), + this, SLOT(cursorPositionChanged())); + + connect(ui.forumMessage->document(), SIGNAL(modificationChanged(bool)), + actionSave, SLOT(setEnabled(bool))); + connect(ui.forumMessage->document(), SIGNAL(modificationChanged(bool)), + this, SLOT(setWindowModified(bool))); + connect(ui.forumMessage->document(), SIGNAL(undoAvailable(bool)), + actionUndo, SLOT(setEnabled(bool))); + connect(ui.forumMessage->document(), SIGNAL(redoAvailable(bool)), + actionRedo, SLOT(setEnabled(bool))); + + setWindowModified(ui.forumMessage->document()->isModified()); + actionSave->setEnabled(ui.forumMessage->document()->isModified()); + actionUndo->setEnabled(ui.forumMessage->document()->isUndoAvailable()); + actionRedo->setEnabled(ui.forumMessage->document()->isRedoAvailable()); + + connect(actionUndo, SIGNAL(triggered()), ui.forumMessage, SLOT(undo())); + connect(actionRedo, SIGNAL(triggered()), ui.forumMessage, SLOT(redo())); + + actionCut->setEnabled(false); + actionCopy->setEnabled(false); + + connect(actionCut, SIGNAL(triggered()), ui.forumMessage, SLOT(cut())); + connect(actionCopy, SIGNAL(triggered()), ui.forumMessage, SLOT(copy())); + connect(actionPaste, SIGNAL(triggered()), ui.forumMessage, SLOT(paste())); + + connect(ui.forumMessage, SIGNAL(copyAvailable(bool)), actionCut, SLOT(setEnabled(bool))); + connect(ui.forumMessage, SIGNAL(copyAvailable(bool)), actionCopy, SLOT(setEnabled(bool))); + + connect(QApplication::clipboard(), SIGNAL(dataChanged()), this, SLOT(clipboardDataChanged())); + + QActionGroup *grp = new QActionGroup(this); + connect(grp, SIGNAL(triggered(QAction *)), this, SLOT(textAlign(QAction *))); + + actionAlignLeft = new QAction(QIcon(":/images/textedit/textleft.png"), tr("&Left"), grp); + actionAlignLeft->setShortcut(Qt::CTRL + Qt::Key_L); + actionAlignLeft->setCheckable(true); + actionAlignCenter = new QAction(QIcon(":/images/textedit/textcenter.png"), tr("C&enter"), grp); + actionAlignCenter->setShortcut(Qt::CTRL + Qt::Key_E); + actionAlignCenter->setCheckable(true); + actionAlignRight = new QAction(QIcon(":/images/textedit/textright.png"), tr("&Right"), grp); + actionAlignRight->setShortcut(Qt::CTRL + Qt::Key_R); + actionAlignRight->setCheckable(true); + actionAlignJustify = new QAction(QIcon(":/images/textedit/textjustify.png"), tr("&Justify"), grp); + actionAlignJustify->setShortcut(Qt::CTRL + Qt::Key_J); + actionAlignJustify->setCheckable(true); + + ui.comboStyle->addItem("Standard"); + ui.comboStyle->addItem("Bullet List (Disc)"); + ui.comboStyle->addItem("Bullet List (Circle)"); + ui.comboStyle->addItem("Bullet List (Square)"); + ui.comboStyle->addItem("Ordered List (Decimal)"); + ui.comboStyle->addItem("Ordered List (Alpha lower)"); + ui.comboStyle->addItem("Ordered List (Alpha upper)"); + connect(ui.comboStyle, SIGNAL(activated(int)),this, SLOT(textStyle(int))); + + connect(ui.comboFont, SIGNAL(activated(const QString &)), this, SLOT(textFamily(const QString &))); + + ui.comboSize->setEditable(true); + + QFontDatabase db; + foreach(int size, db.standardSizes()) + ui.comboSize->addItem(QString::number(size)); + + connect(ui.comboSize, SIGNAL(activated(const QString &)),this, SLOT(textSize(const QString &))); + ui.comboSize->setCurrentIndex(ui.comboSize->findText(QString::number(QApplication::font().pointSize()))); + + ui.boldbtn->setIcon(QIcon(QString(":/images/textedit/textbold.png"))); + ui.underlinebtn->setIcon(QIcon(QString(":/images/textedit/textunder.png"))); + ui.italicbtn->setIcon(QIcon(QString(":/images/textedit/textitalic.png"))); + ui.textalignmentbtn->setIcon(QIcon(QString(":/images/textedit/textcenter.png"))); + //ui.actionContactsView->setIcon(QIcon(":/images/contacts24.png")); + //ui.actionSaveas->setIcon(QIcon(":/images/save24.png")); + + QMenu * alignmentmenu = new QMenu(); + alignmentmenu->addAction(actionAlignLeft); + alignmentmenu->addAction(actionAlignCenter); + alignmentmenu->addAction(actionAlignRight); + alignmentmenu->addAction(actionAlignJustify); + ui.textalignmentbtn->setMenu(alignmentmenu); + + QPixmap pxm(24,24); + pxm.fill(Qt::black); + ui.colorbtn->setIcon(pxm); + newMsg(); } @@ -101,7 +217,306 @@ void CreateForumMsg::cancelMsg() close(); return; - RshareSettings config; + RshareSettings config; config.saveWidgetInformation(this); } +void CreateForumMsg::textBold() +{ + QTextCharFormat fmt; + fmt.setFontWeight(ui.boldbtn->isChecked() ? QFont::Bold : QFont::Normal); + mergeFormatOnWordOrSelection(fmt); +} + +void CreateForumMsg::textUnderline() +{ + QTextCharFormat fmt; + fmt.setFontUnderline(ui.underlinebtn->isChecked()); + mergeFormatOnWordOrSelection(fmt); +} + +void CreateForumMsg::textItalic() +{ + QTextCharFormat fmt; + fmt.setFontItalic(ui.italicbtn->isChecked()); + mergeFormatOnWordOrSelection(fmt); +} + +void CreateForumMsg::textFamily(const QString &f) +{ + QTextCharFormat fmt; + fmt.setFontFamily(f); + mergeFormatOnWordOrSelection(fmt); +} + +void CreateForumMsg::textSize(const QString &p) +{ + QTextCharFormat fmt; + fmt.setFontPointSize(p.toFloat()); + mergeFormatOnWordOrSelection(fmt); +} + +void CreateForumMsg::textStyle(int styleIndex) +{ + QTextCursor cursor = ui.forumMessage->textCursor(); + + if (styleIndex != 0) { + QTextListFormat::Style style = QTextListFormat::ListDisc; + + switch (styleIndex) { + default: + case 1: + style = QTextListFormat::ListDisc; + break; + case 2: + style = QTextListFormat::ListCircle; + break; + case 3: + style = QTextListFormat::ListSquare; + break; + case 4: + style = QTextListFormat::ListDecimal; + break; + case 5: + style = QTextListFormat::ListLowerAlpha; + break; + case 6: + style = QTextListFormat::ListUpperAlpha; + break; + } + + cursor.beginEditBlock(); + + QTextBlockFormat blockFmt = cursor.blockFormat(); + + QTextListFormat listFmt; + + if (cursor.currentList()) { + listFmt = cursor.currentList()->format(); + } else { + listFmt.setIndent(blockFmt.indent() + 1); + blockFmt.setIndent(0); + cursor.setBlockFormat(blockFmt); + } + + listFmt.setStyle(style); + + cursor.createList(listFmt); + + cursor.endEditBlock(); + } else { + // #### + QTextBlockFormat bfmt; + bfmt.setObjectIndex(-1); + cursor.mergeBlockFormat(bfmt); + } +} + +void CreateForumMsg::textColor() +{ + QColor col = QColorDialog::getColor(ui.forumMessage->textColor(), this); + if (!col.isValid()) + return; + QTextCharFormat fmt; + fmt.setForeground(col); + mergeFormatOnWordOrSelection(fmt); + colorChanged(col); +} + +void CreateForumMsg::textAlign(QAction *a) +{ + if (a == actionAlignLeft) + ui.forumMessage->setAlignment(Qt::AlignLeft); + else if (a == actionAlignCenter) + ui.forumMessage->setAlignment(Qt::AlignHCenter); + else if (a == actionAlignRight) + ui.forumMessage->setAlignment(Qt::AlignRight); + else if (a == actionAlignJustify) + ui.forumMessage->setAlignment(Qt::AlignJustify); +} + +void CreateForumMsg::currentCharFormatChanged(const QTextCharFormat &format) +{ + fontChanged(format.font()); + colorChanged(format.foreground().color()); +} + +void CreateForumMsg::cursorPositionChanged() +{ + alignmentChanged(ui.forumMessage->alignment()); +} + +void CreateForumMsg::mergeFormatOnWordOrSelection(const QTextCharFormat &format) +{ + QTextCursor cursor = ui.forumMessage->textCursor(); + if (!cursor.hasSelection()) + cursor.select(QTextCursor::WordUnderCursor); + cursor.mergeCharFormat(format); + ui.forumMessage->mergeCurrentCharFormat(format); +} + +void CreateForumMsg::fontChanged(const QFont &f) +{ + ui.comboFont->setCurrentIndex(ui.comboFont->findText(QFontInfo(f).family())); + ui.comboSize->setCurrentIndex(ui.comboSize->findText(QString::number(f.pointSize()))); + ui.boldbtn->setChecked(f.bold()); + ui.italicbtn->setChecked(f.italic()); + ui.underlinebtn->setChecked(f.underline()); +} + +void CreateForumMsg::colorChanged(const QColor &c) +{ + QPixmap pix(16, 16); + pix.fill(c); + ui.colorbtn->setIcon(pix); +} + +void CreateForumMsg::alignmentChanged(Qt::Alignment a) +{ + if (a & Qt::AlignLeft) { + actionAlignLeft->setChecked(true); + } else if (a & Qt::AlignHCenter) { + actionAlignCenter->setChecked(true); + } else if (a & Qt::AlignRight) { + actionAlignRight->setChecked(true); + } else if (a & Qt::AlignJustify) { + actionAlignJustify->setChecked(true); + } +} + +void CreateForumMsg::clipboardDataChanged() +{ + actionPaste->setEnabled(!QApplication::clipboard()->text().isEmpty()); +} + +void CreateForumMsg::fileNew() +{ + if (maybeSave()) { + ui.forumMessage->clear(); + //setCurrentFileName(QString()); + } +} + +void CreateForumMsg::fileOpen() +{ + QString fn = QFileDialog::getOpenFileName(this, tr("Open File..."), + QString(), tr("HTML-Files (*.htm *.html);;All Files (*)")); + if (!fn.isEmpty()) + load(fn); +} + +bool CreateForumMsg::fileSave() +{ + if (fileName.isEmpty()) + return fileSaveAs(); + + QFile file(fileName); + if (!file.open(QFile::WriteOnly)) + return false; + QTextStream ts(&file); + ts.setCodec(QTextCodec::codecForName("UTF-8")); + ts << ui.forumMessage->document()->toHtml("UTF-8"); + ui.forumMessage->document()->setModified(false); + return true; +} + +bool CreateForumMsg::fileSaveAs() +{ + QString fn = QFileDialog::getSaveFileName(this, tr("Save as..."), + QString(), tr("HTML-Files (*.htm *.html);;All Files (*)")); + if (fn.isEmpty()) + return false; + setCurrentFileName(fn); + return fileSave(); +} + +void CreateForumMsg::filePrint() +{ +#ifndef QT_NO_PRINTER + QPrinter printer(QPrinter::HighResolution); + printer.setFullPage(true); + QPrintDialog *dlg = new QPrintDialog(&printer, this); + if (ui.forumMessage->textCursor().hasSelection()) + dlg->addEnabledOption(QAbstractPrintDialog::PrintSelection); + dlg->setWindowTitle(tr("Print Document")); + if (dlg->exec() == QDialog::Accepted) { + ui.forumMessage->print(&printer); + } + delete dlg; +#endif +} + +/*void TextEdit::filePrintPreview() +{ + PrintPreview *preview = new PrintPreview(textEdit->document(), this); + preview->setWindowModality(Qt::WindowModal); + preview->setAttribute(Qt::WA_DeleteOnClose); + preview->show(); +}*/ + +void CreateForumMsg::filePrintPdf() +{ +#ifndef QT_NO_PRINTER + QString fileName = QFileDialog::getSaveFileName(this, "Export PDF", + QString(), "*.pdf"); + if (!fileName.isEmpty()) { + if (QFileInfo(fileName).suffix().isEmpty()) + fileName.append(".pdf"); + QPrinter printer(QPrinter::HighResolution); + printer.setOutputFormat(QPrinter::PdfFormat); + printer.setOutputFileName(fileName); + ui.forumMessage->document()->print(&printer); + } +#endif +} + +void CreateForumMsg::setCurrentFileName(const QString &fileName) +{ + this->fileName = fileName; + ui.forumMessage->document()->setModified(false); + + setWindowModified(false); +} + +bool CreateForumMsg::load(const QString &f) +{ + if (!QFile::exists(f)) + return false; + QFile file(f); + if (!file.open(QFile::ReadOnly)) + return false; + + QByteArray data = file.readAll(); + QTextCodec *codec = Qt::codecForHtml(data); + QString str = codec->toUnicode(data); + if (Qt::mightBeRichText(str)) { + ui.forumMessage->setHtml(str); + } else { + str = QString::fromLocal8Bit(data); + ui.forumMessage->setPlainText(str); + } + + setCurrentFileName(f); + return true; +} + + +bool CreateForumMsg::maybeSave() +{ + if (!ui.forumMessage->document()->isModified()) + return true; + if (fileName.startsWith(QLatin1String(":/"))) + return true; + QMessageBox::StandardButton ret; + ret = QMessageBox::warning(this, tr("Save Message"), + tr("Forum Message has not been Sent.\n" + "Do you want to save forum message ?"), + QMessageBox::Save | QMessageBox::Discard + | QMessageBox::Cancel); + if (ret == QMessageBox::Save) + return fileSave(); + else if (ret == QMessageBox::Cancel) + return false; + return true; +} + diff --git a/retroshare-gui/src/gui/forums/CreateForumMsg.h b/retroshare-gui/src/gui/forums/CreateForumMsg.h index 9cf377725..226b32aa1 100644 --- a/retroshare-gui/src/gui/forums/CreateForumMsg.h +++ b/retroshare-gui/src/gui/forums/CreateForumMsg.h @@ -28,6 +28,12 @@ #include "ui_CreateForumMsg.h" +class QAction; +class QComboBox; +class QFontComboBox; +class QTextEdit; +class QTextCharFormat; + class CreateForumMsg : public QMainWindow { Q_OBJECT @@ -35,18 +41,67 @@ class CreateForumMsg : public QMainWindow public: CreateForumMsg(std::string fId, std::string pId); -void newMsg(); /* cleanup */ + void newMsg(); /* cleanup */ private slots: /* actions to take.... */ -void createMsg(); -void cancelMsg(); + void createMsg(); + void cancelMsg(); + + void fileNew(); + void fileOpen(); + bool fileSave(); + bool fileSaveAs(); + void filePrint(); + + //void filePrintPreview(); + void filePrintPdf(); + + void textBold(); + void textUnderline(); + void textItalic(); + void textFamily(const QString &f); + void textSize(const QString &p); + void textStyle(int styleIndex); + void textColor(); + void textAlign(QAction *a); + + void currentCharFormatChanged(const QTextCharFormat &format); + void cursorPositionChanged(); + + void clipboardDataChanged(); private: - std::string mForumId; - std::string mParentId; + std::string mForumId; + std::string mParentId; + + void mergeFormatOnWordOrSelection(const QTextCharFormat &format); + void fontChanged(const QFont &f); + void colorChanged(const QColor &c); + void alignmentChanged(Qt::Alignment a); + + bool load(const QString &f); + bool maybeSave(); + + void setCurrentFileName(const QString &fileName); + + + QAction *actionSave, + *actionAlignLeft, + *actionAlignCenter, + *actionAlignRight, + *actionAlignJustify, + *actionUndo, + *actionRedo, + *actionCut, + *actionCopy, + *actionPaste; + + QString fileName; + + /** Qt Designer generated object */ Ui::CreateForumMsg ui; diff --git a/retroshare-gui/src/gui/forums/CreateForumMsg.ui b/retroshare-gui/src/gui/forums/CreateForumMsg.ui index b2f301ee0..4f4ac40b8 100644 --- a/retroshare-gui/src/gui/forums/CreateForumMsg.ui +++ b/retroshare-gui/src/gui/forums/CreateForumMsg.ui @@ -5,8 +5,8 @@ <rect> <x>0</x> <y>0</y> - <width>441</width> - <height>353</height> + <width>533</width> + <height>398</height> </rect> </property> <property name="windowTitle" > @@ -21,75 +21,220 @@ <widget class="QWidget" name="centralwidget" > <layout class="QGridLayout" > <item row="0" column="0" > - <layout class="QVBoxLayout" > + <layout class="QHBoxLayout" > <item> - <layout class="QHBoxLayout" > - <item> - <widget class="QLabel" name="label_2" > - <property name="text" > - <string>Forum</string> - </property> - </widget> - </item> - <item> - <widget class="QLineEdit" name="forumName" > - <property name="enabled" > - <bool>false</bool> - </property> - </widget> - </item> - </layout> + <widget class="QLabel" name="label_2" > + <property name="text" > + <string>Forum</string> + </property> + </widget> </item> <item> - <layout class="QHBoxLayout" > - <item> - <widget class="QLabel" name="label" > - <property name="text" > - <string>Forum Post Subject</string> - </property> - </widget> - </item> - <item> - <widget class="QLineEdit" name="forumSubject" /> - </item> - </layout> - </item> - <item> - <layout class="QHBoxLayout" > - <item> - <widget class="QLabel" name="label_5" > - <property name="text" > - <string>Forum Post</string> - </property> - </widget> - </item> - <item> - <spacer> - <property name="orientation" > - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" > - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QCheckBox" name="signBox" > - <property name="text" > - <string>Sign Message</string> - </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QTextEdit" name="forumMessage" /> + <widget class="QLineEdit" name="forumName" > + <property name="enabled" > + <bool>false</bool> + </property> + </widget> </item> </layout> </item> + <item row="1" column="0" > + <layout class="QHBoxLayout" > + <item> + <widget class="QLabel" name="label" > + <property name="text" > + <string>Forum Post Subject</string> + </property> + </widget> + </item> + <item> + <widget class="QLineEdit" name="forumSubject" /> + </item> + </layout> + </item> + <item row="2" column="0" > + <layout class="QHBoxLayout" > + <item> + <widget class="QLabel" name="label_5" > + <property name="text" > + <string>Forum Post</string> + </property> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" > + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QCheckBox" name="signBox" > + <property name="text" > + <string>Sign Message</string> + </property> + </widget> + </item> + </layout> + </item> + <item row="3" column="0" > + <layout class="QGridLayout" > + <item row="0" column="0" > + <widget class="QComboBox" name="comboStyle" /> + </item> + <item row="0" column="1" > + <widget class="QFontComboBox" name="comboFont" /> + </item> + <item row="0" column="2" > + <widget class="QComboBox" name="comboSize" > + <property name="toolTip" > + <string>Font size</string> + </property> + </widget> + </item> + <item row="0" column="3" > + <widget class="QPushButton" name="boldbtn" > + <property name="minimumSize" > + <size> + <width>24</width> + <height>24</height> + </size> + </property> + <property name="maximumSize" > + <size> + <width>24</width> + <height>24</height> + </size> + </property> + <property name="toolTip" > + <string>Bold</string> + </property> + <property name="text" > + <string/> + </property> + <property name="checkable" > + <bool>true</bool> + </property> + </widget> + </item> + <item row="0" column="4" > + <widget class="QPushButton" name="underlinebtn" > + <property name="minimumSize" > + <size> + <width>24</width> + <height>24</height> + </size> + </property> + <property name="maximumSize" > + <size> + <width>24</width> + <height>24</height> + </size> + </property> + <property name="toolTip" > + <string>Underline</string> + </property> + <property name="text" > + <string/> + </property> + <property name="checkable" > + <bool>true</bool> + </property> + </widget> + </item> + <item row="0" column="5" > + <widget class="QPushButton" name="italicbtn" > + <property name="minimumSize" > + <size> + <width>24</width> + <height>24</height> + </size> + </property> + <property name="maximumSize" > + <size> + <width>24</width> + <height>24</height> + </size> + </property> + <property name="toolTip" > + <string>Italic</string> + </property> + <property name="text" > + <string/> + </property> + <property name="checkable" > + <bool>true</bool> + </property> + </widget> + </item> + <item row="0" column="6" > + <widget class="QPushButton" name="colorbtn" > + <property name="minimumSize" > + <size> + <width>24</width> + <height>24</height> + </size> + </property> + <property name="maximumSize" > + <size> + <width>24</width> + <height>24</height> + </size> + </property> + <property name="toolTip" > + <string>Color</string> + </property> + <property name="text" > + <string/> + </property> + </widget> + </item> + <item row="0" column="7" > + <widget class="QPushButton" name="textalignmentbtn" > + <property name="minimumSize" > + <size> + <width>24</width> + <height>24</height> + </size> + </property> + <property name="maximumSize" > + <size> + <width>24</width> + <height>24</height> + </size> + </property> + <property name="toolTip" > + <string>Alignment</string> + </property> + <property name="text" > + <string/> + </property> + </widget> + </item> + <item row="0" column="8" > + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" > + <size> + <width>51</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item row="4" column="0" > + <widget class="QTextEdit" name="forumMessage" /> + </item> </layout> </widget> <widget class="QToolBar" name="toolBar" > @@ -105,6 +250,16 @@ <addaction name="postmessage_action" /> <addaction name="close_action" /> </widget> + <widget class="QMenuBar" name="menuBar" > + <property name="geometry" > + <rect> + <x>0</x> + <y>0</y> + <width>533</width> + <height>30</height> + </rect> + </property> + </widget> <action name="postmessage_action" > <property name="icon" > <iconset resource="../images.qrc" >:/images/mail_send24.png</iconset>