summaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/guiSQLiteStudio/dataview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/dataview.cpp')
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/dataview.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/dataview.cpp b/SQLiteStudio3/guiSQLiteStudio/dataview.cpp
index e99b9b8..32efae4 100644
--- a/SQLiteStudio3/guiSQLiteStudio/dataview.cpp
+++ b/SQLiteStudio3/guiSQLiteStudio/dataview.cpp
@@ -11,6 +11,7 @@
#include "iconmanager.h"
#include "uiconfig.h"
#include "datagrid/sqlqueryitem.h"
+#include "common/widgetcover.h"
#include <QDebug>
#include <QHeaderView>
#include <QVBoxLayout>
@@ -42,6 +43,7 @@ void DataView::init(SqlQueryModel* model)
formViewRowCountLabel = new QLabel();
formViewCurrentRowLabel = new QLabel();
+ initWidgetCover();
initFormView();
initPageEdit();
initFilter();
@@ -139,6 +141,15 @@ void DataView::initPageEdit()
connect(pageEdit, SIGNAL(editingFinished()), this, SLOT(pageEntered()));
}
+void DataView::initWidgetCover()
+{
+ widgetCover = new WidgetCover(this);
+ widgetCover->initWithProgressBarOnly("%v / %m");
+ connect(model, SIGNAL(aboutToCommit(int)), this, SLOT(coverForGridCommit(int)));
+ connect(model, SIGNAL(commitingStepFinished(int)), this, SLOT(updateGridCommitCover(int)));
+ connect(model, SIGNAL(commitFinished()), this, SLOT(hideGridCommitCover()));
+}
+
void DataView::createActions()
{
bool rowInserting = model->features().testFlag(SqlQueryModel::INSERT_ROW);
@@ -438,6 +449,34 @@ void DataView::filterModeSelected()
actionMap[FILTER]->setIcon(modeAction->icon());
}
+void DataView::coverForGridCommit(int total)
+{
+ if (total <= 3)
+ return;
+
+ widgetCover->displayProgress(total);
+ widgetCover->show();
+ QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
+}
+
+void DataView::updateGridCommitCover(int value)
+{
+ if (!widgetCover->isVisible())
+ return;
+
+ widgetCover->setProgress(value);
+ QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
+}
+
+void DataView::hideGridCommitCover()
+{
+ if (!widgetCover->isVisible())
+ return;
+
+ widgetCover->hide();
+ QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
+}
+
void DataView::updateCommitRollbackActions(bool enabled)
{
gridView->getAction(SqlQueryView::COMMIT)->setEnabled(enabled);