forked from mirror/openmw-tes3mp
set search status bar to 'no results' message when search yields no results
This commit is contained in:
parent
7d2394273e
commit
7ca56ccd29
6 changed files with 41 additions and 4 deletions
|
@ -320,12 +320,13 @@ CSMDoc::Document::Document (const Files::ConfigurationManager& configuration,
|
|||
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 (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*)),
|
||||
this, SIGNAL (mergeDone (CSMDoc::Document*)));
|
||||
|
||||
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 (
|
||||
&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;
|
||||
}
|
||||
|
||||
void CSMDoc::Document::operationDone (int type, bool failed)
|
||||
void CSMDoc::Document::operationDone2 (int type, bool failed)
|
||||
{
|
||||
if (type==CSMDoc::State_Saving && !failed)
|
||||
mDirty = false;
|
||||
|
|
|
@ -168,13 +168,15 @@ namespace CSMDoc
|
|||
/// document. This signal must be handled to avoid a leak.
|
||||
void mergeDone (CSMDoc::Document *document);
|
||||
|
||||
void operationDone (int type, bool failed);
|
||||
|
||||
private slots:
|
||||
|
||||
void modificationStateChanged (bool clean);
|
||||
|
||||
void reportMessage (const CSMDoc::Message& message, int type);
|
||||
|
||||
void operationDone (int type, bool failed);
|
||||
void operationDone2 (int type, bool failed);
|
||||
|
||||
void runStateChanged();
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
#include <QVBoxLayout>
|
||||
|
||||
#include "../../model/doc/document.hpp"
|
||||
#include "../../model/doc/state.hpp"
|
||||
#include "../../model/tools/search.hpp"
|
||||
#include "../../model/tools/reportmodel.hpp"
|
||||
#include "../../model/world/idtablebase.hpp"
|
||||
|
@ -105,6 +106,9 @@ CSVTools::SearchSubView::SearchSubView (const CSMWorld::UniversalId& id, CSMDoc:
|
|||
|
||||
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)
|
||||
|
@ -148,3 +152,12 @@ 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");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -62,6 +62,8 @@ namespace CSVTools
|
|||
void replaceAllRequest();
|
||||
|
||||
void tableSizeUpdate();
|
||||
|
||||
void operationDone (int type, bool failed);
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -28,6 +28,12 @@ void CSVWorld::TableBottomBox::updateStatus()
|
|||
{
|
||||
if (mShowStatusBar)
|
||||
{
|
||||
if (!mStatusMessage.isEmpty())
|
||||
{
|
||||
mStatus->setText (mStatusMessage);
|
||||
return;
|
||||
}
|
||||
|
||||
static const char *sLabels[4] = { "record", "deleted", "touched", "selected" };
|
||||
static const char *sLabelsPlural[4] = { "records", "deleted", "touched", "selected" };
|
||||
|
||||
|
@ -178,10 +184,17 @@ void CSVWorld::TableBottomBox::currentWidgetChanged(int /*index*/)
|
|||
updateSize();
|
||||
}
|
||||
|
||||
void CSVWorld::TableBottomBox::setStatusMessage (const QString& message)
|
||||
{
|
||||
mStatusMessage = message;
|
||||
updateStatus();
|
||||
}
|
||||
|
||||
void CSVWorld::TableBottomBox::selectionSizeChanged (int size)
|
||||
{
|
||||
if (mStatusCount[3]!=size)
|
||||
{
|
||||
mStatusMessage = "";
|
||||
mStatusCount[3] = size;
|
||||
updateStatus();
|
||||
}
|
||||
|
@ -210,7 +223,10 @@ void CSVWorld::TableBottomBox::tableSizeChanged (int size, int deleted, int modi
|
|||
}
|
||||
|
||||
if (changed)
|
||||
{
|
||||
mStatusMessage = "";
|
||||
updateStatus();
|
||||
}
|
||||
}
|
||||
|
||||
void CSVWorld::TableBottomBox::positionChanged (int row, int column)
|
||||
|
|
|
@ -39,6 +39,7 @@ namespace CSVWorld
|
|||
bool mHasPosition;
|
||||
int mRow;
|
||||
int mColumn;
|
||||
QString mStatusMessage;
|
||||
|
||||
private:
|
||||
|
||||
|
@ -73,6 +74,8 @@ namespace CSVWorld
|
|||
///
|
||||
/// \note The BotomBox does not partake in the deletion of records.
|
||||
|
||||
void setStatusMessage (const QString& message);
|
||||
|
||||
signals:
|
||||
|
||||
void requestFocus (const std::string& id);
|
||||
|
|
Loading…
Reference in a new issue