feat: remember splitter state

This commit is contained in:
arm64v8a
2023-03-25 14:52:41 +09:00
parent 180a764977
commit cb2fabd11c
6 changed files with 12 additions and 6 deletions

View File

@@ -73,6 +73,7 @@ namespace NekoRay {
_add(new configItem("log_ignore", &log_ignore, itemType::stringList));
_add(new configItem("start_minimal", &start_minimal, itemType::boolean));
_add(new configItem("max_log_line", &max_log_line, itemType::integer));
_add(new configItem("splitter_state", &splitter_state, itemType::string));
#ifndef Q_OS_WIN
_add(new configItem("vpn_already_admin", &vpn_already_admin, itemType::boolean));
#endif

View File

@@ -89,6 +89,7 @@ namespace NekoRay {
QStringList log_ignore = {};
bool start_minimal = false;
int max_log_line = 200;
QString splitter_state = "";
// Subscription
QString user_agent = "Nekoray/1.0 (Prefer Clash Format)";

View File

@@ -35,7 +35,7 @@ QStringList SplitLinesSkipSharp(const QString &_string) {
return newLines;
}
QString DecodeB64IfValid(const QString &input, QByteArray::Base64Options options) {
QByteArray DecodeB64IfValid(const QString &input, QByteArray::Base64Options options) {
Qt515Base64::Base64Options newOptions = Qt515Base64::Base64Option::AbortOnBase64DecodingErrors;
if (options.testFlag(QByteArray::Base64UrlEncoding)) newOptions |= Qt515Base64::Base64Option::Base64UrlEncoding;
if (options.testFlag(QByteArray::OmitTrailingEquals)) newOptions |= Qt515Base64::Base64Option::OmitTrailingEquals;

View File

@@ -47,7 +47,7 @@ QStringList SplitLinesSkipSharp(const QString &_string);
// Base64
QString DecodeB64IfValid(const QString &input, QByteArray::Base64Options options = QByteArray::Base64Option::Base64Encoding);
QByteArray DecodeB64IfValid(const QString &input, QByteArray::Base64Options options = QByteArray::Base64Option::Base64Encoding);
// URL

View File

@@ -72,7 +72,7 @@ namespace NekoRay::sub {
if (ent->bean->version == -114514) return;
auto j = DecodeB64IfValid(link.fragment().toUtf8(), QByteArray::Base64UrlEncoding);
if (j.isEmpty()) return;
ent->bean->FromJsonBytes(j.toUtf8());
ent->bean->FromJsonBytes(j);
MW_show_log("nekoray format: " + ent->bean->DisplayTypeAndName());
}

View File

@@ -112,6 +112,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi
connect(ui->toolButton_update, &QToolButton::clicked, this, [=] { runOnNewThread([=] { CheckUpdate(); }); });
// Setup log UI
ui->splitter->restoreState(DecodeB64IfValid(NekoRay::dataStore->splitter_state));
new SyntaxHighlighter(false, qvLogDocument);
qvLogDocument->setUndoRedoEnabled(false);
ui->masterLogBrowser->setUndoRedoEnabled(false);
@@ -588,20 +589,24 @@ void MainWindow::on_menu_hotkey_settings_triggered() {
void MainWindow::on_commitDataRequest() {
qDebug() << "Start of data save";
//
if (!isMaximized()) {
auto olds = NekoRay::dataStore->mw_size;
auto news = QString("%1x%2").arg(size().width()).arg(size().height());
if (olds != news) {
NekoRay::dataStore->mw_size = news;
NekoRay::dataStore->Save();
}
}
//
NekoRay::dataStore->splitter_state = ui->splitter->saveState().toBase64();
//
auto last_id = NekoRay::dataStore->started_id;
neko_stop();
if (NekoRay::dataStore->remember_enable && last_id >= 0) {
NekoRay::dataStore->UpdateStartedId(last_id);
NekoRay::dataStore->remember_id = last_id;
}
//
NekoRay::dataStore->Save();
qDebug() << "End of data save";
}
@@ -1497,7 +1502,6 @@ void MainWindow::on_masterLogBrowser_customContextMenuRequested(const QPoint &po
bool MainWindow::eventFilter(QObject *obj, QEvent *event) {
if (event->type() == QEvent::MouseButtonPress) {
auto mouseEvent = dynamic_cast<QMouseEvent *>(event);
if (obj == ui->label_running && mouseEvent->button() == Qt::LeftButton && running != nullptr) {
speedtest_current();
return true;