mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Start a user survey dialog
The idea is that a week after the user starts using Subsurface we ask them if they would like to submit a survey response. If you are running a development build, don't wait seven days. This patch doesn't do anything with the user's selections, doesn't submit anything to our server, etc. It's just a placeholder to tune what we should ask, etc. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
64236388e4
commit
cdd3b3d9cd
6 changed files with 320 additions and 5 deletions
|
@ -24,7 +24,7 @@
|
|||
#include <fcntl.h>
|
||||
#include "divelistview.h"
|
||||
#include "starwidget.h"
|
||||
|
||||
#include "ssrf-version.h"
|
||||
#include "dive.h"
|
||||
#include "display.h"
|
||||
#include "divelist.h"
|
||||
|
@ -47,6 +47,7 @@
|
|||
#endif
|
||||
#include "divelogimportdialog.h"
|
||||
#include "divelogexportdialog.h"
|
||||
#include "usersurvey.h"
|
||||
#ifndef NO_USERMANUAL
|
||||
#include "usermanual.h"
|
||||
#endif
|
||||
|
@ -61,7 +62,8 @@ MainWindow::MainWindow() : QMainWindow(),
|
|||
yearlyStatsModel(0),
|
||||
state(VIEWALL),
|
||||
updateManager(0),
|
||||
fakeDiveId(0)
|
||||
fakeDiveId(0),
|
||||
survey(0)
|
||||
{
|
||||
Q_ASSERT_X(m_Instance == NULL, "MainWindow", "MainWindow recreated!");
|
||||
m_Instance = this;
|
||||
|
@ -814,10 +816,31 @@ void MainWindow::readSettings()
|
|||
default_dive_computer_device = getSetting(s, "dive_computer_device");
|
||||
s.endGroup();
|
||||
loadRecentFiles(&s);
|
||||
checkSurvey(&s);
|
||||
}
|
||||
|
||||
#undef TOOLBOX_PREF_BUTTON
|
||||
|
||||
void MainWindow::checkSurvey(QSettings *s)
|
||||
{
|
||||
s->beginGroup("UserSurvey");
|
||||
if (!s->contains("FirstUse42")) {
|
||||
QVariant value = QDate().currentDate();
|
||||
s->setValue("FirstUse42", value);
|
||||
} else {
|
||||
// wait a week for production versions, but not at all for non-tagged builds
|
||||
QString ver(VERSION_STRING);
|
||||
int waitTime = ver.contains('-') ? -1 : 7;
|
||||
QDate firstUse42 = s->value("FirstUse42").toDate();
|
||||
if (firstUse42.daysTo(QDate().currentDate()) > waitTime && !s->contains("SurveyDone")) {
|
||||
if (!survey)
|
||||
survey = new UserSurvey(this);
|
||||
survey->show();
|
||||
}
|
||||
}
|
||||
s->endGroup();
|
||||
}
|
||||
|
||||
void MainWindow::writeSettings()
|
||||
{
|
||||
QSettings settings;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue