mirror of
https://github.com/vcmi/vcmi.git
synced 2024-11-28 08:48:48 +02:00
Add rumors
This commit is contained in:
parent
0148662847
commit
320cd6bf16
@ -20,6 +20,7 @@ set(editor_SRCS
|
||||
mapsettings/victoryconditions.cpp
|
||||
mapsettings/loseconditions.cpp
|
||||
mapsettings/eventsettings.cpp
|
||||
mapsettings/rumorsettings.cpp
|
||||
playersettings.cpp
|
||||
playerparams.cpp
|
||||
scenelayer.cpp
|
||||
@ -55,6 +56,7 @@ set(editor_HEADERS
|
||||
mapsettings/victoryconditions.h
|
||||
mapsettings/loseconditions.h
|
||||
mapsettings/eventsettings.h
|
||||
mapsettings/rumorsettings.h
|
||||
playersettings.h
|
||||
playerparams.h
|
||||
scenelayer.h
|
||||
@ -80,6 +82,7 @@ set(editor_FORMS
|
||||
mapsettings/victoryconditions.ui
|
||||
mapsettings/loseconditions.ui
|
||||
mapsettings/eventsettings.ui
|
||||
mapsettings/rumorsettings.ui
|
||||
playersettings.ui
|
||||
playerparams.ui
|
||||
validator.ui
|
||||
|
@ -107,7 +107,7 @@ void EventSettings::on_timedEventAdd_clicked()
|
||||
void EventSettings::on_timedEventRemove_clicked()
|
||||
{
|
||||
if(auto * item = ui->eventsList->currentItem())
|
||||
ui->eventsList->removeItemWidget(item);
|
||||
ui->eventsList->takeItem(ui->eventsList->row(item));
|
||||
}
|
||||
|
||||
|
||||
|
@ -14,6 +14,18 @@
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_7">
|
||||
<item>
|
||||
|
@ -14,6 +14,18 @@
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
|
@ -14,6 +14,18 @@
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_6">
|
||||
<property name="leftMargin">
|
||||
|
@ -68,6 +68,7 @@ MapSettings::MapSettings(MapController & ctrl, QWidget *parent) :
|
||||
ui->victory->initialize(*controller.map());
|
||||
ui->lose->initialize(*controller.map());
|
||||
ui->events->initialize(*controller.map());
|
||||
ui->rumors->initialize(*controller.map());
|
||||
}
|
||||
|
||||
MapSettings::~MapSettings()
|
||||
@ -98,6 +99,7 @@ void MapSettings::on_pushButton_clicked()
|
||||
ui->victory->update(*controller.map());
|
||||
ui->lose->update(*controller.map());
|
||||
ui->events->update(*controller.map());
|
||||
ui->rumors->update(*controller.map());
|
||||
|
||||
controller.commitChangeWithoutRedraw();
|
||||
|
||||
|
@ -35,7 +35,7 @@
|
||||
<item>
|
||||
<widget class="QTabWidget" name="tabWidget">
|
||||
<property name="currentIndex">
|
||||
<number>2</number>
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="tab">
|
||||
<attribute name="title">
|
||||
@ -49,7 +49,7 @@
|
||||
<number>12</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>12</number>
|
||||
<number>3</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="GeneralSettings" name="general" native="true"/>
|
||||
@ -92,7 +92,7 @@
|
||||
<item>
|
||||
<widget class="QTabWidget" name="tabWidget_2">
|
||||
<property name="currentIndex">
|
||||
<number>2</number>
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="tab_7">
|
||||
<attribute name="title">
|
||||
@ -151,6 +151,25 @@
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tab_11">
|
||||
<attribute name="title">
|
||||
<string>Rumors</string>
|
||||
</attribute>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_9">
|
||||
<property name="leftMargin">
|
||||
<number>12</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>12</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>12</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="RumorSettings" name="rumors" native="true"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
@ -337,6 +356,12 @@
|
||||
<header>mapsettings/eventsettings.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>RumorSettings</class>
|
||||
<extends>QWidget</extends>
|
||||
<header>mapsettings/rumorsettings.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
||||
<connections/>
|
||||
|
@ -14,6 +14,18 @@
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_7">
|
||||
<property name="text">
|
||||
|
81
mapeditor/mapsettings/rumorsettings.cpp
Normal file
81
mapeditor/mapsettings/rumorsettings.cpp
Normal file
@ -0,0 +1,81 @@
|
||||
/*
|
||||
* rumorsettings.cpp, part of VCMI engine
|
||||
*
|
||||
* Authors: listed in file AUTHORS in main folder
|
||||
*
|
||||
* License: GNU General Public License v2.0 or later
|
||||
* Full text of license available in license.txt file, in main folder
|
||||
*
|
||||
*/
|
||||
#include "StdInc.h"
|
||||
#include "rumorsettings.h"
|
||||
#include "ui_rumorsettings.h"
|
||||
|
||||
RumorSettings::RumorSettings(QWidget *parent) :
|
||||
AbstractSettings(parent),
|
||||
ui(new Ui::RumorSettings)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
}
|
||||
|
||||
RumorSettings::~RumorSettings()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void RumorSettings::initialize(const CMap & map)
|
||||
{
|
||||
for(auto & rumor : map.rumors)
|
||||
{
|
||||
auto * item = new QListWidgetItem(QString::fromStdString(rumor.name));
|
||||
item->setData(Qt::UserRole, QVariant(QString::fromStdString(rumor.text)));
|
||||
item->setFlags(item->flags() | Qt::ItemIsEditable);
|
||||
ui->rumors->addItem(item);
|
||||
}
|
||||
}
|
||||
|
||||
void RumorSettings::update(CMap & map)
|
||||
{
|
||||
map.rumors.clear();
|
||||
for(int i = 0; i < ui->rumors->count(); ++i)
|
||||
{
|
||||
Rumor rumor;
|
||||
rumor.name = ui->rumors->item(i)->text().toStdString();
|
||||
rumor.text = ui->rumors->item(i)->data(Qt::UserRole).toString().toStdString();
|
||||
map.rumors.push_back(rumor);
|
||||
}
|
||||
}
|
||||
|
||||
void RumorSettings::on_message_textChanged()
|
||||
{
|
||||
if(auto item = ui->rumors->currentItem())
|
||||
item->setData(Qt::UserRole, QVariant(ui->message->toPlainText()));
|
||||
}
|
||||
|
||||
void RumorSettings::on_add_clicked()
|
||||
{
|
||||
auto * item = new QListWidgetItem(tr("New rumor"));
|
||||
item->setData(Qt::UserRole, QVariant(""));
|
||||
item->setFlags(item->flags() | Qt::ItemIsEditable);
|
||||
ui->rumors->addItem(item);
|
||||
emit ui->rumors->itemActivated(item);
|
||||
}
|
||||
|
||||
void RumorSettings::on_remove_clicked()
|
||||
{
|
||||
if(auto item = ui->rumors->currentItem())
|
||||
{
|
||||
ui->message->setPlainText("");
|
||||
ui->rumors->takeItem(ui->rumors->row(item));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void RumorSettings::on_rumors_itemSelectionChanged()
|
||||
{
|
||||
if(auto item = ui->rumors->currentItem())
|
||||
ui->message->setPlainText(item->data(Qt::UserRole).toString());
|
||||
}
|
||||
|
||||
|
||||
|
43
mapeditor/mapsettings/rumorsettings.h
Normal file
43
mapeditor/mapsettings/rumorsettings.h
Normal file
@ -0,0 +1,43 @@
|
||||
/*
|
||||
* rumorsettings.h, part of VCMI engine
|
||||
*
|
||||
* Authors: listed in file AUTHORS in main folder
|
||||
*
|
||||
* License: GNU General Public License v2.0 or later
|
||||
* Full text of license available in license.txt file, in main folder
|
||||
*
|
||||
*/
|
||||
#ifndef RUMORSETTINGS_H
|
||||
#define RUMORSETTINGS_H
|
||||
|
||||
#include "abstractsettings.h"
|
||||
|
||||
namespace Ui {
|
||||
class RumorSettings;
|
||||
}
|
||||
|
||||
class RumorSettings : public AbstractSettings
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit RumorSettings(QWidget *parent = nullptr);
|
||||
~RumorSettings();
|
||||
|
||||
void initialize(const CMap & map) override;
|
||||
void update(CMap & map) override;
|
||||
|
||||
private slots:
|
||||
void on_message_textChanged();
|
||||
|
||||
void on_add_clicked();
|
||||
|
||||
void on_remove_clicked();
|
||||
|
||||
void on_rumors_itemSelectionChanged();
|
||||
|
||||
private:
|
||||
Ui::RumorSettings *ui;
|
||||
};
|
||||
|
||||
#endif // RUMORSETTINGS_H
|
105
mapeditor/mapsettings/rumorsettings.ui
Normal file
105
mapeditor/mapsettings/rumorsettings.ui
Normal file
@ -0,0 +1,105 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>RumorSettings</class>
|
||||
<widget class="QWidget" name="RumorSettings">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>538</width>
|
||||
<height>470</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<property name="bottomMargin">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Tavern rumors</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="add">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>90</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Add</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="remove">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>90</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Remove</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QListWidget" name="rumors">
|
||||
<property name="editTriggers">
|
||||
<set>QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed</set>
|
||||
</property>
|
||||
<property name="selectionBehavior">
|
||||
<enum>QAbstractItemView::SelectRows</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPlainTextEdit" name="message"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
@ -14,6 +14,18 @@
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<property name="rightMargin">
|
||||
|
Loading…
Reference in New Issue
Block a user