сохранение веб сервисов с чатом
This commit is contained in:
+59
-7
@@ -130,7 +130,7 @@ uGeneral::uGeneral(QWidget *parent)
|
||||
|
||||
// Инициализируем окна создания
|
||||
m_createNotifyDialog = new FCreateNotify(this);
|
||||
m_createChatDialog = new FCreateChat(this);
|
||||
m_createChatDialog = new FCreateChat(db, this);
|
||||
|
||||
|
||||
}
|
||||
@@ -1344,12 +1344,11 @@ void uGeneral::loadSettings(){
|
||||
form->setDatabase(db);
|
||||
table = form->findChild<QTableWidget*>("sgNeiro");
|
||||
db->LoadTableWidget(table);
|
||||
|
||||
db->LoadRandomGroups(ui->lbRandomGroup);
|
||||
|
||||
|
||||
ui->cbTheme->setCurrentIndex(db->readSetting(ui->cbTheme->objectName(), "0").toInt());
|
||||
|
||||
db->LoadTableWidget(ui->sgWebServers);
|
||||
loadSavedChats();
|
||||
}
|
||||
|
||||
|
||||
@@ -2097,6 +2096,7 @@ void uGeneral::on_btnSaveSettings_clicked()
|
||||
for (QCheckBox* cb : checkBoxes) {
|
||||
db->writeSetting(cb->objectName(), cb->isChecked() ? "True" : "False");
|
||||
}
|
||||
db->SaveTableWidget(ui->sgWebServers);
|
||||
}
|
||||
|
||||
void uGeneral::execCommand(const QString &sender, const QString &message)
|
||||
@@ -3073,9 +3073,10 @@ void uGeneral::applyStyleSheet(const QString &filename)
|
||||
void uGeneral::on_btnWSCreateChat_clicked()
|
||||
{
|
||||
// Создаем диалог каждый раз
|
||||
FCreateChat *createDialog = new FCreateChat(this);
|
||||
FCreateChat *createDialog = new FCreateChat(db, this);
|
||||
connect(createDialog, &FCreateChat::serverCreated, this, &uGeneral::onChatServerCreated);
|
||||
createDialog->setAttribute(Qt::WA_DeleteOnClose); // Автоматическое удаление при закрытии
|
||||
connect(createDialog, &FCreateChat::serverUpdated, this, &uGeneral::onChatServerUpdated);
|
||||
createDialog->setAttribute(Qt::WA_DeleteOnClose);
|
||||
createDialog->exec();
|
||||
}
|
||||
|
||||
@@ -3398,7 +3399,7 @@ void uGeneral::on_sgWebServers_cellDoubleClicked(int row, int column)
|
||||
HttpServerChat *existingServer = qobject_cast<HttpServerChat*>(serverObj);
|
||||
|
||||
if (existingServer) {
|
||||
FCreateChat *createChatDialog = new FCreateChat(this);
|
||||
FCreateChat *createChatDialog = new FCreateChat(db, this);
|
||||
createChatDialog->loadExistingServer(existingServer, nameItem->text());
|
||||
connect(createChatDialog, &FCreateChat::serverUpdated, this, &uGeneral::onChatServerUpdated);
|
||||
createChatDialog->setAttribute(Qt::WA_DeleteOnClose);
|
||||
@@ -3670,3 +3671,54 @@ void uGeneral::on_btnThemesFolder_clicked()
|
||||
QDesktopServices::openUrl(url);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Загружает сохраненные чаты из базы данных и создает серверы
|
||||
*/
|
||||
void uGeneral::loadSavedChats()
|
||||
{
|
||||
QList<ChatSettings> chats = db->loadAllChats();
|
||||
|
||||
for (const ChatSettings &settings : chats) {
|
||||
if (settings.type.toLower() == "chat") {
|
||||
// Создаем сервер чата
|
||||
HttpServerChat *server = new HttpServerChat(
|
||||
settings.fontList,
|
||||
settings.port,
|
||||
settings.backgroundColor,
|
||||
this
|
||||
);
|
||||
|
||||
// Настраиваем сервер
|
||||
server->setBlockColor(settings.blockColor);
|
||||
server->setBorderColor(settings.borderColor);
|
||||
server->setBorderSize(settings.borderSize);
|
||||
server->setPadding(settings.padding);
|
||||
server->setTransparency(settings.transparency);
|
||||
server->setFontFamily(settings.fontFamily);
|
||||
server->setFontSize(settings.fontSize);
|
||||
server->setFontColor(settings.fontColor);
|
||||
server->setFreez(settings.freez);
|
||||
server->setMessageTimeout(settings.messageTimeout);
|
||||
server->setDeleteMode(settings.deleteByTime, settings.maxMsgCount);
|
||||
|
||||
// Запускаем сервер
|
||||
if (server->start()) {
|
||||
m_chatServers.append(server);
|
||||
|
||||
// Добавляем в таблицу
|
||||
QString url = QString("http://localhost:%1").arg(settings.port);
|
||||
addServerToTable(settings.name, "Чат", settings.port, url, server);
|
||||
|
||||
toLog("uGeneral", "loadSavedChats",
|
||||
QString("Загружен и запущен чат '%1' на порту %2")
|
||||
.arg(settings.name).arg(settings.port), 0);
|
||||
} else {
|
||||
delete server;
|
||||
toLog("uGeneral", "loadSavedChats",
|
||||
QString("Не удалось запустить чат '%1' на порту %2")
|
||||
.arg(settings.name).arg(settings.port), 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user