几乎完成
This commit is contained in:
@ -1,30 +1,34 @@
|
||||
#include "applicationmanager.h"
|
||||
#include "applicationmanager.h"
|
||||
#include "applicationmanagerpage.h"
|
||||
#include "config.h"
|
||||
#include "addapp.h"
|
||||
#include "addcategory.h"
|
||||
#include "sqlitehelper.h"
|
||||
#include "userimprove.h"
|
||||
#include "globalvariables.h"
|
||||
#include "netio.h"
|
||||
#include <ctime>
|
||||
|
||||
#include "globalvariables.h"
|
||||
|
||||
#include "MyButton.h"
|
||||
ApplicationManager::ApplicationManager(QWidget *parent)
|
||||
: QWidget(parent)
|
||||
{
|
||||
application_manager = this;
|
||||
ui.setupUi(this);
|
||||
resize(parent->width(), parent->height());
|
||||
this->parent = parent;
|
||||
miniblink = new QMiniBlink(this);
|
||||
miniblink->init();
|
||||
miniblink->show();
|
||||
connect(this, &ApplicationManager::changeUrl, miniblink, &QMiniBlink::switchUrl);
|
||||
layout = new QVBoxLayout(this);
|
||||
layout_top = new QHBoxLayout(this);
|
||||
layout_top->setAlignment(Qt::AlignRight);
|
||||
layout_top->setMargin(5);
|
||||
layout_top_right = new QHBoxLayout(this);
|
||||
layout_top_right->setAlignment(Qt::AlignRight);
|
||||
layout_top_right->setMargin(5);
|
||||
layout_top= new QHBoxLayout(this);
|
||||
layout_top_left = new QHBoxLayout(this);
|
||||
layout_top_left->setMargin(0);
|
||||
layout_top_left->setAlignment(Qt::AlignLeft);
|
||||
layout_bottom = new QHBoxLayout(this);
|
||||
QList<Categrory> categrories;
|
||||
sqlite_helper.get_category(categrories,false,true);
|
||||
sqlite_helper.get_category(categrories,false);
|
||||
sqlite_helper.get_buttons(button_structs);
|
||||
for (auto button_struct : button_structs)
|
||||
{
|
||||
@ -36,8 +40,8 @@ ApplicationManager::ApplicationManager(QWidget *parent)
|
||||
button->setMaximumHeight(TEXT_SIZE * scale * 3 + 20);
|
||||
//button->resize(TEXT_SIZE * button->text().length() * scale * 3 + 20, TEXT_SIZE * scale * 3 + 10);
|
||||
buttons << button;
|
||||
layout_top->addWidget(button, 1);
|
||||
connect(button, &MiniButton::click0, button, &MiniButton::onclick1);
|
||||
layout_top_right->addWidget(button, 1);
|
||||
connect(button, &MiniButton::clicked, button, &MiniButton::onclick1);
|
||||
connect(button, &MiniButton::click1, this, &ApplicationManager::onclick1);
|
||||
}
|
||||
//ui.tabWidget->setStyleSheet("border:none;");
|
||||
@ -49,24 +53,29 @@ ApplicationManager::ApplicationManager(QWidget *parent)
|
||||
tab_bar = new QTabBar(this);
|
||||
layout_bottom_top = new QVBoxLayout;
|
||||
|
||||
for(int i=1;i<=8;i++)
|
||||
for(int i=0;i<categrories.length();i++)
|
||||
{
|
||||
tab_bar->addTab(categrories[i - 1].name + "(" + QString::number(categrories[i - 1].total) + ")");
|
||||
tab_bar->addTab(categrories[i].name + "(" + QString::number(categrories[i].total) + ")");
|
||||
map2.insert(i, categrories[i].id);
|
||||
}
|
||||
layout_bottom_top->addWidget(tab_bar, 1);
|
||||
layout_top_left->addWidget(tab_bar, 1);
|
||||
layout_top->addLayout(layout_top_left, 7);
|
||||
layout_top->addLayout(layout_top_right, 3);
|
||||
application_manager_page_all = new ApplicationManagerPage(ALL, this, this);
|
||||
connect(this, &ApplicationManager::refresh, application_manager_page_all, &ApplicationManagerPage::refresh);
|
||||
layout_bottom_top->addWidget(application_manager_page_all, 19);
|
||||
map.insert(1, application_manager_page_all);
|
||||
for(int i=2;i<=8;i++)
|
||||
map.insert(ALL, application_manager_page_all);
|
||||
for(int i=2;i<=CATEGORIES_NUM;i++)
|
||||
{
|
||||
ApplicationManagerPage* application_manager_page = new ApplicationManagerPage(i, this, this);
|
||||
connect(this, &ApplicationManager::refresh, application_manager_page, &ApplicationManagerPage::refresh);
|
||||
layout_bottom_top->addWidget(application_manager_page, 19);
|
||||
layout_bottom_top->addWidget(application_manager_page, 1);
|
||||
application_manager_page->setHidden(true);
|
||||
map.insert(i, application_manager_page);
|
||||
}
|
||||
connect(this,&ApplicationManager::refresh,this,&ApplicationManager::onNumChange);
|
||||
//先不刷新,创建完navbar再刷新
|
||||
//emit refresh();
|
||||
connect(this,&ApplicationManager::refresh_tab,this,&ApplicationManager::onNumChange);
|
||||
tab_bar->setCurrentIndex(0);
|
||||
connect(tab_bar, &QTabBar::currentChanged, this, &ApplicationManager::tabChange);
|
||||
QString style = "QTabBar::tab{height:80;width:150; border:2px} QTabBar::tab:hover{ border:2px;height:80;width:150;color:";
|
||||
@ -76,63 +85,7 @@ ApplicationManager::ApplicationManager(QWidget *parent)
|
||||
style += ";}";
|
||||
tab_bar->setStyleSheet(style);
|
||||
tab_bar->setDrawBase(false);
|
||||
/*ApplicationManagerPage* application_manager_page_all = new ApplicationManagerPage(ALL,this);
|
||||
QHBoxLayout *application_manager_page_all_layout = new QHBoxLayout;
|
||||
application_manager_page_all_layout->addWidget(application_manager_page_all);
|
||||
pages.insert(application_manager_page_all_layout, application_manager_page_all);
|
||||
ui.tab_1->setLayout(application_manager_page_all_layout);
|
||||
ui.tabWidget->setTabText(0,QString::fromLocal8Bit("ȫ<><C8AB>"));
|
||||
|
||||
ApplicationManagerPage* application_manager_page_elite = new ApplicationManagerPage(ELITE,this);
|
||||
QHBoxLayout* application_manager_page_elite_layout = new QHBoxLayout;
|
||||
application_manager_page_elite_layout->addWidget(application_manager_page_elite);
|
||||
ui.tab_2->setLayout(application_manager_page_elite_layout);
|
||||
pages.insert(application_manager_page_elite_layout, application_manager_page_elite);
|
||||
ui.tabWidget->setTabText(1, categrories[0].name);
|
||||
|
||||
ApplicationManagerPage* application_manager_page_soft = new ApplicationManagerPage(SOFT,this);
|
||||
QHBoxLayout* application_manager_page_soft_layout = new QHBoxLayout;
|
||||
application_manager_page_soft_layout->addWidget(application_manager_page_soft);
|
||||
pages.insert(application_manager_page_soft_layout, application_manager_page_soft);
|
||||
ui.tab_3->setLayout(application_manager_page_soft_layout);
|
||||
ui.tabWidget->setTabText(2, categrories[1].name);
|
||||
|
||||
ApplicationManagerPage* application_manager_page_system = new ApplicationManagerPage(SYSTEM,this);
|
||||
QHBoxLayout* application_manager_page_system_layout = new QHBoxLayout;
|
||||
application_manager_page_system_layout->addWidget(application_manager_page_system);
|
||||
pages.insert(application_manager_page_system_layout, application_manager_page_system);
|
||||
ui.tab_4->setLayout(application_manager_page_system_layout);
|
||||
ui.tabWidget->setTabText(3, categrories[2].name);
|
||||
|
||||
ApplicationManagerPage* application_manager_page_inner = new ApplicationManagerPage(INNER,this);
|
||||
QHBoxLayout* application_manager_page_inner_layout = new QHBoxLayout;
|
||||
application_manager_page_inner_layout->addWidget(application_manager_page_inner);
|
||||
pages.insert(application_manager_page_inner_layout, application_manager_page_inner);
|
||||
ui.tab_5->setLayout(application_manager_page_inner_layout);
|
||||
ui.tabWidget->setTabText(4, categrories[3].name);
|
||||
|
||||
ApplicationManagerPage* application_manager_page_custom_1 = new ApplicationManagerPage(CUSTOM_1, this);
|
||||
QHBoxLayout* application_manager_page_custom_1_layout = new QHBoxLayout;
|
||||
application_manager_page_custom_1_layout->addWidget(application_manager_page_custom_1);
|
||||
pages.insert(application_manager_page_custom_1_layout, application_manager_page_custom_1);
|
||||
ui.tab_6->setLayout(application_manager_page_custom_1_layout);
|
||||
ui.tabWidget->setTabText(5, categrories[4].name);
|
||||
|
||||
ApplicationManagerPage* application_manager_page_custom_2 = new ApplicationManagerPage(CUSTOM_2, this);
|
||||
QHBoxLayout* application_manager_page_custom_2_layout = new QHBoxLayout;
|
||||
application_manager_page_custom_2_layout->addWidget(application_manager_page_custom_2);
|
||||
pages.insert(application_manager_page_custom_2_layout, application_manager_page_custom_2);
|
||||
ui.tab_7->setLayout(application_manager_page_custom_2_layout);
|
||||
ui.tabWidget->setTabText(6, categrories[5].name);
|
||||
|
||||
ApplicationManagerPage* application_manager_page_others = new ApplicationManagerPage(OTHERS,this);
|
||||
QHBoxLayout* application_manager_page_others_layout = new QHBoxLayout;
|
||||
application_manager_page_others_layout->addWidget(application_manager_page_others);
|
||||
pages.insert(application_manager_page_others_layout, application_manager_page_others);
|
||||
ui.tab_8->setLayout(application_manager_page_others_layout);
|
||||
ui.tabWidget->setTabText(7, categrories[6].name);*/
|
||||
layout_bottom->addLayout(layout_bottom_top,7);
|
||||
layout_bottom->addWidget(miniblink, 3);
|
||||
layout->addLayout(layout_top, 1);
|
||||
layout->addLayout(layout_bottom, 9);
|
||||
setLayout(layout);
|
||||
@ -149,7 +102,8 @@ ApplicationManager::~ApplicationManager()
|
||||
delete pages[layout];
|
||||
delete layout;
|
||||
}
|
||||
delete miniblink;
|
||||
delete layout_top_left;
|
||||
delete layout_top_right;
|
||||
delete layout_top;
|
||||
delete layout_bottom;
|
||||
delete layout;
|
||||
@ -169,65 +123,77 @@ void ApplicationManager::onclick1(QString op, QString func, QString path, QStrin
|
||||
add_app.get_sort(), add_app.get_categories());
|
||||
if (!ok)
|
||||
{
|
||||
QMessageBox::critical(this, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>"));
|
||||
QMessageBox::critical(this, QString::fromLocal8Bit("错误"), QString::fromLocal8Bit("插入失败,全名是否重名"));
|
||||
}
|
||||
|
||||
emit refresh();
|
||||
/*table->insertRow(table->rowCount()-1);
|
||||
table->setItem(table->rowCount(), 0, new QTableWidgetItem(add_app.get_name()));
|
||||
table->setItem(table->rowCount(), 1, new QTableWidgetItem(add_app.get_orig_name()));
|
||||
Record2 record2;
|
||||
srand(time(nullptr));
|
||||
|
||||
int id = rand();
|
||||
if(id<RAND_MAX-100000)
|
||||
{
|
||||
id += 100000;
|
||||
}
|
||||
record2.settings = new MiniButton(id, "settings");
|
||||
record2.settings->setText(QString::fromLocal8Bit("<22><><EFBFBD><EFBFBD>"));
|
||||
connect(record2.settings, &MiniButton::click0, record2.settings, &MiniButton::onclick2);
|
||||
connect(record2.settings, &MiniButton::click2, this, &ApplicationManager::onclick2);
|
||||
record2.open = new MiniButton(id, "open");
|
||||
record2.open->setText(QString::fromLocal8Bit("<22><><EFBFBD><EFBFBD>"));
|
||||
connect(record2.open, &MiniButton::click0, record2.open, &MiniButton::onclick2);
|
||||
connect(record2.open, &MiniButton::click2, this, &ApplicationManager::onclick2);
|
||||
record2.exe_file = add_app.get_exe_path();
|
||||
record2.orig_name = add_app.get_orig_name();
|
||||
table->setCellWidget(table->rowCount(), 4, record2.settings);
|
||||
table->setCellWidget(table->rowCount(), 5, record2.open);
|
||||
rows.insert(id, record2);*/
|
||||
}
|
||||
}
|
||||
else if (func == "app_update")
|
||||
{
|
||||
bool software_ok = sqlite_helper.update_software();
|
||||
bool app_ok = sqlite_helper.update_app();
|
||||
QFile file(QApplication::applicationDirPath() + DEFAULT_FILE);
|
||||
if(file.open(QIODevice::ReadOnly))
|
||||
{
|
||||
QByteArray ba = file.readAll();
|
||||
file.close();
|
||||
QJsonParseError json_error;
|
||||
QJsonDocument jsonDoc(QJsonDocument::fromJson(ba, &json_error));
|
||||
if (json_error.error == QJsonParseError::NoError)
|
||||
{
|
||||
QJsonObject rootObj = jsonDoc.object();
|
||||
agree=rootObj.value("agree").toBool();
|
||||
}
|
||||
else
|
||||
{
|
||||
QMessageBox::critical(this, QString::fromLocal8Bit("错误"), QString::fromLocal8Bit("配置文件损坏"));
|
||||
}
|
||||
}else
|
||||
{
|
||||
UserImprove user_improve;
|
||||
user_improve.exec();
|
||||
if(file.open(QIODevice::WriteOnly))
|
||||
{
|
||||
QJsonObject rootObj;
|
||||
rootObj.insert("agree", agree);
|
||||
QJsonDocument jsonDoc;
|
||||
jsonDoc.setObject(rootObj);
|
||||
file.write(jsonDoc.toJson());
|
||||
file.close();
|
||||
}
|
||||
}
|
||||
|
||||
if(agree)
|
||||
{
|
||||
DeviceRequest *device_request = new DeviceRequest;//构造函数里面会自动发送请求
|
||||
delete device_request;
|
||||
}
|
||||
if(software_ok&&app_ok)
|
||||
{
|
||||
QMessageBox::information(this, QString::fromLocal8Bit("<EFBFBD><EFBFBD>ʾ"), QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD>³ɹ<EFBFBD>"));
|
||||
QMessageBox::information(this, QString::fromLocal8Bit("提示"), QString::fromLocal8Bit("更新成功"));
|
||||
emit refresh();
|
||||
}
|
||||
else
|
||||
{
|
||||
QMessageBox::critical(this, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD>²<EFBFBD><EFBFBD>ֻ<EFBFBD>ȫ<EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>"));
|
||||
QMessageBox::critical(this, QString::fromLocal8Bit("错误"), QString::fromLocal8Bit("更新部分或全部失败,全名是否重名?"));
|
||||
}
|
||||
emit refresh();
|
||||
}else if(func=="app_category")
|
||||
{
|
||||
AddCategory add_category;
|
||||
add_category.exec();
|
||||
if(add_category.changed)
|
||||
{
|
||||
for(int i=0;i<7;i++)
|
||||
for(int i=0;i<add_category.categrories.length();i++)
|
||||
{
|
||||
tab_bar->setTabText(i + 1, add_category.categrories[i].name);
|
||||
}
|
||||
bool ok = sqlite_helper.set_category(add_category.categrories);
|
||||
if (!ok)
|
||||
{
|
||||
QMessageBox::critical(this, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>"));
|
||||
QMessageBox::critical(this, QString::fromLocal8Bit("错误"), QString::fromLocal8Bit("添加失败,分类是否重名?"));
|
||||
}
|
||||
emit refresh();
|
||||
emit refresh_tab();
|
||||
|
||||
}
|
||||
}
|
||||
@ -248,10 +214,11 @@ void ApplicationManager::onclick1(QString op, QString func, QString path, QStrin
|
||||
|
||||
void ApplicationManager::onclick2(QString orig_name, QString op)
|
||||
{
|
||||
sqlite_helper.use_software(orig_name);
|
||||
if (op == "app")
|
||||
{
|
||||
if (application_manager_page_all->rows[orig_name].func == "openwechat") {
|
||||
emit application_manager_page_all->onclick3(application_manager_page_all->rows[orig_name].op, application_manager_page_all->rows[orig_name].func, application_manager_page_all->rows[orig_name].exe_file, application_manager_page_all->rows[orig_name].url);
|
||||
emit application_manager_page_all->onclick3(orig_name,application_manager_page_all->rows[orig_name].op, application_manager_page_all->rows[orig_name].func, application_manager_page_all->rows[orig_name].exe_file, application_manager_page_all->rows[orig_name].url);
|
||||
}
|
||||
else {
|
||||
emit changeUrl(application_manager_page_all->rows[orig_name].url);
|
||||
@ -267,14 +234,14 @@ void ApplicationManager::onclick2(QString orig_name, QString op)
|
||||
bool ok = sqlite_helper.edit_software(add_app.get_name(), add_app.get_orig_name(), add_app.get_exe_path(), add_app.get_sort(), add_app.get_categories());
|
||||
if (!ok)
|
||||
{
|
||||
QMessageBox::critical(this, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QString::fromLocal8Bit("<EFBFBD>༭ʧ<EFBFBD><EFBFBD>"));
|
||||
QMessageBox::critical(this, QString::fromLocal8Bit("错误"), QString::fromLocal8Bit("编辑失败"));
|
||||
}
|
||||
emit refresh();
|
||||
|
||||
}
|
||||
}
|
||||
else {
|
||||
emit application_manager_page_all->onclick3(application_manager_page_all->rows[orig_name].op,
|
||||
emit application_manager_page_all->onclick3(orig_name,application_manager_page_all->rows[orig_name].op,
|
||||
application_manager_page_all->rows[orig_name].func,
|
||||
application_manager_page_all->rows[orig_name].url,
|
||||
application_manager_page_all->rows[orig_name].exe_file
|
||||
@ -289,13 +256,42 @@ void ApplicationManager::tabChange(int index)
|
||||
{
|
||||
map[i]->setHidden(true);
|
||||
}
|
||||
map[index + 1]->setHidden(false);
|
||||
map[map2[index]]->setHidden(false);
|
||||
}
|
||||
|
||||
void ApplicationManager::onNumChange() {
|
||||
QList<Categrory> categrories;
|
||||
sqlite_helper.get_category(categrories, false, true);
|
||||
for (int i = 0; i < categrories.size(); i++) {
|
||||
tab_bar->setTabText(i, categrories[i].name + "(" + QString::number(categrories[i].total) + ")");
|
||||
int count = tab_bar->count();
|
||||
disconnect(tab_bar, &QTabBar::currentChanged, this, &ApplicationManager::tabChange);
|
||||
for(int i=0;i<count;i++)
|
||||
{
|
||||
tab_bar->removeTab(0);
|
||||
}
|
||||
}
|
||||
for(auto i:map.values())
|
||||
{
|
||||
delete i;
|
||||
}
|
||||
application_manager_page_all = new ApplicationManagerPage(ALL, this, this);
|
||||
connect(this, &ApplicationManager::refresh, application_manager_page_all, &ApplicationManagerPage::refresh);
|
||||
layout_bottom_top->addWidget(application_manager_page_all, 19);
|
||||
map.insert(ALL, application_manager_page_all);
|
||||
for (int i = 2; i <= CATEGORIES_NUM; i++)
|
||||
{
|
||||
ApplicationManagerPage* application_manager_page = new ApplicationManagerPage(i, this, this);
|
||||
connect(this, &ApplicationManager::refresh, application_manager_page, &ApplicationManagerPage::refresh);
|
||||
layout_bottom_top->addWidget(application_manager_page, 1);
|
||||
application_manager_page->setHidden(true);
|
||||
map.insert(i, application_manager_page);
|
||||
}
|
||||
QList<Categrory> categories;
|
||||
map2.clear();
|
||||
sqlite_helper.get_category(categories,false);
|
||||
for (int i = 0; i < categories.size(); i++) {
|
||||
tab_bar->addTab(categories[i].name + "(" + QString::number(categories[i].total) + ")");
|
||||
map2.insert(i, categories[i].id);
|
||||
}
|
||||
connect(tab_bar, &QTabBar::currentChanged, this, &ApplicationManager::tabChange);
|
||||
|
||||
tab_bar->setCurrentIndex(0);
|
||||
emit refresh();
|
||||
}
|
||||
ApplicationManager *application_manager;
|
Reference in New Issue
Block a user