Implemented application login.
Minor UI improvement. Fixed memory leaks.
This commit is contained in:
@@ -13,6 +13,22 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||
ui(new Ui::MainWindow)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
m_lblUser = new QLabel(this);
|
||||
ui->statusBar->addWidget(m_lblUser);
|
||||
|
||||
m_loginDialog = new LoginDialog(this);
|
||||
|
||||
connect(m_loginDialog, &LoginDialog::accepted, [this]{
|
||||
PermissionService service;
|
||||
QSharedPointer<User> u = service.loadUser(m_loginDialog->login());
|
||||
m_lblUser->setText(u->name());
|
||||
m_loginDialog->reset();
|
||||
Context::instance().setCurrentUser(u);
|
||||
});
|
||||
|
||||
connect(m_loginDialog, &LoginDialog::rejected, [this]{
|
||||
close();
|
||||
});
|
||||
|
||||
Context::instance().loadPlugins();
|
||||
int i = 0;
|
||||
@@ -27,6 +43,11 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||
}
|
||||
|
||||
((QVBoxLayout*)ui->navigation->layout())->addStretch(1);
|
||||
|
||||
if (Context::instance().db() != NULL)
|
||||
{
|
||||
ui->navigation->setEnabled(true);
|
||||
}
|
||||
}
|
||||
|
||||
MainWindow::~MainWindow()
|
||||
@@ -59,13 +80,37 @@ void MainWindow::openPlugin()
|
||||
|
||||
void MainWindow::on_actionOpen_database_triggered()
|
||||
{
|
||||
QFileDialog dialog(this);
|
||||
/*QFileDialog dialog(this);
|
||||
dialog.setNameFilter(tr("Database Files (*.db)"));
|
||||
dialog.setWindowTitle(tr("Open Database"));
|
||||
Context::instance().openDb(dialog.getOpenFileName());
|
||||
dialog.setWindowTitle(tr("Open Database"));*/
|
||||
|
||||
QString dbFile = QFileDialog::getOpenFileName(this, "Open Database", "", "Database Files (*.db)");
|
||||
if (!dbFile.isEmpty())
|
||||
{
|
||||
Context::instance().openDb(dbFile);
|
||||
ui->navigation->setEnabled(true);
|
||||
on_actionLogin_triggered();
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::on_tabWidget_tabCloseRequested(int index)
|
||||
{
|
||||
ui->tabWidget->removeTab(index);
|
||||
}
|
||||
|
||||
void MainWindow::on_actionLogin_triggered()
|
||||
{
|
||||
QSharedPointer<User> u;
|
||||
Context::instance().setCurrentUser(u);
|
||||
m_lblUser->setText("");
|
||||
m_loginDialog->show();
|
||||
}
|
||||
|
||||
void MainWindow::showEvent(QShowEvent *evt)
|
||||
{
|
||||
QWidget::showEvent(evt);
|
||||
if (Context::instance().db() != NULL && Context::instance().currentUser().data() == NULL)
|
||||
{
|
||||
m_loginDialog->show();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user