mirror of
https://github.com/overte-org/overte.git
synced 2025-04-10 16:12:28 +02:00
Fixed docking of ChatWindow
Temporary Pin Icon, replace with a nice looking one please
This commit is contained in:
parent
3f0793286f
commit
f0463a5679
7 changed files with 283 additions and 3 deletions
98
interface/resources/images/pin.svg
Normal file
98
interface/resources/images/pin.svg
Normal file
|
@ -0,0 +1,98 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="44px"
|
||||
height="44px"
|
||||
viewBox="0 0 44 44"
|
||||
version="1.1"
|
||||
id="svg2"
|
||||
inkscape:version="0.48.3.1 r9886"
|
||||
sodipodi:docname="close.svg">
|
||||
<metadata
|
||||
id="metadata16">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title>Slice 1</dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="640"
|
||||
inkscape:window-height="480"
|
||||
id="namedview14"
|
||||
showgrid="false"
|
||||
inkscape:zoom="3.7926636"
|
||||
inkscape:cx="57.156875"
|
||||
inkscape:cy="33.978935"
|
||||
inkscape:window-x="536"
|
||||
inkscape:window-y="258"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg2" />
|
||||
<title
|
||||
id="title4">Slice 1</title>
|
||||
<description
|
||||
id="description6">Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
|
||||
<defs
|
||||
id="defs8" />
|
||||
<g
|
||||
id="Page-1"
|
||||
sketch:type="MSPage"
|
||||
transform="translate(0.52733383,0.52733392)"
|
||||
style="fill:none;stroke:none" />
|
||||
<rect
|
||||
id="rect2993"
|
||||
width="5.7796612"
|
||||
height="26.101694"
|
||||
x="19.730724"
|
||||
y="16.374792"
|
||||
ry="3.371469" />
|
||||
<rect
|
||||
id="rect2995"
|
||||
width="35.423729"
|
||||
height="2.9830508"
|
||||
x="4.6290293"
|
||||
y="2.3917408"
|
||||
ry="1.4915254" />
|
||||
<rect
|
||||
id="rect2999"
|
||||
width="31.135593"
|
||||
height="21.067797"
|
||||
x="6.6798768"
|
||||
y="4.0697069"
|
||||
ry="1.4915254" />
|
||||
<rect
|
||||
style="fill:#ff0000"
|
||||
id="rect3003"
|
||||
width="27.779657"
|
||||
height="17.711861"
|
||||
x="8.171401"
|
||||
y="5.3747911"
|
||||
ry="0.46610171" />
|
||||
<rect
|
||||
style="fill:#999999"
|
||||
id="rect3011"
|
||||
width="3.1694915"
|
||||
height="13.983051"
|
||||
x="21.035809"
|
||||
y="25.883266"
|
||||
ry="0.46610171" />
|
||||
</svg>
|
After Width: | Height: | Size: 2.5 KiB |
106
interface/resources/images/pinned.svg
Normal file
106
interface/resources/images/pinned.svg
Normal file
|
@ -0,0 +1,106 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="44px"
|
||||
height="44px"
|
||||
viewBox="0 0 44 44"
|
||||
version="1.1"
|
||||
id="svg2"
|
||||
inkscape:version="0.48.3.1 r9886"
|
||||
sodipodi:docname="pin.svg">
|
||||
<metadata
|
||||
id="metadata16">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title>Slice 1</dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1058"
|
||||
id="namedview14"
|
||||
showgrid="false"
|
||||
inkscape:zoom="3.7926636"
|
||||
inkscape:cx="39.754857"
|
||||
inkscape:cy="33.978935"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<title
|
||||
id="title4">Slice 1</title>
|
||||
<description
|
||||
id="description6">Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
|
||||
<defs
|
||||
id="defs8" />
|
||||
<g
|
||||
id="Page-1"
|
||||
sketch:type="MSPage"
|
||||
transform="translate(0.52733383,0.52733392)"
|
||||
style="fill:none;stroke:none" />
|
||||
<rect
|
||||
style="fill:#b3b3b3"
|
||||
id="rect3013"
|
||||
width="43.768692"
|
||||
height="44.296078"
|
||||
x="0.26366693"
|
||||
y="-0.032378189"
|
||||
ry="0.46610171" />
|
||||
<rect
|
||||
id="rect2993"
|
||||
width="5.7796612"
|
||||
height="26.101694"
|
||||
x="19.730724"
|
||||
y="16.374792"
|
||||
ry="3.371469" />
|
||||
<rect
|
||||
id="rect2995"
|
||||
width="35.423729"
|
||||
height="2.9830508"
|
||||
x="4.6290293"
|
||||
y="2.3917408"
|
||||
ry="1.4915254" />
|
||||
<rect
|
||||
id="rect2999"
|
||||
width="31.135593"
|
||||
height="21.067797"
|
||||
x="6.6798768"
|
||||
y="4.0697069"
|
||||
ry="1.4915254" />
|
||||
<rect
|
||||
style="fill:#ff0000"
|
||||
id="rect3003"
|
||||
width="27.779657"
|
||||
height="17.711861"
|
||||
x="8.171401"
|
||||
y="5.3747911"
|
||||
ry="0.46610171" />
|
||||
<rect
|
||||
style="fill:#999999"
|
||||
id="rect3011"
|
||||
width="3.1694915"
|
||||
height="13.983051"
|
||||
x="21.035809"
|
||||
y="25.883266"
|
||||
ry="0.46610171" />
|
||||
</svg>
|
After Width: | Height: | Size: 2.7 KiB |
|
@ -4,5 +4,7 @@
|
|||
<file>images/kill-script.svg</file>
|
||||
<file>images/reload.svg</file>
|
||||
<file>images/stop.svg</file>
|
||||
<file>images/pin.svg</file>
|
||||
<file>images/pinned.svg</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
|
|
@ -1207,7 +1207,7 @@ void Menu::showMetavoxelEditor() {
|
|||
void Menu::showChat() {
|
||||
QMainWindow* mainWindow = Application::getInstance()->getWindow();
|
||||
if (!_chatWindow) {
|
||||
mainWindow->addDockWidget(Qt::NoDockWidgetArea, _chatWindow = new ChatWindow());
|
||||
mainWindow->addDockWidget(Qt::RightDockWidgetArea, _chatWindow = new ChatWindow());
|
||||
}
|
||||
if (!_chatWindow->toggleViewAction()->isChecked()) {
|
||||
int width = _chatWindow->width();
|
||||
|
|
|
@ -12,10 +12,12 @@
|
|||
#include <QGridLayout>
|
||||
#include <QFrame>
|
||||
#include <QLayoutItem>
|
||||
#include <QMainWindow>
|
||||
#include <QPalette>
|
||||
#include <QScrollBar>
|
||||
#include <QSizePolicy>
|
||||
#include <QTimer>
|
||||
#include <QWidget>
|
||||
|
||||
#include "Application.h"
|
||||
#include "FlowLayout.h"
|
||||
|
@ -35,7 +37,9 @@ ChatWindow::ChatWindow() :
|
|||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
// remove the title bar (see the Qt docs on setTitleBarWidget)
|
||||
// remove the title bar (see the Qt docs on setTitleBarWidget), but we keep it for undocking
|
||||
//
|
||||
titleBar = titleBarWidget();
|
||||
setTitleBarWidget(new QWidget());
|
||||
|
||||
FlowLayout* flowLayout = new FlowLayout(0, 4, 4);
|
||||
|
@ -260,3 +264,16 @@ void ChatWindow::messageReceived(const QXmppMessage& message) {
|
|||
}
|
||||
|
||||
#endif
|
||||
|
||||
void ChatWindow::togglePinned() {
|
||||
QMainWindow* mainWindow = Application::getInstance()->getWindow();
|
||||
mainWindow->removeDockWidget(this);
|
||||
if (ui->togglePinnedButton->isChecked()) {
|
||||
mainWindow->addDockWidget(ui->togglePinnedButton->isChecked() ? Qt::RightDockWidgetArea : Qt::NoDockWidgetArea, this);
|
||||
}
|
||||
if (!this->toggleViewAction()->isChecked()) {
|
||||
this->toggleViewAction()->trigger();
|
||||
}
|
||||
this->setFloating(!ui->togglePinnedButton->isChecked());
|
||||
setTitleBarWidget(ui->togglePinnedButton->isChecked()?new QWidget():titleBar);
|
||||
}
|
|
@ -50,12 +50,14 @@ private:
|
|||
void addTimeStamp();
|
||||
|
||||
Ui::ChatWindow* ui;
|
||||
QWidget* titleBar;
|
||||
int numMessagesAfterLastTimeStamp;
|
||||
QDateTime lastMessageStamp;
|
||||
|
||||
private slots:
|
||||
void connected();
|
||||
void timeout();
|
||||
void togglePinned();
|
||||
#ifdef HAVE_QXMPP
|
||||
void error(QXmppClient::Error error);
|
||||
void participantsChanged();
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
<string notr="true">font-family: Helvetica, Arial, sans-serif;</string>
|
||||
</property>
|
||||
<property name="features">
|
||||
<set>QDockWidget::NoDockWidgetFeatures</set>
|
||||
<set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set>
|
||||
</property>
|
||||
<property name="allowedAreas">
|
||||
<set>Qt::NoDockWidgetArea</set>
|
||||
|
@ -79,6 +79,45 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="togglePinnedButton">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16</width>
|
||||
<height>16</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../resources/resources.qrc">
|
||||
<normaloff>:/images/pin.svg</normaloff>
|
||||
<normalon>:/images/pinned.svg</normalon>:/images/pin.svg</iconset>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="default">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="closeButton">
|
||||
<property name="sizePolicy">
|
||||
|
@ -204,6 +243,22 @@
|
|||
<include location="../resources/resources.qrc"/>
|
||||
</resources>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>togglePinnedButton</sender>
|
||||
<signal>clicked()</signal>
|
||||
<receiver>ChatWindow</receiver>
|
||||
<slot>togglePinned()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>390</x>
|
||||
<y>42</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>550</x>
|
||||
<y>42</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>closeButton</sender>
|
||||
<signal>clicked()</signal>
|
||||
|
|
Loading…
Reference in a new issue