Refres database table when indexing is done
This commit is contained in:
@@ -174,10 +174,15 @@ void Database::indexDir(const QDir &dir, QProgressDialog *progress)
|
|||||||
QSqlDatabase database = QSqlDatabase::database();
|
QSqlDatabase database = QSqlDatabase::database();
|
||||||
database.transaction();
|
database.transaction();
|
||||||
if(indexDir2(dir, progress))
|
if(indexDir2(dir, progress))
|
||||||
|
{
|
||||||
database.commit();
|
database.commit();
|
||||||
|
emit databaseChanged();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
database.rollback();
|
database.rollback();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void Database::reindex(QProgressDialog *progress)
|
void Database::reindex(QProgressDialog *progress)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -41,6 +41,8 @@ protected:
|
|||||||
bool indexFile(const QFileInfo &file);
|
bool indexFile(const QFileInfo &file);
|
||||||
bool checkError(QSqlQuery &query);
|
bool checkError(QSqlQuery &query);
|
||||||
int checkVersion();
|
int checkVersion();
|
||||||
|
signals:
|
||||||
|
void databaseChanged();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // DATABASE_H
|
#endif // DATABASE_H
|
||||||
|
|||||||
+21
-6
@@ -266,16 +266,23 @@ DataBaseView::DataBaseView(Database *database, QWidget *parent) : QWidget(parent
|
|||||||
m_model->filesUnmarked(indexes);
|
m_model->filesUnmarked(indexes);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
auto addFilterItems = [](QComboBox *combobox, const QStringList &fitsKeywords)
|
||||||
|
{
|
||||||
|
combobox->clear();
|
||||||
|
combobox->addItem("file");
|
||||||
|
combobox->addItem("RA pos");
|
||||||
|
combobox->addItem("DEC pos");
|
||||||
|
combobox->addItem("RA range");
|
||||||
|
combobox->addItem("DEC range");
|
||||||
|
combobox->addItems(fitsKeywords);
|
||||||
|
};
|
||||||
|
|
||||||
QStringList fitsKeywords = m_database->getFitsKeywords();
|
QStringList fitsKeywords = m_database->getFitsKeywords();
|
||||||
for(int i=0; i<3; i++)
|
for(int i=0; i<3; i++)
|
||||||
{
|
{
|
||||||
m_filterKeyword[i] = new QComboBox(this);
|
m_filterKeyword[i] = new QComboBox(this);
|
||||||
m_filterKeyword[i]->addItem("file");
|
addFilterItems(m_filterKeyword[i], fitsKeywords);
|
||||||
m_filterKeyword[i]->addItem("RA pos");
|
|
||||||
m_filterKeyword[i]->addItem("DEC pos");
|
|
||||||
m_filterKeyword[i]->addItem("RA range");
|
|
||||||
m_filterKeyword[i]->addItem("DEC range");
|
|
||||||
m_filterKeyword[i]->addItems(fitsKeywords);
|
|
||||||
|
|
||||||
m_search[i] = new QLineEdit(this);
|
m_search[i] = new QLineEdit(this);
|
||||||
m_search[i]->setPlaceholderText(tr("Text to search, you can % as wildcard"));
|
m_search[i]->setPlaceholderText(tr("Text to search, you can % as wildcard"));
|
||||||
@@ -297,6 +304,14 @@ DataBaseView::DataBaseView(Database *database, QWidget *parent) : QWidget(parent
|
|||||||
QPushButton *filterButton = new QPushButton(tr("Filter"), this);
|
QPushButton *filterButton = new QPushButton(tr("Filter"), this);
|
||||||
connect(filterButton, SIGNAL(pressed()), this, SLOT(applyFilter()));
|
connect(filterButton, SIGNAL(pressed()), this, SLOT(applyFilter()));
|
||||||
hlayout->addWidget(filterButton);
|
hlayout->addWidget(filterButton);
|
||||||
|
|
||||||
|
connect(m_database, &Database::databaseChanged, [this, &addFilterItems](){
|
||||||
|
QStringList fitsKeywords = m_database->getFitsKeywords();
|
||||||
|
for(int i=0; i<3; i++)
|
||||||
|
addFilterItems(m_filterKeyword[i], fitsKeywords);
|
||||||
|
|
||||||
|
applyFilter();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
DataBaseView::~DataBaseView()
|
DataBaseView::~DataBaseView()
|
||||||
|
|||||||
Reference in New Issue
Block a user