Skip to content

Commit

Permalink
Merge pull request #57 from F3l1XQu1ll/master
Browse files Browse the repository at this point in the history
Add a popover to select time by hours, minutes, seconds (#55)
  • Loading branch information
maoschanz committed Jul 22, 2020
2 parents a3588ed + f4caf87 commit 2acd8c1
Show file tree
Hide file tree
Showing 4 changed files with 277 additions and 0 deletions.
66 changes: 66 additions & 0 deletions src/time_selector_popup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
from gi.repository import Gtk
import math

UI_PATH = '/com/github/maoschanz/DynamicWallpaperEditor/ui/'

class TimeSelectorPopup(Gtk.Popover):

def __init__(self, parent, start_hours, start_minutes, start_seconds, end_hours, end_minutes, end_seconds):
self.start_hours = start_hours
self.start_minutes = start_minutes
self.start_seconds = start_seconds

self.end_hours = end_hours
self.end_minutes = end_minutes
self.end_seconds = end_seconds

self.parent = parent #Widget that might be changed …

self.build_ui()

def build_ui(self):
builder = Gtk.Builder().new_from_resource(UI_PATH + "time_selector_popup.ui")
self.sp_start_hours = builder.get_object('sp_start_hours')
self.sp_start_minutes = builder.get_object('sp_start_minutes')
self.sp_start_seconds = builder.get_object('sp_start_seconds')

self.sp_end_hours = builder.get_object('sp_end_hours')
self.sp_end_minutes = builder.get_object('sp_end_minutes')
self.sp_end_seconds = builder.get_object('sp_end_seconds')

self.sp_start_hours.connect('value-changed', self.on_start_hours_changed)
self.sp_start_minutes.connect('value-changed', self.on_start_minutes_changed)
self.sp_start_seconds.connect('value-changed', self.on_start_seconds_changed)

self.sp_end_hours.connect('value-changed', self.on_end_hours_changed)
self.sp_end_minutes.connect('value-changed', self.on_end_minutes_changed)
self.sp_end_seconds.connect('value-changed', self.on_end_seconds_changed)

self.sp_start_hours.set_value(self.start_hours)
self.sp_start_minutes.set_value(self.start_minutes)
self.sp_start_seconds.set_value(self.start_seconds)

self.sp_end_hours.set_value(self.end_hours)
self.sp_end_minutes.set_value(self.end_minutes)
self.sp_end_seconds.set_value(self.end_seconds)

def on_start_hours_changed(self, *args):
self.update()

def on_start_minutes_changed(self, *args):
self.update()

def on_start_seconds_changed(self, *args):
self.update()

def on_end_hours_changed(self, *args):
self.update()

def on_end_minutes_changed(self, *args):
self.update()

def on_end_seconds_changed(self, *args):
self.update()

def update(self):
pass #Connect time update here …
1 change: 1 addition & 0 deletions src/ui/dynamic-wallpaper-editor.gresource.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@
<file>ui/start_time.ui</file>
<file>ui/shortcuts.ui</file>
<file>ui/window.ui</file>
<file>ui/time_selector_popup.ui</file>
</gresource>
</gresources>
1 change: 1 addition & 0 deletions src/ui/picture_thumbnail.ui
Original file line number Diff line number Diff line change
Expand Up @@ -217,3 +217,4 @@

</interface>


209 changes: 209 additions & 0 deletions src/ui/time_selector_popup.ui
Original file line number Diff line number Diff line change
@@ -0,0 +1,209 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.36.0 -->
<interface>
<requires lib="gtk+" version="3.22"/>
<object class="GtkAdjustment" id="adjustment_end_hours">
<property name="upper">23</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustment_end_minutes">
<property name="upper">59</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustment_end_seconds">
<property name="upper">59</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustment_start_hours">
<property name="upper">23</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustment_start_minutes">
<property name="upper">59</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustment_start_seconds">
<property name="upper">59</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
<object class="GtkPopover" id="time_select_popup">
<property name="can_focus">False</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Start Time</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkSpinButton" id="sp_start_hours">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="input_purpose">digits</property>
<property name="orientation">vertical</property>
<property name="adjustment">adjustment_start_hours</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="sp_start_minutes">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="input_purpose">digits</property>
<property name="orientation">vertical</property>
<property name="adjustment">adjustment_start_minutes</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="sp_start_seconds">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="input_purpose">digits</property>
<property name="orientation">vertical</property>
<property name="adjustment">adjustment_start_seconds</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">End time</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkSpinButton" id="sp_end_hours">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="input_purpose">digits</property>
<property name="orientation">vertical</property>
<property name="adjustment">adjustment_end_hours</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="sp_end_minutes">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="input_purpose">digits</property>
<property name="orientation">vertical</property>
<property name="adjustment">adjustment_end_minutes</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="sp_end_seconds">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="input_purpose">digits</property>
<property name="orientation">vertical</property>
<property name="adjustment">adjustment_end_seconds</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
</object>
</interface>

0 comments on commit 2acd8c1

Please sign in to comment.