DatabaseImportForm::DatabaseImportForm(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f) { setupUi(this); import_thread=new QThread(this); import_helper.moveToThread(import_thread); model_wgt=nullptr; connect(close_btn, SIGNAL(clicked(bool)), this, SLOT(close(void))); connect(connect_tb, SIGNAL(clicked(bool)), this, SLOT(listDatabases(void))); connect(database_cmb, SIGNAL(currentIndexChanged(int)), this, SLOT(listObjects(void))); connect(import_sys_objs_chk, SIGNAL(clicked(bool)), this, SLOT(listObjects(void))); connect(import_ext_objs_chk, SIGNAL(clicked(bool)), this, SLOT(listObjects(void))); connect(by_oid_chk, SIGNAL(toggled(bool)), this, SLOT(filterObjects(void))); connect(expand_all_tb, SIGNAL(clicked(bool)), db_objects_tw, SLOT(expandAll(void))); connect(collapse_all_tb, SIGNAL(clicked(bool)), db_objects_tw, SLOT(collapseAll(void))); connect(db_objects_tw, SIGNAL(itemChanged(QTreeWidgetItem*,int)), this, SLOT(setItemCheckState(QTreeWidgetItem*,int))); connect(select_all_tb, SIGNAL(clicked(bool)), this, SLOT(setItemsCheckState(void))); connect(clear_all_tb, SIGNAL(clicked(bool)), this, SLOT(setItemsCheckState(void))); connect(filter_edt, SIGNAL(textChanged(QString)), this, SLOT(filterObjects(void))); connect(&import_helper, SIGNAL(s_importFinished(Exception)), this, SLOT(handleImportFinished(Exception))); connect(&import_helper, SIGNAL(s_importCanceled(void)), this, SLOT(handleImportCanceled(void))); connect(&import_helper, SIGNAL(s_importAborted(Exception)), this, SLOT(captureThreadError(Exception))); connect(&import_helper, SIGNAL(s_progressUpdated(int,QString,ObjectType)), this, SLOT(updateProgress(int,QString,ObjectType))); connect(import_btn, SIGNAL(clicked(bool)), this, SLOT(importDatabase(void))); connect(cancel_btn, SIGNAL(clicked(bool)), this, SLOT(cancelImport(void))); connect(&timer, SIGNAL(timeout(void)), this, SLOT(hideProgress())); connect(import_thread, SIGNAL(started(void)), &import_helper, SLOT(importDatabase(void))); connect(import_thread, &QThread::started, [=](){ import_thread->setPriority(QThread::LowPriority); }); }
void DatabaseImportForm::createThread(void) { import_thread=new QThread; import_helper=new DatabaseImportHelper; import_helper->moveToThread(import_thread); connect(import_thread, SIGNAL(started(void)), import_helper, SLOT(importDatabase())); connect(import_helper, SIGNAL(s_importCanceled()), this, SLOT(handleImportCanceled())); connect(import_helper, SIGNAL(s_importFinished(Exception)), this, SLOT(handleImportFinished(Exception))); connect(import_helper, SIGNAL(s_importAborted(Exception)), this, SLOT(captureThreadError(Exception))); connect(import_helper, SIGNAL(s_progressUpdated(int,QString,ObjectType)), this, SLOT(updateProgress(int,QString,ObjectType)), Qt::BlockingQueuedConnection); }