layer_tiles_page.cpp 3.8 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12
#include "layer_tiles_page.h"
#include "ui_layer_tiles_page.h"
#include "layer_tiles.h"
#include <QSettings>
#include <QCoreApplication>
#include <QFileDialog>
#include <QDebug>
#include <QCheckBox>
namespace QTVOSM{
	layer_tiles_page::layer_tiles_page(layer_tiles * layer,QWidget *parent) :
		QWidget(parent),
		m_pLayer(layer),
13
		ui(new Ui::layer_tiles_page)
14 15 16 17
	{
		ui->setupUi(this);
		//Get Cache Address
		QSettings settings(QCoreApplication::applicationFilePath()+".ini",QSettings::IniFormat);
18
		QString strServerURL = settings.value(QString("settings/ServerURL_%1").arg(layer->get_name()),"http://%4.tile.openstreetmap.org/%1/%2/%3.png").toString();
19
		QString strLocalCache = settings.value(QString("settings/LocalCache_%1").arg(layer->get_name()), QCoreApplication::applicationDirPath() +"/OSMCache").toString();
20
		int nCacheExpireDays = settings.value(QString("settings/CacheExpireDays_%1").arg(layer->get_name()), 30).toInt();
丁劲犇's avatar
丁劲犇 已提交
21
		int nAutoDownload = settings.value(QString("settings/nAutoDownload_%1").arg(layer->get_name()), 0).toInt();
丁劲犇's avatar
丁劲犇 已提交
22
		int nAlpha = settings.value(QString("settings/nAlpha_%1").arg(layer->get_name()), 255).toInt();
丁劲犇's avatar
丁劲犇 已提交
23

24 25 26
		ui->lineEdit_QTV_cacheFolder->setText(strLocalCache);
		ui->lineEdit_QTV_addressUrl->setText(strServerURL);
		ui->spinBox_QTV_cacheExpireDays->setValue(nCacheExpireDays);
丁劲犇's avatar
丁劲犇 已提交
27
		ui->spinBox_QTV_Alpha->setValue(nAlpha);
28 29
		this->setWindowTitle(layer->get_name());
		//the pending tasks model
30
		m_pPendingTasksModel = new QStandardItemModel(this);
31
		ui->listView_QTV_messages->setModel(m_pPendingTasksModel);
32

33 34 35 36 37
		connect (layer, &layer_tiles::connected ,this->ui->checkBox_QTV_connect, &QCheckBox::setChecked);
		connect (layer, &layer_tiles::svrurlChanged ,this->ui->lineEdit_QTV_addressUrl, &QLineEdit::setText);
		connect (layer, &layer_tiles::cacheChanged ,this->ui->lineEdit_QTV_cacheFolder, &QLineEdit::setText);
		connect (layer, &layer_tiles::cacheExpireChanged ,this->ui->spinBox_QTV_cacheExpireDays, &QSpinBox::setValue);
		//ui->checkBox_QTV_connect->setChecked(layer->isConnected());
丁劲犇's avatar
丁劲犇 已提交
38 39 40
		if (nAutoDownload!=0)
			layer->connectToTilesServer(true);

41 42 43 44 45 46 47 48 49 50
	}
	void layer_tiles_page::reTransUI()
	{
		ui->retranslateUi(this);
	}

	layer_tiles_page::~layer_tiles_page()
	{
		delete ui;
	}
51
	void layer_tiles_page::on_toolButton_QTV_browser_clicked()
52 53 54 55 56
	{
		QSettings settings(QCoreApplication::applicationFilePath()+".ini",QSettings::IniFormat);
		QString strLocalCache = settings.value(QString("settings/LocalCache_%1").arg(m_pLayer->get_name()), QCoreApplication::applicationDirPath() +"/OSMCache").toString();
		QString strFolder = QFileDialog::getExistingDirectory(this,tr("Select the local cache"),strLocalCache,QFileDialog::ShowDirsOnly);
		if (strFolder.length())
57
			ui->lineEdit_QTV_cacheFolder->setText(strFolder);
58 59
	}

60
	void layer_tiles_page::on_pushButton_QTV_apply_clicked()
61
	{
62 63 64
		m_pLayer->setLocalCache(ui->lineEdit_QTV_cacheFolder->text());
		m_pLayer->setServerUrl(ui->lineEdit_QTV_addressUrl->text());
		m_pLayer->setCacheExpireDays(ui->spinBox_QTV_cacheExpireDays->value());
65
		m_pLayer->UpdateLayer();
丁劲犇's avatar
丁劲犇 已提交
66 67 68 69

		QSettings settings(QCoreApplication::applicationFilePath()+".ini",QSettings::IniFormat);
		settings.setValue(QString("settings/nAlpha_%1").arg(m_pLayer->get_name()), ui->spinBox_QTV_Alpha->value() );

70 71
	}

72
	void layer_tiles_page::on_checkBox_QTV_connect_clicked(bool ps)
73 74 75
	{
		m_pLayer->connectToTilesServer(ps);
	}
76 77 78
	void layer_tiles_page::slot_message(QString message)
	{
		m_pPendingTasksModel->appendRow(new QStandardItem(message));
79 80
		if (m_pPendingTasksModel->rowCount()>128)
			m_pPendingTasksModel->removeRows(0,m_pPendingTasksModel->rowCount()-128);
81
		ui->listView_QTV_messages->scrollToBottom();
82
	}
丁劲犇's avatar
丁劲犇 已提交
83 84 85 86 87 88

	quint8 layer_tiles_page::alphaValue() const
	{
		return ui->spinBox_QTV_Alpha->value() % 256;
	}

89
}