pgLab/connectionmanagerwindow.cpp

78 lines
1.9 KiB
C++

#include "connectionmanagerwindow.h"
#include "ui_connectionmanagerwindow.h"
#include <QDataWidgetMapper>
#include <QStandardItemModel>
#include "connectionlistmodel.h"
ConnectionManagerWindow::ConnectionManagerWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::ConnectionManagerWindow)
, m_listModel(new ConnectionListModel(this))
{
ui->setupUi(this);
ui->listView->setModel(m_listModel);
setupWidgetMappings();
connect(ui->listView->selectionModel(),
SIGNAL(currentChanged(QModelIndex,QModelIndex)),
this, SLOT(on_currentChanged(QModelIndex,QModelIndex)));
}
ConnectionManagerWindow::~ConnectionManagerWindow()
{
m_listModel->save();
delete ui;
delete m_listModel;
delete m_mapper;
}
void ConnectionManagerWindow::on_actionAdd_Connection_triggered()
{
ConnectionConfig c;
c.setName("new");
m_listModel->add(c);
}
void ConnectionManagerWindow::on_currentChanged(const QModelIndex &current,
const QModelIndex &previous)
{
int currow = current.row();
// int prevrow = previous.row();
m_mapper->setCurrentIndex(currow);
// ui->lineEdit->setText(QString::number(currow));
// ui->lineEdit_2->setText(QString::number(prevrow));
// if(selection.indexes().isEmpty()) {
// clearMyView();
// } else {
// displayModelIndexInMyView(selection.indexes().first());
// }
}
void ConnectionManagerWindow::on_actionDelete_connection_triggered()
{
auto ci = ui->listView->selectionModel()->currentIndex();
if (ci.isValid()) {
//m_listModel->removeRow(ci.row());
}
}
void ConnectionManagerWindow::setupWidgetMappings()
{
m_mapper = new QDataWidgetMapper(this);
m_mapper->setModel(m_listModel);
m_mapper->addMapping(ui->edtName, 1);
m_mapper->addMapping(ui->edtHost, 2);
m_mapper->addMapping(ui->spinPort, 3);
m_mapper->addMapping(ui->edtUser, 4);
m_mapper->addMapping(ui->edtPassword, 5);
m_mapper->addMapping(ui->edtDbname, 6);
m_mapper->toFirst();
}