forked from mirror/openmw-tes3mp
added creator bar UI and cancel button
This commit is contained in:
parent
b8ac45defe
commit
fee748d4b5
6 changed files with 79 additions and 13 deletions
|
@ -57,13 +57,13 @@ opencs_hdrs_noqt (view/doc
|
||||||
|
|
||||||
|
|
||||||
opencs_units (view/world
|
opencs_units (view/world
|
||||||
table tablesubview scriptsubview util regionmapsubview tablebottombox
|
table tablesubview scriptsubview util regionmapsubview tablebottombox creator genericcreator
|
||||||
)
|
)
|
||||||
|
|
||||||
opencs_units_noqt (view/world
|
opencs_units_noqt (view/world
|
||||||
dialoguesubview subviews
|
dialoguesubview subviews
|
||||||
enumdelegate vartypedelegate recordstatusdelegate refidtypedelegate datadisplaydelegate
|
enumdelegate vartypedelegate recordstatusdelegate refidtypedelegate datadisplaydelegate
|
||||||
scripthighlighter creator genericcreator
|
scripthighlighter
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -8,9 +8,17 @@ namespace CSVWorld
|
||||||
/// \brief Record creator UI base class
|
/// \brief Record creator UI base class
|
||||||
class Creator : public QWidget
|
class Creator : public QWidget
|
||||||
{
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
virtual ~Creator();
|
virtual ~Creator();
|
||||||
|
|
||||||
|
virtual void reset() = 0;
|
||||||
|
|
||||||
|
signals:
|
||||||
|
|
||||||
|
void done();
|
||||||
};
|
};
|
||||||
|
|
||||||
/// \brief Base class for Creator factory
|
/// \brief Base class for Creator factory
|
||||||
|
|
|
@ -1,2 +1,29 @@
|
||||||
|
|
||||||
#include "genericcreator.hpp"
|
#include "genericcreator.hpp"
|
||||||
|
|
||||||
|
#include <QHBoxLayout>
|
||||||
|
#include <QPushButton>
|
||||||
|
#include <QLineEdit>
|
||||||
|
|
||||||
|
CSVWorld::GenericCreator::GenericCreator()
|
||||||
|
{
|
||||||
|
QHBoxLayout *layout = new QHBoxLayout;
|
||||||
|
|
||||||
|
QLineEdit *name = new QLineEdit;
|
||||||
|
layout->addWidget (name, 1);
|
||||||
|
|
||||||
|
QPushButton *createButton = new QPushButton ("Create");
|
||||||
|
layout->addWidget (createButton);
|
||||||
|
|
||||||
|
QPushButton *cancelButton = new QPushButton ("Cancel");
|
||||||
|
layout->addWidget (cancelButton);
|
||||||
|
|
||||||
|
connect (cancelButton, SIGNAL (clicked (bool)), this, SIGNAL (done()));
|
||||||
|
|
||||||
|
setLayout (layout);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CSVWorld::GenericCreator::reset()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
|
@ -7,7 +7,13 @@ namespace CSVWorld
|
||||||
{
|
{
|
||||||
class GenericCreator : public Creator
|
class GenericCreator : public Creator
|
||||||
{
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
GenericCreator();
|
||||||
|
|
||||||
|
virtual void reset();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -40,28 +40,30 @@ void CSVWorld::TableBottomBox::updateStatus()
|
||||||
}
|
}
|
||||||
|
|
||||||
CSVWorld::TableBottomBox::TableBottomBox (const CreatorFactoryBase& creatorFactory, QWidget *parent)
|
CSVWorld::TableBottomBox::TableBottomBox (const CreatorFactoryBase& creatorFactory, QWidget *parent)
|
||||||
: QWidget (parent), mShowStatusBar (false)
|
: QWidget (parent), mShowStatusBar (false), mCreating (false)
|
||||||
{
|
{
|
||||||
for (int i=0; i<4; ++i)
|
for (int i=0; i<4; ++i)
|
||||||
mStatusCount[i] = 0;
|
mStatusCount[i] = 0;
|
||||||
|
|
||||||
setVisible (false);
|
setVisible (false);
|
||||||
|
|
||||||
QStackedLayout *layout = new QStackedLayout;
|
mLayout = new QStackedLayout;
|
||||||
|
|
||||||
mStatus = new QLabel;
|
mStatus = new QLabel;
|
||||||
|
|
||||||
QStatusBar *statusBar = new QStatusBar;
|
mStatusBar = new QStatusBar;
|
||||||
|
|
||||||
statusBar->addWidget (mStatus);
|
mStatusBar->addWidget (mStatus);
|
||||||
|
|
||||||
layout->addWidget (statusBar);
|
mLayout->addWidget (mStatusBar);
|
||||||
|
|
||||||
setLayout (layout);
|
setLayout (mLayout);
|
||||||
|
|
||||||
mCreator = creatorFactory.makeCreator();
|
mCreator = creatorFactory.makeCreator();
|
||||||
|
|
||||||
layout->addWidget (mCreator);
|
mLayout->addWidget (mCreator);
|
||||||
|
|
||||||
|
connect (mCreator, SIGNAL (done()), this, SLOT (createRequestDone()));
|
||||||
}
|
}
|
||||||
|
|
||||||
CSVWorld::TableBottomBox::~TableBottomBox()
|
CSVWorld::TableBottomBox::~TableBottomBox()
|
||||||
|
@ -73,7 +75,7 @@ void CSVWorld::TableBottomBox::setStatusBar (bool show)
|
||||||
{
|
{
|
||||||
if (show!=mShowStatusBar)
|
if (show!=mShowStatusBar)
|
||||||
{
|
{
|
||||||
setVisible (show);
|
setVisible (show || mCreating);
|
||||||
|
|
||||||
mShowStatusBar = show;
|
mShowStatusBar = show;
|
||||||
|
|
||||||
|
@ -87,6 +89,18 @@ bool CSVWorld::TableBottomBox::canCreateAndDelete() const
|
||||||
return mCreator;
|
return mCreator;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CSVWorld::TableBottomBox::createRequestDone()
|
||||||
|
{
|
||||||
|
if (!mShowStatusBar)
|
||||||
|
setVisible (false);
|
||||||
|
else
|
||||||
|
updateStatus();
|
||||||
|
|
||||||
|
mLayout->setCurrentWidget (mStatusBar);
|
||||||
|
|
||||||
|
mCreating = false;
|
||||||
|
}
|
||||||
|
|
||||||
void CSVWorld::TableBottomBox::selectionSizeChanged (int size)
|
void CSVWorld::TableBottomBox::selectionSizeChanged (int size)
|
||||||
{
|
{
|
||||||
if (mStatusCount[3]!=size)
|
if (mStatusCount[3]!=size)
|
||||||
|
@ -122,8 +136,9 @@ void CSVWorld::TableBottomBox::tableSizeChanged (int size, int deleted, int modi
|
||||||
updateStatus();
|
updateStatus();
|
||||||
}
|
}
|
||||||
|
|
||||||
#include <iostream>
|
|
||||||
void CSVWorld::TableBottomBox::createRequest()
|
void CSVWorld::TableBottomBox::createRequest()
|
||||||
{
|
{
|
||||||
std::cout<<"create"<<std::endl;
|
mLayout->setCurrentWidget (mCreator);
|
||||||
|
setVisible (true);
|
||||||
|
mCreating = true;
|
||||||
}
|
}
|
|
@ -4,6 +4,8 @@
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
|
||||||
class QLabel;
|
class QLabel;
|
||||||
|
class QStackedLayout;
|
||||||
|
class QStatusBar;
|
||||||
|
|
||||||
namespace CSVWorld
|
namespace CSVWorld
|
||||||
{
|
{
|
||||||
|
@ -16,8 +18,11 @@ namespace CSVWorld
|
||||||
|
|
||||||
bool mShowStatusBar;
|
bool mShowStatusBar;
|
||||||
QLabel *mStatus;
|
QLabel *mStatus;
|
||||||
|
QStatusBar *mStatusBar;
|
||||||
int mStatusCount[4];
|
int mStatusCount[4];
|
||||||
Creator *mCreator;
|
Creator *mCreator;
|
||||||
|
bool mCreating;
|
||||||
|
QStackedLayout *mLayout;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
@ -40,6 +45,11 @@ namespace CSVWorld
|
||||||
///
|
///
|
||||||
/// \note The BotomBox does not partake in the deletion of records.
|
/// \note The BotomBox does not partake in the deletion of records.
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
|
||||||
|
void createRequestDone();
|
||||||
|
///< \note This slot being called does not imply success.
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
|
||||||
void selectionSizeChanged (int size);
|
void selectionSizeChanged (int size);
|
||||||
|
|
Loading…
Reference in a new issue