From ae4216de6101db63a1ec7d817852cad2d10863f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Fri, 2 Oct 2015 00:12:53 +0200 Subject: GH-719 implement paste.ee API keys --- application/pages/OtherLogsPage.cpp | 2 +- application/pages/global/PasteEEPage.cpp | 88 +++++++++++++++++++ application/pages/global/PasteEEPage.h | 62 ++++++++++++++ application/pages/global/PasteEEPage.ui | 139 +++++++++++++++++++++++++++++++ 4 files changed, 290 insertions(+), 1 deletion(-) create mode 100644 application/pages/global/PasteEEPage.cpp create mode 100644 application/pages/global/PasteEEPage.h create mode 100644 application/pages/global/PasteEEPage.ui (limited to 'application/pages') diff --git a/application/pages/OtherLogsPage.cpp b/application/pages/OtherLogsPage.cpp index 74257a83..f1b59f1e 100644 --- a/application/pages/OtherLogsPage.cpp +++ b/application/pages/OtherLogsPage.cpp @@ -121,7 +121,7 @@ void OtherLogsPage::on_btnReload_clicked() tr("The file (%1) is too big. You may want to open it in a viewer optimized " "for large files.").arg(file.fileName())); }; - if(file.size() >= 10000000ll) + if(file.size() > (1024ll * 1024ll * 12ll)) { showTooBig(); return; diff --git a/application/pages/global/PasteEEPage.cpp b/application/pages/global/PasteEEPage.cpp new file mode 100644 index 00000000..e6827601 --- /dev/null +++ b/application/pages/global/PasteEEPage.cpp @@ -0,0 +1,88 @@ +/* Copyright 2013-2015 MultiMC Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "PasteEEPage.h" +#include "ui_PasteEEPage.h" + +#include +#include +#include + +#include + +#include "settings/SettingsObject.h" +#include "tools/BaseProfiler.h" +#include "MultiMC.h" + +PasteEEPage::PasteEEPage(QWidget *parent) : + QWidget(parent), + ui(new Ui::PasteEEPage) +{ + ui->setupUi(this); + ui->tabWidget->tabBar()->hide();\ + connect(ui->customAPIkeyEdit, &QLineEdit::textEdited, this, &PasteEEPage::textEdited); + loadSettings(); +} + +PasteEEPage::~PasteEEPage() +{ + delete ui; +} + +void PasteEEPage::loadSettings() +{ + auto s = MMC->settings(); + QString keyToUse = s->get("PasteEEAPIKey").toString(); + if(keyToUse == "public") + { + ui->publicButton->setChecked(true); + } + else if(keyToUse == "multimc") + { + ui->multimcButton->setChecked(true); + } + else + { + ui->customButton->setChecked(true); + ui->customAPIkeyEdit->setText(keyToUse); + } +} + +void PasteEEPage::applySettings() +{ + auto s = MMC->settings(); + + QString pasteKeyToUse; + if (ui->customButton->isChecked()) + pasteKeyToUse = ui->customAPIkeyEdit->text(); + else if (ui->publicButton->isChecked()) + pasteKeyToUse = "public"; + else + { + pasteKeyToUse = "multimc"; + } + s->set("PasteEEAPIKey", pasteKeyToUse); +} + +bool PasteEEPage::apply() +{ + applySettings(); + return true; +} + +void PasteEEPage::textEdited(const QString& text) +{ + ui->customButton->setChecked(true); +} diff --git a/application/pages/global/PasteEEPage.h b/application/pages/global/PasteEEPage.h new file mode 100644 index 00000000..99384373 --- /dev/null +++ b/application/pages/global/PasteEEPage.h @@ -0,0 +1,62 @@ +/* Copyright 2013-2015 MultiMC Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include + +#include "pages/BasePage.h" +#include + +namespace Ui { +class PasteEEPage; +} + +class PasteEEPage : public QWidget, public BasePage +{ + Q_OBJECT + +public: + explicit PasteEEPage(QWidget *parent = 0); + ~PasteEEPage(); + + QString displayName() const override + { + return tr("Log Upload"); + } + QIcon icon() const override + { + return MMC->getThemedIcon("log"); + } + QString id() const override + { + return "log-upload"; + } + QString helpPage() const override + { + return "Log-Upload"; + } + virtual bool apply() override; + +private: + void loadSettings(); + void applySettings(); + +private slots: + void textEdited(const QString &text); + +private: + Ui::PasteEEPage *ui; +}; diff --git a/application/pages/global/PasteEEPage.ui b/application/pages/global/PasteEEPage.ui new file mode 100644 index 00000000..84da2b5a --- /dev/null +++ b/application/pages/global/PasteEEPage.ui @@ -0,0 +1,139 @@ + + + PasteEEPage + + + + 0 + 0 + 491 + 474 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 0 + + + + Tab 1 + + + + + + paste.ee API key + + + + + + No key - &2MB upload limit + + + pasteButtonGroup + + + + + + + MultiMC key - 12MB &upload limit + + + pasteButtonGroup + + + + + + + &Your own key - 12MB upload limit: + + + pasteButtonGroup + + + + + + + QLineEdit::Password + + + Paste your API key here! + + + + + + + Qt::Horizontal + + + + + + + <html><head/><body><p><a href="https://paste.ee"><span style=" text-decoration: underline; color:#2980b9;">paste.ee</span></a> is used by MultiMC for log uploads. If you have a <a href="https://paste.ee"><span style=" text-decoration: underline; color:#2980b9;">paste.ee</span></a> account, you can add your API key here and have your uploaded logs paired with your account.</p></body></html> + + + Qt::RichText + + + true + + + + + + + + + + Qt::Vertical + + + + 20 + 216 + + + + + + + + + + + + tabWidget + publicButton + multimcButton + customButton + customAPIkeyEdit + + + + + + + -- cgit v1.2.3