- version 0.0.7 - specific monitor can be prefered
This commit is contained in:
parent
48454a64cc
commit
371a105f84
@ -1,7 +1,7 @@
|
|||||||
[Desktop Entry]
|
[Desktop Entry]
|
||||||
GenericName=App to make the breaks
|
GenericName=App to make the breaks
|
||||||
Name=QBreak
|
Name=QBreak
|
||||||
Version=0.0.6
|
Version=0.0.7
|
||||||
Exec=/usr/bin/qbreak
|
Exec=/usr/bin/qbreak
|
||||||
Comment=App to make periodical breaks
|
Comment=App to make periodical breaks
|
||||||
Icon=qbreak
|
Icon=qbreak
|
||||||
|
|||||||
@ -4,6 +4,6 @@
|
|||||||
// App version
|
// App version
|
||||||
#define QBREAK_VERSION_MAJOR 0
|
#define QBREAK_VERSION_MAJOR 0
|
||||||
#define QBREAK_VERSION_MINOR 0
|
#define QBREAK_VERSION_MINOR 0
|
||||||
#define QBREAK_VERSION_SUFFIX 6
|
#define QBREAK_VERSION_SUFFIX 7
|
||||||
|
|
||||||
#endif // CONFIG_H
|
#endif // CONFIG_H
|
||||||
|
|||||||
@ -183,14 +183,29 @@ void MainWindow::test_2()
|
|||||||
|
|
||||||
void MainWindow::showMe()
|
void MainWindow::showMe()
|
||||||
{
|
{
|
||||||
// Show on primary screen
|
QScreen* screen = nullptr;
|
||||||
QScreen* screen = QGuiApplication::primaryScreen();
|
if (mAppConfig.preferred_monitor == Primary_Monitor)
|
||||||
showFullScreen();
|
screen = QGuiApplication::primaryScreen();
|
||||||
|
else
|
||||||
|
{
|
||||||
|
auto screen_list = QGuiApplication::screens();
|
||||||
|
auto screen_iter = std::find_if(screen_list.begin(), screen_list.end(), [this](QScreen* s){return s->name() == mAppConfig.preferred_monitor;});
|
||||||
|
if (screen_iter != screen_list.end())
|
||||||
|
screen = *screen_iter;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (screen)
|
||||||
|
{
|
||||||
|
show();
|
||||||
if (windowHandle())
|
if (windowHandle())
|
||||||
{
|
{
|
||||||
windowHandle()->setScreen(screen);
|
windowHandle()->setScreen(screen);
|
||||||
|
setGeometry(screen->geometry());
|
||||||
|
qDebug() << "Window moved to screen " << screen->name() + " / " + screen->model() + " " + screen->manufacturer();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
showFullScreen();
|
||||||
|
}
|
||||||
|
|
||||||
void MainWindow::hideMe()
|
void MainWindow::hideMe()
|
||||||
{
|
{
|
||||||
|
|||||||
@ -9,6 +9,7 @@ const QString Key_LongBreak_Length = "LongBreak_Length";
|
|||||||
const QString Key_Window_On_Top = "Window_On_Top";
|
const QString Key_Window_On_Top = "Window_On_Top";
|
||||||
const QString Key_Verbose = "Verbose";
|
const QString Key_Verbose = "Verbose";
|
||||||
const QString Key_Autostart = "Autostart";
|
const QString Key_Autostart = "Autostart";
|
||||||
|
const QString Key_PreferredMonitor = "Preferred_Monitor";
|
||||||
|
|
||||||
void app_settings::save(const config &cfg)
|
void app_settings::save(const config &cfg)
|
||||||
{
|
{
|
||||||
@ -20,6 +21,7 @@ void app_settings::save(const config &cfg)
|
|||||||
s.setValue(Key_Window_On_Top, cfg.window_on_top);
|
s.setValue(Key_Window_On_Top, cfg.window_on_top);
|
||||||
s.setValue(Key_Verbose, cfg.verbose);
|
s.setValue(Key_Verbose, cfg.verbose);
|
||||||
s.setValue(Key_Autostart, cfg.autostart);
|
s.setValue(Key_Autostart, cfg.autostart);
|
||||||
|
s.setValue(Key_PreferredMonitor, cfg.preferred_monitor);
|
||||||
}
|
}
|
||||||
|
|
||||||
app_settings::config app_settings::load()
|
app_settings::config app_settings::load()
|
||||||
@ -33,5 +35,6 @@ app_settings::config app_settings::load()
|
|||||||
r.window_on_top = s.value(Key_Window_On_Top, Default_Autostart).toBool();
|
r.window_on_top = s.value(Key_Window_On_Top, Default_Autostart).toBool();
|
||||||
r.verbose = s.value(Key_Verbose, Default_Verbose).toBool();
|
r.verbose = s.value(Key_Verbose, Default_Verbose).toBool();
|
||||||
r.autostart = s.value(Key_Autostart, Default_Autostart).toBool();
|
r.autostart = s.value(Key_Autostart, Default_Autostart).toBool();
|
||||||
|
r.preferred_monitor = s.value(Key_PreferredMonitor, Default_Monitor).toString();
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,6 +18,9 @@ const bool Default_Verbose = false;
|
|||||||
// Default autostart
|
// Default autostart
|
||||||
const bool Default_Autostart = true;
|
const bool Default_Autostart = true;
|
||||||
|
|
||||||
|
const QString Default_Monitor = "";
|
||||||
|
const QString Primary_Monitor = "[Primary]";
|
||||||
|
|
||||||
|
|
||||||
// Used app name
|
// Used app name
|
||||||
const QString AppName = "QBreak";
|
const QString AppName = "QBreak";
|
||||||
@ -34,6 +37,7 @@ public:
|
|||||||
bool window_on_top = Default_WindowOnTop;
|
bool window_on_top = Default_WindowOnTop;
|
||||||
bool verbose = Default_Verbose;
|
bool verbose = Default_Verbose;
|
||||||
bool autostart = Default_Autostart;
|
bool autostart = Default_Autostart;
|
||||||
|
QString preferred_monitor = Default_Monitor;
|
||||||
};
|
};
|
||||||
|
|
||||||
static void save(const config& cfg);
|
static void save(const config& cfg);
|
||||||
|
|||||||
@ -5,6 +5,7 @@
|
|||||||
#include <QToolTip>
|
#include <QToolTip>
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
#include <QWindow>
|
#include <QWindow>
|
||||||
|
#include <QScreen>
|
||||||
|
|
||||||
const QString ConversionError = "Integer value expected.";
|
const QString ConversionError = "Integer value expected.";
|
||||||
|
|
||||||
@ -31,6 +32,22 @@ void SettingsDialog::init()
|
|||||||
ui->mBreakIntervalEdit->setText(QString::number(c.longbreak_interval / 60));
|
ui->mBreakIntervalEdit->setText(QString::number(c.longbreak_interval / 60));
|
||||||
ui->mBreakDurationEdit->setText(QString::number(c.longbreak_length / 60));
|
ui->mBreakDurationEdit->setText(QString::number(c.longbreak_length / 60));
|
||||||
ui->mPostponeTimeEdit->setText(QString::number(c.longbreak_postpone_interval / 60));
|
ui->mPostponeTimeEdit->setText(QString::number(c.longbreak_postpone_interval / 60));
|
||||||
|
|
||||||
|
ui->mPreferredMonitorCombobox->addItem(Primary_Monitor, Primary_Monitor);
|
||||||
|
int found_idx = 0;
|
||||||
|
auto ql = QGuiApplication::screens();
|
||||||
|
int screen_idx = 1;
|
||||||
|
for (QScreen* s: ql)
|
||||||
|
{
|
||||||
|
ui->mPreferredMonitorCombobox->addItem(s->name() +" / " + s->model() + " " + s->manufacturer(), s->name());
|
||||||
|
|
||||||
|
if (s->name() == c.preferred_monitor)
|
||||||
|
found_idx = screen_idx;
|
||||||
|
|
||||||
|
screen_idx++;
|
||||||
|
}
|
||||||
|
|
||||||
|
ui->mPreferredMonitorCombobox->setCurrentIndex(found_idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingsDialog::accept()
|
void SettingsDialog::accept()
|
||||||
@ -41,6 +58,7 @@ void SettingsDialog::accept()
|
|||||||
c.longbreak_interval = ui->mBreakIntervalEdit->text().toInt() * 60;
|
c.longbreak_interval = ui->mBreakIntervalEdit->text().toInt() * 60;
|
||||||
c.longbreak_length = ui->mBreakDurationEdit->text().toInt() * 60;
|
c.longbreak_length = ui->mBreakDurationEdit->text().toInt() * 60;
|
||||||
c.longbreak_postpone_interval = ui->mPostponeTimeEdit->text().toInt() * 60;
|
c.longbreak_postpone_interval = ui->mPostponeTimeEdit->text().toInt() * 60;
|
||||||
|
c.preferred_monitor = ui->mPreferredMonitorCombobox->currentData().toString();
|
||||||
app_settings::save(c);
|
app_settings::save(c);
|
||||||
|
|
||||||
emit accepted();
|
emit accepted();
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>746</width>
|
<width>746</width>
|
||||||
<height>167</height>
|
<height>217</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
@ -94,16 +94,26 @@
|
|||||||
<item row="3" column="1">
|
<item row="3" column="1">
|
||||||
<widget class="QLineEdit" name="mBreakDurationEdit"/>
|
<widget class="QLineEdit" name="mBreakDurationEdit"/>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="0">
|
<item row="5" column="0">
|
||||||
<widget class="QLabel" name="label_5">
|
<widget class="QLabel" name="label_5">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Postpone time (minutes)</string>
|
<string>Postpone time (minutes)</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="1">
|
<item row="5" column="1">
|
||||||
<widget class="QLineEdit" name="mPostponeTimeEdit"/>
|
<widget class="QLineEdit" name="mPostponeTimeEdit"/>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="6" column="0">
|
||||||
|
<widget class="QLabel" name="label_6">
|
||||||
|
<property name="text">
|
||||||
|
<string>Preferred monitor</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="1">
|
||||||
|
<widget class="QComboBox" name="mPreferredMonitorCombobox"/>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user