[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdeedu/marble/src
From: Dennis Nienhüser <earthwings () gentoo ! org>
Date: 2010-05-01 7:52:28
Message-ID: 20100501075228.A90ACAC8AB () svn ! kde ! org
[Download RAW message or body]
SVN commit 1121412 by nienhueser:
Make the download region feature available in the Qt application as well.
M +41 -7 QtMainWindow.cpp
M +2 -0 QtMainWindow.h
--- trunk/KDE/kdeedu/marble/src/QtMainWindow.cpp #1121411:1121412
@@ -39,11 +39,13 @@
#include <QtNetwork/QNetworkProxy>
-#include <MarbleDirs.h>
-#include "lib/MarbleAboutDialog.h"
-#include "lib/QtMarbleConfigDialog.h"
-#include "lib/SunControlWidget.h"
-#include "lib/MarbleLocale.h"
+#include "MarbleDirs.h"
+#include "MarbleAboutDialog.h"
+#include "QtMarbleConfigDialog.h"
+#include "SunControlWidget.h"
+#include "MarbleLocale.h"
+#include "DownloadRegionDialog.h"
+#include "ViewParams.h"
#include "AbstractDataPlugin.h"
#include "AbstractFloatItem.h"
#include "MarbleMap.h"
@@ -58,7 +60,8 @@
using namespace Marble;
-MainWindow::MainWindow(const QString& marbleDataPath, QWidget *parent) : \
QMainWindow(parent), m_sunControlDialog(0) +MainWindow::MainWindow(const QString& \
marbleDataPath, QWidget *parent) : + QMainWindow(parent), \
m_sunControlDialog(0), m_downloadRegionAction( 0 ) {
MarbleGlobal::getInstance()->setProfiles( MarbleGlobal::detectProfiles() );
@@ -118,6 +121,11 @@
m_exportMapAct->setStatusTip(tr("Save a screenshot of the map"));
connect(m_exportMapAct, SIGNAL(triggered()), this, \
SLOT(exportMapScreenShot()));
+ // Action: Download Region
+ m_downloadRegionAction = new QAction( tr( "Download Region..." ), this );
+ m_downloadRegionAction->setStatusTip( tr( "Download a map region in different \
zoom levels for offline usage" ) ); + connect( m_downloadRegionAction, SIGNAL( \
triggered() ), SLOT( showDownloadRegionDialog() ) ); +
m_printAct = new QAction( QIcon(":/icons/document-print.png"), tr("&Print..."), \
this); m_printAct->setShortcut(tr("Ctrl+P"));
m_printAct->setStatusTip(tr("Print a screenshot of the map"));
@@ -218,7 +226,9 @@
if( MarbleGlobal::getInstance()->profiles() & MarbleGlobal::SmallScreen ) {
menuBar()->addAction(m_workOfflineAct);
menuBar()->addAction(m_sideBarAct);
- menuBar()->addAction(m_fullScreenAct);
+ /** @todo: Full screen cannot be left on Maemo currently (shortcuts not \
working) */ + //menuBar()->addAction( m_fullScreenAct );
+ menuBar()->addAction( m_downloadRegionAction );
menuBar()->addAction(m_aboutMarbleAct);
return;
}
@@ -226,6 +236,7 @@
m_fileMenu = menuBar()->addMenu(tr("&File"));
m_fileMenu->addAction(m_openAct);
m_fileMenu->addAction(m_downloadAct);
+ m_fileMenu->addAction( m_downloadRegionAction );
m_fileMenu->addAction(m_exportMapAct);
m_fileMenu->addSeparator();
m_fileMenu->addAction(m_printAct);
@@ -860,4 +871,27 @@
m_controlView->marbleWidget()->updateChangedMap();
}
+void MainWindow::showDownloadRegionDialog()
+{
+ ViewportParams *const viewport = \
m_controlView->marbleWidget()->map()->viewParams()->viewport(); + MarbleModel \
*const model = m_controlView->marbleWidget()->map()->model(); + \
QPointer<DownloadRegionDialog> dialog = new DownloadRegionDialog( viewport, + \
model->textureMapper() ); + // FIXME: get allowed range from current map theme
+ dialog->setAllowedTileLevelRange( 0, 18 );
+ QString const mapThemeId = m_controlView->marbleWidget()->mapThemeId();
+ QString const sourceDir = mapThemeId.left( mapThemeId.lastIndexOf( '/' ));
+ mDebug() << "showDownloadRegionDialog mapThemeId:" << mapThemeId << sourceDir;
+
+ if ( dialog->exec() == QDialog::Accepted ) {
+ // FIXME: use lazy evaluation to not generate up to 100k tiles in one go
+ // this can take considerable time even on very fast systems
+ // in contrast generating the TileIds on the fly when they are needed
+ // does not seem to affect download speed.
+ TileCoordsPyramid const pyramid = dialog->region();
+ model->downloadRegion( sourceDir, pyramid );
+ }
+ delete dialog;
+}
+
#include "QtMainWindow.moc"
--- trunk/KDE/kdeedu/marble/src/QtMainWindow.h #1121411:1121412
@@ -66,6 +66,7 @@
void openFile();
void openMapSite();
void exportMapScreenShot();
+ void showDownloadRegionDialog();
void printMapScreenShot();
void printPixmap( QPrinter * printer, const QPixmap& pixmap );
void printPreview();
@@ -117,6 +118,7 @@
// File Menu
QAction *m_exportMapAct;
QAction *m_downloadAct;
+ QAction *m_downloadRegionAction;
QAction *m_printPreviewAct;
QAction *m_printAct;
QAction *m_workOfflineAct;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic