23 #include <QFileDialog>
24 #include <QMessageBox>
25 #include <QStandardPaths>
28 #include <QAndroidJniObject>
29 #include <QAndroidJniEnvironment>
34 #include "../core/system/log.h"
35 #include "../core/config.h"
41 mMainWindow(mainwindow) {
54 if (d.exec() == QDialog::Accepted) {
65 msgBox.setIcon(QMessageBox::Question);
66 msgBox.setText(MainWindow::tr(
"The document has been modified."));
67 msgBox.setInformativeText(MainWindow::tr(
"Do you want to save your changes?"));
68 msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel);
69 switch (msgBox.exec()) {
70 case QMessageBox::Yes:
80 #if CONFIG_USE_SIMPLE_FILE_DIALOG
89 d.setAcceptMode(QFileDialog::AcceptSave);
90 d.setFileMode(QFileDialog::AnyFile);
92 else if (fileType &
piano::FT_CSV) {d.setDefaultSuffix(
"csv");}
94 if (d.exec() == QDialog::Accepted) {
96 const QString file = d.selectedFiles().first();
97 return file.toStdString();
105 #if CONFIG_USE_SIMPLE_FILE_DIALOG
112 d.setAcceptMode(QFileDialog::AcceptOpen);
113 d.setFileMode(QFileDialog::AnyFile);
115 if (d.exec() == QDialog::Accepted) {
117 return d.selectedFiles().first().toStdString();
119 return std::string();
129 QAndroidJniObject instance = QAndroidJniObject::callStaticObjectMethod(
"org/uniwue/tp3/TunerApplication",
"getInstance",
"()Lorg/uniwue/tp3/TunerApplication;");
130 QAndroidJniObject jTitle = QAndroidJniObject::fromString(MainWindow::tr(
"Share tuning data"));
131 QAndroidJniObject jPath = QAndroidJniObject::fromString(QString::fromStdString(
getCurrentFilePath()));
133 instance.callMethod<
void>(
"shareFile",
"(Ljava/lang/String;Ljava/lang/String;)V", jTitle.object<jstring>(), jPath.object<jstring>());
135 QAndroidJniEnvironment env;
136 if (env->ExceptionCheck()) {
137 env->ExceptionDescribe();
138 env->ExceptionClear();
141 LogI(
"Sharing for this platform is not supported yet.");
147 piano.
setName(MainWindow::tr(
"New piano").toStdString());
149 piano.
setManufactureYear(QString(
"%1").arg(QDate::currentDate().year()).toStdString());
160 QMessageBox::critical(
mMainWindow, MainWindow::tr(
"Error"), MainWindow::tr(
"File could not be opened."));
164 QMessageBox::critical(
mMainWindow, MainWindow::tr(
"Error"), MainWindow::tr(
"File could not be saved."));
175 EptAssert(QDir(path).exists(),
"Default path should exist.");
181 files += MainWindow::tr(
"Entropy piano tuner") +
" (*.ept);;";
184 files += MainWindow::tr(
"Comma-separated values") +
" (*.csv);;";
187 files += MainWindow::tr(
"All files") +
" (*)";
void setConcertPitch(double pitch)
PianoManager * getPianoManager()
ProjectManagerForQt(MainWindow *mainwindow)
Default constructor.
static const QString KEY_CURRENT_FILE_DIALOG_PATH
static const double DEFAULT_CONCERT_PITCH
default concert pitch of A
void setCurrentPath(QString path)
Function to set the current path for the file dialog.
virtual void fillNew(Piano &piano) overridefinal
Fills the given Piano with default values and texts.
void setName(const std::string &name)
void changeKeyboardConfiguration(int numberOfKeys, int keyNumberOfA)
Change keyboard configuration.
QString getCurrentPath() const
Function to get the current path for the file dialog.
MainWindow * mMainWindow
The main window.
static const int DEFAULT_KEY_NUMBER_OF_A
virtual Results share() overridefinal
Handle the share button.
virtual void showSaveError() overridefinal
Shows an error message if an error during saving occured.
virtual void showOpenError() overridefinal
Shows an error message if an error during open occured.
Dialog to edit the piano data sheet stored in a Piano.
Results
Enumeration of the possible outcomes of a typical mouse button.
void setSerialNumber(const std::string &number)
virtual ~ProjectManagerForQt()
Empty virtual destructor.
virtual Results askForSaving() overridefinal
Displays a standard message box if the user wants to save the changes made.
static QString getSaveFile(QDir dir)
const Keyboard & getKeyboard() const
void setTuningTimeToActualTime()
This function resets the tuning time to the actual time. This is used as default value.
void setManufactureYear(const std::string &year)
virtual FileDialogResult getOpenPath(int fileType) overridefinal
Opens a QFileDialog to get a path to open a file.
static const int DEFAULT_NUMBER_OF_KEYS
static QString getOpenFile(QDir dir)
QString getFileFilters(int fileTypes, bool addAll) const
void setTuningLocation(const std::string &loc)
void setManufactureLocation(const std::string &loc)
virtual Results editFile() overridefinal
Opens the EditPianoSheetDialog to edit the piano data sheet.
const std::string & getCurrentFilePath() const
virtual FileDialogResult getSavePath(int fileType) overridefinal
Opens a QFileDialog to get a path to save the file to.
Project manager adapter class.
void applyData(Piano *piano) const
Applys the current values in the dialog to the given piano.