mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-03-29 22:20:33 +00:00
Merged pull request 1754
This commit is contained in:
commit
17db4b4db3
@ -24,6 +24,7 @@
|
|||||||
Bug #4429: [Windows] Error on build INSTALL.vcxproj project (debug) with cmake 3.7.2
|
Bug #4429: [Windows] Error on build INSTALL.vcxproj project (debug) with cmake 3.7.2
|
||||||
Bug #4432: Guards behaviour is incorrect if they do not have AI packages
|
Bug #4432: Guards behaviour is incorrect if they do not have AI packages
|
||||||
Bug #4433: Guard behaviour is incorrect with Alarm = 0
|
Bug #4433: Guard behaviour is incorrect with Alarm = 0
|
||||||
|
Feature #3276: Editor: Search- Show number of (remaining) search results and indicate a search without any results
|
||||||
Feature #4324: Add CFBundleIdentifier in Info.plist to allow for macOS function key shortcuts
|
Feature #4324: Add CFBundleIdentifier in Info.plist to allow for macOS function key shortcuts
|
||||||
Feature #4345: Add equivalents for the command line commands to Launcher
|
Feature #4345: Add equivalents for the command line commands to Launcher
|
||||||
Feature #4444: Per-group KF-animation files support
|
Feature #4444: Per-group KF-animation files support
|
||||||
|
@ -320,12 +320,13 @@ CSMDoc::Document::Document (const Files::ConfigurationManager& configuration,
|
|||||||
connect (&mUndoStack, SIGNAL (cleanChanged (bool)), this, SLOT (modificationStateChanged (bool)));
|
connect (&mUndoStack, SIGNAL (cleanChanged (bool)), this, SLOT (modificationStateChanged (bool)));
|
||||||
|
|
||||||
connect (&mTools, SIGNAL (progress (int, int, int)), this, SLOT (progress (int, int, int)));
|
connect (&mTools, SIGNAL (progress (int, int, int)), this, SLOT (progress (int, int, int)));
|
||||||
connect (&mTools, SIGNAL (done (int, bool)), this, SLOT (operationDone (int, bool)));
|
connect (&mTools, SIGNAL (done (int, bool)), this, SIGNAL (operationDone (int, bool)));
|
||||||
|
connect (&mTools, SIGNAL (done (int, bool)), this, SLOT (operationDone2 (int, bool)));
|
||||||
connect (&mTools, SIGNAL (mergeDone (CSMDoc::Document*)),
|
connect (&mTools, SIGNAL (mergeDone (CSMDoc::Document*)),
|
||||||
this, SIGNAL (mergeDone (CSMDoc::Document*)));
|
this, SIGNAL (mergeDone (CSMDoc::Document*)));
|
||||||
|
|
||||||
connect (&mSaving, SIGNAL (progress (int, int, int)), this, SLOT (progress (int, int, int)));
|
connect (&mSaving, SIGNAL (progress (int, int, int)), this, SLOT (progress (int, int, int)));
|
||||||
connect (&mSaving, SIGNAL (done (int, bool)), this, SLOT (operationDone (int, bool)));
|
connect (&mSaving, SIGNAL (done (int, bool)), this, SLOT (operationDone2 (int, bool)));
|
||||||
|
|
||||||
connect (
|
connect (
|
||||||
&mSaving, SIGNAL (reportMessage (const CSMDoc::Message&, int)),
|
&mSaving, SIGNAL (reportMessage (const CSMDoc::Message&, int)),
|
||||||
@ -437,7 +438,7 @@ void CSMDoc::Document::reportMessage (const CSMDoc::Message& message, int type)
|
|||||||
std::cout << message.mMessage << std::endl;
|
std::cout << message.mMessage << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSMDoc::Document::operationDone (int type, bool failed)
|
void CSMDoc::Document::operationDone2 (int type, bool failed)
|
||||||
{
|
{
|
||||||
if (type==CSMDoc::State_Saving && !failed)
|
if (type==CSMDoc::State_Saving && !failed)
|
||||||
mDirty = false;
|
mDirty = false;
|
||||||
|
@ -168,13 +168,15 @@ namespace CSMDoc
|
|||||||
/// document. This signal must be handled to avoid a leak.
|
/// document. This signal must be handled to avoid a leak.
|
||||||
void mergeDone (CSMDoc::Document *document);
|
void mergeDone (CSMDoc::Document *document);
|
||||||
|
|
||||||
|
void operationDone (int type, bool failed);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
|
||||||
void modificationStateChanged (bool clean);
|
void modificationStateChanged (bool clean);
|
||||||
|
|
||||||
void reportMessage (const CSMDoc::Message& message, int type);
|
void reportMessage (const CSMDoc::Message& message, int type);
|
||||||
|
|
||||||
void operationDone (int type, bool failed);
|
void operationDone2 (int type, bool failed);
|
||||||
|
|
||||||
void runStateChanged();
|
void runStateChanged();
|
||||||
|
|
||||||
|
@ -3,11 +3,15 @@
|
|||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
|
|
||||||
#include "../../model/doc/document.hpp"
|
#include "../../model/doc/document.hpp"
|
||||||
|
#include "../../model/doc/state.hpp"
|
||||||
#include "../../model/tools/search.hpp"
|
#include "../../model/tools/search.hpp"
|
||||||
#include "../../model/tools/reportmodel.hpp"
|
#include "../../model/tools/reportmodel.hpp"
|
||||||
#include "../../model/world/idtablebase.hpp"
|
#include "../../model/world/idtablebase.hpp"
|
||||||
#include "../../model/prefs/state.hpp"
|
#include "../../model/prefs/state.hpp"
|
||||||
|
|
||||||
|
#include "../world/tablebottombox.hpp"
|
||||||
|
#include "../world/creator.hpp"
|
||||||
|
|
||||||
#include "reporttable.hpp"
|
#include "reporttable.hpp"
|
||||||
#include "searchbox.hpp"
|
#include "searchbox.hpp"
|
||||||
|
|
||||||
@ -73,6 +77,9 @@ CSVTools::SearchSubView::SearchSubView (const CSMWorld::UniversalId& id, CSMDoc:
|
|||||||
|
|
||||||
layout->addWidget (mTable = new ReportTable (document, id, true), 2);
|
layout->addWidget (mTable = new ReportTable (document, id, true), 2);
|
||||||
|
|
||||||
|
layout->addWidget (mBottom =
|
||||||
|
new CSVWorld::TableBottomBox (CSVWorld::NullCreatorFactory(), document, id, this), 0);
|
||||||
|
|
||||||
QWidget *widget = new QWidget;
|
QWidget *widget = new QWidget;
|
||||||
|
|
||||||
widget->setLayout (layout);
|
widget->setLayout (layout);
|
||||||
@ -93,6 +100,15 @@ CSVTools::SearchSubView::SearchSubView (const CSMWorld::UniversalId& id, CSMDoc:
|
|||||||
this, SLOT (startSearch (const CSMTools::Search&)));
|
this, SLOT (startSearch (const CSMTools::Search&)));
|
||||||
|
|
||||||
connect (&mSearchBox, SIGNAL (replaceAll()), this, SLOT (replaceAllRequest()));
|
connect (&mSearchBox, SIGNAL (replaceAll()), this, SLOT (replaceAllRequest()));
|
||||||
|
|
||||||
|
connect (document.getReport (id), SIGNAL (rowsRemoved (const QModelIndex&, int, int)),
|
||||||
|
this, SLOT (tableSizeUpdate()));
|
||||||
|
|
||||||
|
connect (document.getReport (id), SIGNAL (rowsInserted (const QModelIndex&, int, int)),
|
||||||
|
this, SLOT (tableSizeUpdate()));
|
||||||
|
|
||||||
|
connect (&document, SIGNAL (operationDone (int, bool)),
|
||||||
|
this, SLOT (operationDone (int, bool)));
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSVTools::SearchSubView::setEditLock (bool locked)
|
void CSVTools::SearchSubView::setEditLock (bool locked)
|
||||||
@ -101,6 +117,11 @@ void CSVTools::SearchSubView::setEditLock (bool locked)
|
|||||||
mSearchBox.setEditLock (locked);
|
mSearchBox.setEditLock (locked);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CSVTools::SearchSubView::setStatusBar (bool show)
|
||||||
|
{
|
||||||
|
mBottom->setStatusBar(show);
|
||||||
|
}
|
||||||
|
|
||||||
void CSVTools::SearchSubView::stateChanged (int state, CSMDoc::Document *document)
|
void CSVTools::SearchSubView::stateChanged (int state, CSMDoc::Document *document)
|
||||||
{
|
{
|
||||||
mSearchBox.setSearchMode (!(state & CSMDoc::State_Searching));
|
mSearchBox.setSearchMode (!(state & CSMDoc::State_Searching));
|
||||||
@ -126,3 +147,17 @@ void CSVTools::SearchSubView::replaceAllRequest()
|
|||||||
{
|
{
|
||||||
replace (false);
|
replace (false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CSVTools::SearchSubView::tableSizeUpdate()
|
||||||
|
{
|
||||||
|
mBottom->tableSizeChanged (mDocument.getReport (getUniversalId())->rowCount(), 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CSVTools::SearchSubView::operationDone (int type, bool failed)
|
||||||
|
{
|
||||||
|
if (type==CSMDoc::State_Searching && !failed &&
|
||||||
|
!mDocument.getReport (getUniversalId())->rowCount())
|
||||||
|
{
|
||||||
|
mBottom->setStatusMessage ("No Results");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -15,6 +15,11 @@ namespace CSMDoc
|
|||||||
class Document;
|
class Document;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
namespace CSVWorld
|
||||||
|
{
|
||||||
|
class TableBottomBox;
|
||||||
|
}
|
||||||
|
|
||||||
namespace CSVTools
|
namespace CSVTools
|
||||||
{
|
{
|
||||||
class ReportTable;
|
class ReportTable;
|
||||||
@ -28,6 +33,7 @@ namespace CSVTools
|
|||||||
CSMDoc::Document& mDocument;
|
CSMDoc::Document& mDocument;
|
||||||
CSMTools::Search mSearch;
|
CSMTools::Search mSearch;
|
||||||
bool mLocked;
|
bool mLocked;
|
||||||
|
CSVWorld::TableBottomBox *mBottom;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
@ -43,6 +49,8 @@ namespace CSVTools
|
|||||||
|
|
||||||
virtual void setEditLock (bool locked);
|
virtual void setEditLock (bool locked);
|
||||||
|
|
||||||
|
virtual void setStatusBar (bool show);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
|
||||||
void stateChanged (int state, CSMDoc::Document *document);
|
void stateChanged (int state, CSMDoc::Document *document);
|
||||||
@ -52,6 +60,10 @@ namespace CSVTools
|
|||||||
void replaceRequest();
|
void replaceRequest();
|
||||||
|
|
||||||
void replaceAllRequest();
|
void replaceAllRequest();
|
||||||
|
|
||||||
|
void tableSizeUpdate();
|
||||||
|
|
||||||
|
void operationDone (int type, bool failed);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,6 +28,12 @@ void CSVWorld::TableBottomBox::updateStatus()
|
|||||||
{
|
{
|
||||||
if (mShowStatusBar)
|
if (mShowStatusBar)
|
||||||
{
|
{
|
||||||
|
if (!mStatusMessage.isEmpty())
|
||||||
|
{
|
||||||
|
mStatus->setText (mStatusMessage);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
static const char *sLabels[4] = { "record", "deleted", "touched", "selected" };
|
static const char *sLabels[4] = { "record", "deleted", "touched", "selected" };
|
||||||
static const char *sLabelsPlural[4] = { "records", "deleted", "touched", "selected" };
|
static const char *sLabelsPlural[4] = { "records", "deleted", "touched", "selected" };
|
||||||
|
|
||||||
@ -178,10 +184,17 @@ void CSVWorld::TableBottomBox::currentWidgetChanged(int /*index*/)
|
|||||||
updateSize();
|
updateSize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CSVWorld::TableBottomBox::setStatusMessage (const QString& message)
|
||||||
|
{
|
||||||
|
mStatusMessage = message;
|
||||||
|
updateStatus();
|
||||||
|
}
|
||||||
|
|
||||||
void CSVWorld::TableBottomBox::selectionSizeChanged (int size)
|
void CSVWorld::TableBottomBox::selectionSizeChanged (int size)
|
||||||
{
|
{
|
||||||
if (mStatusCount[3]!=size)
|
if (mStatusCount[3]!=size)
|
||||||
{
|
{
|
||||||
|
mStatusMessage = "";
|
||||||
mStatusCount[3] = size;
|
mStatusCount[3] = size;
|
||||||
updateStatus();
|
updateStatus();
|
||||||
}
|
}
|
||||||
@ -210,7 +223,10 @@ void CSVWorld::TableBottomBox::tableSizeChanged (int size, int deleted, int modi
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (changed)
|
if (changed)
|
||||||
|
{
|
||||||
|
mStatusMessage = "";
|
||||||
updateStatus();
|
updateStatus();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSVWorld::TableBottomBox::positionChanged (int row, int column)
|
void CSVWorld::TableBottomBox::positionChanged (int row, int column)
|
||||||
|
@ -39,6 +39,7 @@ namespace CSVWorld
|
|||||||
bool mHasPosition;
|
bool mHasPosition;
|
||||||
int mRow;
|
int mRow;
|
||||||
int mColumn;
|
int mColumn;
|
||||||
|
QString mStatusMessage;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
@ -73,6 +74,8 @@ namespace CSVWorld
|
|||||||
///
|
///
|
||||||
/// \note The BotomBox does not partake in the deletion of records.
|
/// \note The BotomBox does not partake in the deletion of records.
|
||||||
|
|
||||||
|
void setStatusMessage (const QString& message);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
|
|
||||||
void requestFocus (const std::string& id);
|
void requestFocus (const std::string& id);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user