Листинг functionAdmin.cpp
functionAdmin.cpp
| #include "functionAdmin.h"
#include "ui_editPassword.h"
#include "ui_editAccess.h"
FunctionAdmin::FunctionAdmin(QLinkedList<User *> *_users, User *_current,
QWidget *parent):
FunctionUser(_users, _current, parent)
{
windowUsers = new QWidget(parent);
uiFunctionAdmin.setupUi(windowUsers);
uiFunction.tabWidget->addTab(windowUsers, windowUsers->windowTitle());
fillUserInTable();
QObject::connect(uiFunctionAdmin.newPasswordButton, SIGNAL(clicked()),
SLOT(newPassword()));
QObject::connect(uiFunctionAdmin.editAccessButton, SIGNAL(clicked()),
SLOT(editAccess()));
QObject::connect(uiFunctionAdmin.saveButton, SIGNAL(clicked()), SLOT(saveUsers()));
QObject::connect(uiFunctionAdmin.delUserButton, SIGNAL(clicked()), SLOT(deleteUser()));
QObject::connect(uiFunctionAdmin.editPostersButton, SIGNAL(clicked()),
SLOT(editPostersUser()));
}
FunctionAdmin::~FunctionAdmin()
{
delete windowUsers;
}
void FunctionAdmin::fillUserInTable()
{
QLinkedList<User *>::Iterator passage = users->begin();
int row = 0;
while(passage != users->end())
{
if(row <= uiFunctionAdmin.usersTableWidget->rowCount())
uiFunctionAdmin.usersTableWidget->insertRow(row);
addQStringInTable(uiFunctionAdmin.usersTableWidget, (*passage)->getLogin() , row, 0);
if((*passage)->getAccess())
addQStringInTable(uiFunctionAdmin.usersTableWidget, "ADMIN", row++, 1);
else addQStringInTable(uiFunctionAdmin.usersTableWidget, "USER", row++, 1);
++passage;
}
}
void FunctionAdmin::newPassword()
{
int row = uiFunctionAdmin.usersTableWidget->currentRow();
QLinkedList<User *>::Iterator passage = users->begin();
for(row = 0; row < uiFunctionAdmin.usersTableWidget->currentRow(); row++)
++passage;
QDialog *window = new QDialog(this);
Ui::editPassword ui;
ui.setupUi(window);
QObject::connect(ui.okButton, SIGNAL(clicked()), window, SLOT(accept()));
QObject::connect(ui.cancelButton, SIGNAL(clicked()), window, SLOT(reject()));
while(window->exec())
{
if(ui.passwordLineEdit->text().isEmpty())
QMessageBox::information(this, tr("clear string"), tr("SORRY, clear string"),
QMessageBox::Ok);
else
{
(*passage)->setPassword(ui.passwordLineEdit->text());
break;
}
}
delete window;
uiFunctionAdmin.usersTableWidget->selectionModel()->clearSelection();
}
void FunctionAdmin::editAccess()
{
int row = uiFunctionAdmin.usersTableWidget->currentRow();
QLinkedList<User *>::Iterator passage = users->begin();
for(row = 0; row < uiFunctionAdmin.usersTableWidget->currentRow(); row++)
++passage;
QDialog *window = new QDialog(this);
Ui::editAccess ui;
ui.setupUi(window);
QObject::connect(ui.okButton, SIGNAL(clicked()), window, SLOT(accept()));
QObject::connect(ui.cancelButton, SIGNAL(clicked()), window, SLOT(reject()));
if(window->exec())
if(ui.AccessComboBox->currentIndex())
{
(*passage)->setAccess(ADMIN);
uiFunctionAdmin.usersTableWidget->item(row, 1)->setText("ADMIN");
}
else
{
(*passage)->setAccess(USER);
uiFunctionAdmin.usersTableWidget->item(row, 1)->setText("USER");
}
delete window;
uiFunctionAdmin.usersTableWidget->selectionModel()->clearSelection();
}
void FunctionAdmin::saveUsers()
{
QFile *file = new QFile("login.bin");
file->open(QIODevice::WriteOnly);
QDataStream in(file);
QLinkedList<User *>::Iterator passage = users->begin();
while(passage != users->end())
{
in << (*passage)->getLogin();
in << (*passage)->getPassword();
in << (*passage)->getAccess();
++passage;
}
file->close();
delete file;
uiFunctionAdmin.usersTableWidget->selectionModel()->clearSelection();
}
void FunctionAdmin::deleteUser()
{
int row = uiFunctionAdmin.usersTableWidget->currentRow();
QLinkedList<User *>::Iterator passage = users->begin();
for(row = 0; row < uiFunctionAdmin.usersTableWidget->currentRow(); row++)
++passage;
if((*passage) == current)
{
users->erase(passage);
slotSavePosterHiring();
slotSavePosterRent();
saveUsers();
exit(1);
}
users->erase(passage);
uiFunctionAdmin.usersTableWidget->removeRow(row);
uiFunctionAdmin.usersTableWidget->selectionModel()->clearSelection();
}
void FunctionAdmin::editPostersUser()
{
int row = uiFunctionAdmin.usersTableWidget->currentRow();
QLinkedList<User *>::Iterator passage = users->begin();
for(row = 0; row < uiFunctionAdmin.usersTableWidget->currentRow(); row++)
++passage;
QDialog *window = new QDialog(this);
FunctionAdmin *user = new FunctionAdmin(users, *passage, window);
user->uiFunction.tabWidget->removeTab(0);
user->uiFunction.tabWidget->removeTab(0);
user->uiFunction.tabWidget->removeTab(2);
user->uiFunction.delAccountButton->hide();
window->exec();
if(*passage == current)
{
row = uiTabPostersHiring.tableWidget->rowCount();
while(row > 0)
uiTabPostersHiring.tableWidget->removeRow(--row);
row = uiTabPostersRent.tableWidget->rowCount();
while(row > 0)
uiTabPostersRent.tableWidget->removeRow(--row);
fillPosterTableHiring();
fillPosterTableRent();
}
delete user;
delete window;
uiFunctionAdmin.usersTableWidget->selectionModel()->clearSelection();
}
|
Листинг main.cpp
main.cpp
| #include <QtGui>
#include "mainWindow.h"
#include "functionAdmin.h"
#include "login.h"
int main(int argc, char **argv)
{
QApplication app( argc, argv );
MainWindow mainWindow;
FunctionGuest *guestWindow;
FunctionUser *userWindow;
FunctionAdmin *adminWindow;
Login loginWindow;
if(!loginWindow.exec())
return 0;
if(!loginWindow.getCurrentUser())
guestWindow = new FunctionGuest(loginWindow.getUsers(), mainWindow.centralWidget() );
else
if(loginWindow.getCurrentUser()->getAccess() == USER)
userWindow = new FunctionUser(loginWindow.getUsers(), loginWindow.getCurrentUser(),
mainWindow.centralWidget() );
else
adminWindow = new FunctionAdmin(loginWindow.getUsers(),
loginWindow.getCurrentUser(), mainWindow.centralWidget() );
mainWindow.show();
return app.exec();
}
|
|
Обсуждений еще не было, будьте первым... ↓↓↓
|
|
Популярное:
©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (399)
|
Почему 1285321 студент выбрали МегаОбучалку...
Система поиска информации
Мобильная версия сайта
Удобная навигация
Нет шокирующей рекламы
|