forked from mirror/openmw-tes3mp
replaced the script subview status bar with a bottom box (including a status bar)
This commit is contained in:
parent
fc6c14614b
commit
2202973c24
5 changed files with 59 additions and 31 deletions
|
@ -857,8 +857,6 @@ CSVWorld::DialogueSubView::DialogueSubView (const CSMWorld::UniversalId& id,
|
||||||
// bottom box
|
// bottom box
|
||||||
mBottom = new TableBottomBox (creatorFactory, document, id, this);
|
mBottom = new TableBottomBox (creatorFactory, document, id, this);
|
||||||
|
|
||||||
mBottom->setSizePolicy (QSizePolicy::Ignored, QSizePolicy::Fixed);
|
|
||||||
|
|
||||||
connect (mBottom, SIGNAL (requestFocus (const std::string&)),
|
connect (mBottom, SIGNAL (requestFocus (const std::string&)),
|
||||||
this, SLOT (requestFocus (const std::string&)));
|
this, SLOT (requestFocus (const std::string&)));
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
|
|
||||||
#include <QStatusBar>
|
#include <QStatusBar>
|
||||||
#include <QStackedLayout>
|
#include <QStackedLayout>
|
||||||
#include <QLabel>
|
|
||||||
|
|
||||||
#include "../../model/doc/document.hpp"
|
#include "../../model/doc/document.hpp"
|
||||||
#include "../../model/world/universalid.hpp"
|
#include "../../model/world/universalid.hpp"
|
||||||
|
@ -16,6 +15,8 @@
|
||||||
|
|
||||||
#include "scriptedit.hpp"
|
#include "scriptedit.hpp"
|
||||||
#include "recordbuttonbar.hpp"
|
#include "recordbuttonbar.hpp"
|
||||||
|
#include "tablebottombox.hpp"
|
||||||
|
#include "genericcreator.hpp"
|
||||||
|
|
||||||
void CSVWorld::ScriptSubView::addButtonBar()
|
void CSVWorld::ScriptSubView::addButtonBar()
|
||||||
{
|
{
|
||||||
|
@ -33,7 +34,7 @@ void CSVWorld::ScriptSubView::addButtonBar()
|
||||||
}
|
}
|
||||||
|
|
||||||
CSVWorld::ScriptSubView::ScriptSubView (const CSMWorld::UniversalId& id, CSMDoc::Document& document)
|
CSVWorld::ScriptSubView::ScriptSubView (const CSMWorld::UniversalId& id, CSMDoc::Document& document)
|
||||||
: SubView (id), mDocument (document), mColumn (-1), mBottom(0), mStatus(0), mButtons (0),
|
: SubView (id), mDocument (document), mColumn (-1), mBottom(0), mButtons (0),
|
||||||
mCommandDispatcher (document, CSMWorld::UniversalId::getParentType (id.getType()))
|
mCommandDispatcher (document, CSMWorld::UniversalId::getParentType (id.getType()))
|
||||||
{
|
{
|
||||||
std::vector<std::string> selection (1, id.getId());
|
std::vector<std::string> selection (1, id.getId());
|
||||||
|
@ -65,18 +66,13 @@ CSVWorld::ScriptSubView::ScriptSubView (const CSMWorld::UniversalId& id, CSMDoc:
|
||||||
if (CSMSettings::UserSettings::instance().setting ("script-editor/toolbar", QString("true")) == "true")
|
if (CSMSettings::UserSettings::instance().setting ("script-editor/toolbar", QString("true")) == "true")
|
||||||
addButtonBar();
|
addButtonBar();
|
||||||
|
|
||||||
// status bar
|
// bottom box
|
||||||
QStatusBar *statusBar = new QStatusBar(mBottom);
|
mBottom = new TableBottomBox (CreatorFactory<GenericCreator>(), document, id, this);
|
||||||
mStatus = new QLabel(mBottom);
|
|
||||||
statusBar->addWidget (mStatus);
|
|
||||||
|
|
||||||
mBottom = new QWidget(this);
|
connect (mBottom, SIGNAL (requestFocus (const std::string&)),
|
||||||
QStackedLayout *bottmLayout = new QStackedLayout(mBottom);
|
this, SLOT (requestFocus (const std::string&)));
|
||||||
bottmLayout->setContentsMargins (0, 0, 0, 0);
|
|
||||||
bottmLayout->addWidget (statusBar);
|
|
||||||
mBottom->setLayout (bottmLayout);
|
|
||||||
|
|
||||||
mLayout.addWidget (mBottom, 0);
|
mLayout.addWidget (mBottom);
|
||||||
|
|
||||||
// signals
|
// signals
|
||||||
connect (mEditor, SIGNAL (textChanged()), this, SLOT (textChanged()));
|
connect (mEditor, SIGNAL (textChanged()), this, SLOT (textChanged()));
|
||||||
|
@ -124,14 +120,15 @@ void CSVWorld::ScriptSubView::updateUserSetting (const QString& name, const QStr
|
||||||
mButtons->updateUserSetting (name, value);
|
mButtons->updateUserSetting (name, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CSVWorld::ScriptSubView::setStatusBar (bool show)
|
||||||
|
{
|
||||||
|
mBottom->setStatusBar (show);
|
||||||
|
}
|
||||||
|
|
||||||
void CSVWorld::ScriptSubView::updateStatusBar ()
|
void CSVWorld::ScriptSubView::updateStatusBar ()
|
||||||
{
|
{
|
||||||
std::ostringstream stream;
|
mBottom->positionChanged (mEditor->textCursor().blockNumber() + 1,
|
||||||
|
mEditor->textCursor().columnNumber() + 1);
|
||||||
stream << "(" << mEditor->textCursor().blockNumber() + 1 << ", "
|
|
||||||
<< mEditor->textCursor().columnNumber() + 1 << ")";
|
|
||||||
|
|
||||||
mStatus->setText (QString::fromUtf8 (stream.str().c_str()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSVWorld::ScriptSubView::setEditLock (bool locked)
|
void CSVWorld::ScriptSubView::setEditLock (bool locked)
|
||||||
|
|
|
@ -25,6 +25,7 @@ namespace CSVWorld
|
||||||
{
|
{
|
||||||
class ScriptEdit;
|
class ScriptEdit;
|
||||||
class RecordButtonBar;
|
class RecordButtonBar;
|
||||||
|
class TableBottomBox;
|
||||||
|
|
||||||
class ScriptSubView : public CSVDoc::SubView
|
class ScriptSubView : public CSVDoc::SubView
|
||||||
{
|
{
|
||||||
|
@ -34,8 +35,7 @@ namespace CSVWorld
|
||||||
CSMDoc::Document& mDocument;
|
CSMDoc::Document& mDocument;
|
||||||
CSMWorld::IdTable *mModel;
|
CSMWorld::IdTable *mModel;
|
||||||
int mColumn;
|
int mColumn;
|
||||||
QWidget *mBottom;
|
TableBottomBox *mBottom;
|
||||||
QLabel *mStatus;
|
|
||||||
RecordButtonBar *mButtons;
|
RecordButtonBar *mButtons;
|
||||||
CSMWorld::CommandDispatcher mCommandDispatcher;
|
CSMWorld::CommandDispatcher mCommandDispatcher;
|
||||||
QVBoxLayout mLayout;
|
QVBoxLayout mLayout;
|
||||||
|
@ -54,6 +54,8 @@ namespace CSVWorld
|
||||||
|
|
||||||
virtual void updateUserSetting (const QString& name, const QStringList& value);
|
virtual void updateUserSetting (const QString& name, const QStringList& value);
|
||||||
|
|
||||||
|
virtual void setStatusBar (bool show);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
|
||||||
void textChanged();
|
void textChanged();
|
||||||
|
|
|
@ -35,6 +35,14 @@ void CSVWorld::TableBottomBox::updateStatus()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (mHasPosition)
|
||||||
|
{
|
||||||
|
if (!first)
|
||||||
|
stream << " -- ";
|
||||||
|
|
||||||
|
stream << "(" << mRow << ", " << mColumn << ")";
|
||||||
|
}
|
||||||
|
|
||||||
mStatus->setText (QString::fromUtf8 (stream.str().c_str()));
|
mStatus->setText (QString::fromUtf8 (stream.str().c_str()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -43,7 +51,7 @@ CSVWorld::TableBottomBox::TableBottomBox (const CreatorFactoryBase& creatorFacto
|
||||||
CSMDoc::Document& document,
|
CSMDoc::Document& document,
|
||||||
const CSMWorld::UniversalId& id,
|
const CSMWorld::UniversalId& id,
|
||||||
QWidget *parent)
|
QWidget *parent)
|
||||||
: QWidget (parent), mShowStatusBar (false), mCreating (false)
|
: QWidget (parent), mShowStatusBar (false), mCreating (false), mHasPosition (false)
|
||||||
{
|
{
|
||||||
for (int i=0; i<4; ++i)
|
for (int i=0; i<4; ++i)
|
||||||
mStatusCount[i] = 0;
|
mStatusCount[i] = 0;
|
||||||
|
@ -74,6 +82,8 @@ CSVWorld::TableBottomBox::TableBottomBox (const CreatorFactoryBase& creatorFacto
|
||||||
connect (mCreator, SIGNAL (requestFocus (const std::string&)),
|
connect (mCreator, SIGNAL (requestFocus (const std::string&)),
|
||||||
this, SIGNAL (requestFocus (const std::string&)));
|
this, SIGNAL (requestFocus (const std::string&)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setSizePolicy (QSizePolicy::Ignored, QSizePolicy::Fixed);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSVWorld::TableBottomBox::setEditLock (bool locked)
|
void CSVWorld::TableBottomBox::setEditLock (bool locked)
|
||||||
|
@ -152,6 +162,20 @@ void CSVWorld::TableBottomBox::tableSizeChanged (int size, int deleted, int modi
|
||||||
updateStatus();
|
updateStatus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CSVWorld::TableBottomBox::positionChanged (int row, int column)
|
||||||
|
{
|
||||||
|
mRow = row;
|
||||||
|
mColumn = column;
|
||||||
|
mHasPosition = true;
|
||||||
|
updateStatus();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CSVWorld::TableBottomBox::noMorePosition()
|
||||||
|
{
|
||||||
|
mHasPosition = false;
|
||||||
|
updateStatus();
|
||||||
|
}
|
||||||
|
|
||||||
void CSVWorld::TableBottomBox::createRequest()
|
void CSVWorld::TableBottomBox::createRequest()
|
||||||
{
|
{
|
||||||
mCreator->reset();
|
mCreator->reset();
|
||||||
|
|
|
@ -30,6 +30,9 @@ namespace CSVWorld
|
||||||
Creator *mCreator;
|
Creator *mCreator;
|
||||||
bool mCreating;
|
bool mCreating;
|
||||||
QStackedLayout *mLayout;
|
QStackedLayout *mLayout;
|
||||||
|
bool mHasPosition;
|
||||||
|
int mRow;
|
||||||
|
int mColumn;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
@ -77,6 +80,10 @@ namespace CSVWorld
|
||||||
/// \param deleted Number of deleted records
|
/// \param deleted Number of deleted records
|
||||||
/// \param modified Number of added and modified records
|
/// \param modified Number of added and modified records
|
||||||
|
|
||||||
|
void positionChanged (int row, int column);
|
||||||
|
|
||||||
|
void noMorePosition();
|
||||||
|
|
||||||
void createRequest();
|
void createRequest();
|
||||||
void cloneRequest(const std::string& id,
|
void cloneRequest(const std::string& id,
|
||||||
const CSMWorld::UniversalId::Type type);
|
const CSMWorld::UniversalId::Type type);
|
||||||
|
|
Loading…
Reference in a new issue