/* -*-c++-*- */
/* osgEarth - Dynamic map generation toolkit for OpenSceneGraph
* Copyright 2008-2013 Pelican Mapping
* http://osgearth.org
*
* osgEarth is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program.  If not, see <http://www.gnu.org/licenses/>
*/

#ifndef TILER_TOOL_EXPORTDIALOG
#define TILER_TOOL_EXPORTDIALOG 1

#include "ui_ExportDialog.h"

namespace PackageQt
{
  class ExportDialog : public QDialog
  {
	  Q_OBJECT

	  public:
      ExportDialog(const std::string& dir="", const std::string& boundsString="");

      std::string getExportPath() const { return _ui.exportPathEdit->text().toUtf8().data(); }

      bool exportEarthFile() const { return _ui.earthFileCheckBox->isChecked(); }
      std::string getEarthFilePath() const { return _ui.earthFilePathEdit->text().toUtf8().data(); }

      bool maxLevelEnabled() const { return _ui.maxLevelCheckBox->isChecked(); }
      int getMaxLevel() const { return _ui.maxLevelCheckBox->isChecked() ? _ui.maxLevelSpinBox->value() : ~0; }

      //bool overrideExtension() const { return _ui.extensionCheckBox->isChecked(); }
      //std::string getExtension() const { return _ui.extensionComboBox->currentText().toUtf8().data(); }

      bool overwriteExisting() const { return _ui.overwriteCheckBox->isChecked(); }

      bool keepEmpties() const { return _ui.keepEmptiesCheckBox->isChecked(); }

      bool useBounds() const { return _ui.boundsCheckBox->isChecked(); }

	  private slots:
		  void showExportBrowse();
      void updateEarthFilePathEdit();
      void updateMaxLevelSpinBox();
      //void updateExtensionComboBox();
      void validateAndAccept();

	  private:		
		  Ui::ExportDialog _ui;
      
		  void initUi(const std::string& dir, const std::string& boundsString);
  };
}



#endif //TILER_TOOL_EXPORTDIALOG