#ifndef MINECRAFTSKINDOWNLOADER_H
#define MINECRAFTSKINDOWNLOADER_H
#include <QMainWindow>
#include <QtNetwork/QNetworkReply>
#include <QtNetwork/QNetworkAccessManager>
namespace Ui {
class MinecraftSkinDownloader;
}
{
Q_OBJECT
public:
explicit MinecraftSkinDownloader
(QWidget *parent
= 0);
~MinecraftSkinDownloader();
QNetworkAccessManager *manager;
private slots:
void slot_netwManagerFinished(QNetworkReply *reply);
void onsaveAs_clicked();
void on_clear_clicked();
void on_pushButton_clicked();
private:
Ui::MinecraftSkinDownloader *ui;
};
#endif // MINECRAFTSKINDOWNLOADER_H
#ifndef MINECRAFTSKINDOWNLOADER_H
#define MINECRAFTSKINDOWNLOADER_H
#include <QMainWindow>
#include <QtNetwork/QNetworkReply>
#include <QtNetwork/QNetworkAccessManager>
namespace Ui {
class MinecraftSkinDownloader;
}
class MinecraftSkinDownloader : public QMainWindow
{
Q_OBJECT
public:
explicit MinecraftSkinDownloader(QWidget *parent = 0);
~MinecraftSkinDownloader();
QByteArray pngData;
QNetworkAccessManager *manager;
private slots:
void slot_netwManagerFinished(QNetworkReply *reply);
void onsaveAs_clicked();
void on_clear_clicked();
void on_pushButton_clicked();
private:
Ui::MinecraftSkinDownloader *ui;
};
#endif // MINECRAFTSKINDOWNLOADER_H
To copy to clipboard, switch view to plain text mode
#include "minecraftskindownloader.h"
#include "ui_minecraftskindownloader.h"
#include <QWidget>
#include <QObject>
#include <QtNetwork/QNetworkAccessManager>
#include <QFileDialog>
#include <QtNetwork/QNetworkRequest>
#include <QDebug>
#include <QUrl>
#include <QFile>
#include <QPixmap>
#include <QMessageBox>
MinecraftSkinDownloader
::MinecraftSkinDownloader(QWidget *parent
) : ui(new Ui::MinecraftSkinDownloader)
{
ui->setupUi(this);
this->setWindowTitle("Minecraft Skin Downloader");
setWindowIcon(icon);
setFixedSize(400, 200);
setStyleSheet("QMainWindow { background-image: url(:/bg.png); } ");
connect(ui->save, SIGNAL(clicked()), this, SLOT(onsaveAs_clicked()));
}
MinecraftSkinDownloader::~MinecraftSkinDownloader()
{
delete ui;
}
//http://s3.amazonaws.com/MinecraftSkins/USERNAMEHERE.png
void MinecraftSkinDownloader::on_pushButton_clicked()
{
QString prefix
= "http://s3.amazonaws.com/MinecraftSkins/";
QString usrl
= prefix
+= ui
->lineEdit
->text
() += ".png";
//QNetworkAccessManager *manager = new QNetworkAccessManager(this);
connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(slot_netwManagerFinished(QNetworkReply*)));
QNetworkRequest request(url);
manager->get(request);
}
void MinecraftSkinDownloader::slot_netwManagerFinished(QNetworkReply *reply)
{
if (reply->error() != QNetworkReply::NoError)
{
qDebug() << "Error in" << reply->url() << ":" << reply->errorString();
QPixmap noUsr
(":/voidUser.png");
// Void User path ui->preview->show();
ui->preview->setStyleSheet("background: transparent;");
ui->preview->setPixmap(noUsr);
reply->deleteLater();
return;
}
pngData = reply->readAll();
pixmap.loadFromData(pngData);
QPixmap scaled
= pixmap.
scaled(128,
64,Qt
::IgnoreAspectRatio, Qt
::FastTransformation);
ui->preview->show();
ui->preview->setStyleSheet("QLabel { background-color: white; }");
ui->preview->setPixmap(scaled);
reply->deleteLater();
}
void MinecraftSkinDownloader::onsaveAs_clicked()
{
if(pngData.isEmpty())
{
ui->preview->show();
ui->preview->setPixmap(error);
return;
}
QString filename
= QFileDialog::getSaveFileName(this, tr
("Save Skin"),
"C:/Users/",
("PNG Image (*.png)"));
file.write(pngData);
file.close();
}
void MinecraftSkinDownloader::on_clear_clicked()
{
pngData.clear();
ui->preview->setStyleSheet("background: transparent;");
ui->lineEdit->clear();
ui->preview->hide();
return;
}
#include "minecraftskindownloader.h"
#include "ui_minecraftskindownloader.h"
#include <QWidget>
#include <QObject>
#include <QtNetwork/QNetworkAccessManager>
#include <QFileDialog>
#include <QtNetwork/QNetworkRequest>
#include <QDebug>
#include <QUrl>
#include <QFile>
#include <QPixmap>
#include <QMessageBox>
MinecraftSkinDownloader::MinecraftSkinDownloader(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MinecraftSkinDownloader)
{
ui->setupUi(this);
this->setWindowTitle("Minecraft Skin Downloader");
QIcon icon(":/ico");
setWindowIcon(icon);
setFixedSize(400, 200);
setStyleSheet("QMainWindow { background-image: url(:/bg.png); } ");
connect(ui->save, SIGNAL(clicked()), this, SLOT(onsaveAs_clicked()));
}
MinecraftSkinDownloader::~MinecraftSkinDownloader()
{
delete ui;
}
//http://s3.amazonaws.com/MinecraftSkins/USERNAMEHERE.png
void MinecraftSkinDownloader::on_pushButton_clicked()
{
QString prefix = "http://s3.amazonaws.com/MinecraftSkins/";
QString usrl = prefix += ui->lineEdit->text() += ".png";
//QNetworkAccessManager *manager = new QNetworkAccessManager(this);
connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(slot_netwManagerFinished(QNetworkReply*)));
QUrl url(usrl);
QNetworkRequest request(url);
manager->get(request);
}
void MinecraftSkinDownloader::slot_netwManagerFinished(QNetworkReply *reply)
{
if (reply->error() != QNetworkReply::NoError)
{
qDebug() << "Error in" << reply->url() << ":" << reply->errorString();
QPixmap noUsr(":/voidUser.png"); // Void User path
ui->preview->show();
ui->preview->setStyleSheet("background: transparent;");
ui->preview->setPixmap(noUsr);
reply->deleteLater();
return;
}
pngData = reply->readAll();
QPixmap pixmap;
pixmap.loadFromData(pngData);
QPixmap scaled = pixmap.scaled(128,64,Qt::IgnoreAspectRatio, Qt::FastTransformation);
ui->preview->show();
ui->preview->setStyleSheet("QLabel { background-color: white; }");
ui->preview->setPixmap(scaled);
reply->deleteLater();
}
void MinecraftSkinDownloader::onsaveAs_clicked()
{
if(pngData.isEmpty())
{
ui->preview->show();
QPixmap error(":/noSaveData.png");
ui->preview->setPixmap(error);
return;
}
QString filename = QFileDialog::getSaveFileName(this, tr("Save Skin"), "C:/Users/", ("PNG Image (*.png)"));
QFile file(filename);
file.open(QIODevice::WriteOnly);
file.write(pngData);
file.close();
}
void MinecraftSkinDownloader::on_clear_clicked()
{
pngData.clear();
ui->preview->setStyleSheet("background: transparent;");
ui->lineEdit->clear();
ui->preview->hide();
return;
}
To copy to clipboard, switch view to plain text mode
Bookmarks