~ipt-dev/indicator-prayer-times/Realese

« back to all changes in this revision

Viewing changes to indicator-prayer-times

  • Committer: Mohamed Alaa
  • Date: 2012-05-09 22:32:38 UTC
  • Revision ID: m.alaa8@gmail.com-20120509223238-dpi5o88hoehxuux3
------------------------------------------------------------
revno: 5
committer: Mohamed Alaa <m.alaa8@gmail.com>
branch nick: playground
timestamp: Wed 2012-05-09 21:44:27 +0300
message:
  did some work:
  1- fix some bugs
  2- added fetch from internet feature
------------------------------------------------------------
revno: 4
committer: Eslam Mostafa <cseslam@gmail.com>
branch nick: ipt-dev
timestamp: Tue 2012-05-08 18:18:40 +0200
message:
  bug fixing
------------------------------------------------------------
revno: 3
committer: Eslam Mostafa <cseslam@gmail.com>
branch nick: ipt-dev
timestamp: Tue 2012-05-08 01:19:22 +0200
message:
  buttons layout
------------------------------------------------------------
revno: 2
committer: Eslam Mostafa <cseslam@gmail.com>
branch nick: ipt-dev
timestamp: Tue 2012-05-08 01:04:28 +0200
message:
  Design Update
------------------------------------------------------------
revno: 1
committer: Eslam Mostafa <cseslam@gmail.com>
branch nick: ipt-dev
timestamp: Mon 2012-05-07 23:36:00 +0200
message:
  First Release

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#! /usr/bin/env python
 
1
#!/usr/bin/env python
2
2
# -*- coding: utf-8 -*-
 
3
from gi.repository import Gtk, GObject
 
4
from gi.repository import AppIndicator3 as AI
 
5
from prayertime import *
 
6
from HijriCal import *
 
7
from configer import *
3
8
import os
4
9
import sys
5
 
import gtk
6
 
import gobject
7
10
import ConfigParser
8
 
import appindicator
 
11
#import appindicator
9
12
import datetime
10
 
import pynotify
11
 
from prayertime import *
12
 
from HijriCal import *
13
 
 
14
 
class IndicatorPrayerTimes():
 
13
#import pynotify
 
14
from gi.repository import Notify
 
15
 
 
16
 
 
17
class IndicatorPrayerTimes:
15
18
    def __init__(self):
16
19
        # Setup Indicator
17
 
        self.Indicator = appindicator.Indicator("indicator-prayer-times","indicator-prayer-times",appindicator.CATEGORY_APPLICATION_STATUS)
18
 
        self.Indicator.set_status(appindicator.STATUS_ACTIVE)
 
20
        self.Indicator = AI.Indicator.new("indicator-prayer-times","indicator-prayer-times", 
 
21
                        AI.IndicatorCategory.APPLICATION_STATUS)
 
22
        self.Indicator.set_status(AI.IndicatorStatus.ACTIVE)
19
23
        self.Indicator.set_icon(self.Icon())
 
24
        #setup Settings Window
 
25
        self.configer = Configer()
20
26
        # Setup Menu
21
 
        self.Menu = gtk.Menu()
 
27
        self.Menu = Gtk.Menu()
22
28
        
23
29
        self.Hijri()# Fills Menu with Hijri Date
24
 
        self.Menu.append(gtk.SeparatorMenuItem())
 
30
        self.Menu.append(Gtk.SeparatorMenuItem())
25
31
        
26
32
        self.Times()# Fills Menu with Prayer Times
27
 
        self.Menu.append(gtk.SeparatorMenuItem())
 
33
        self.Menu.append(Gtk.SeparatorMenuItem())
28
34
        
29
 
        self.NextPrayerItem = gtk.MenuItem('Next Prayer')# Next PrayerTime's Item
 
35
        self.NextPrayerItem = Gtk.MenuItem('Next Prayer')# Next PrayerTime's Item
30
36
        self.Menu.append(self.NextPrayerItem)
31
 
        self.Menu.append(gtk.SeparatorMenuItem())
 
37
        self.Menu.append(Gtk.SeparatorMenuItem())
32
38
 
33
39
        
34
 
        AboutItem = gtk.MenuItem('About')
 
40
        AboutItem = Gtk.MenuItem('About')
35
41
        self.Menu.append(AboutItem)
36
42
        AboutItem.connect('activate',self.AboutDialog, None)
37
43
 
38
 
        SettingsItem = gtk.MenuItem('Settings')
 
44
        SettingsItem = Gtk.MenuItem('Settings')
39
45
        self.Menu.append(SettingsItem)
40
 
        SettingsItem.connect('activate',self.Settings, None)
 
46
        #SettingsItem.connect('activate',self.Settings, None)
 
47
        SettingsItem.connect('activate', self.ShowSettings, None)
41
48
 
42
 
        ExitItem = gtk.MenuItem('Quit')
 
49
        ExitItem = Gtk.MenuItem('Quit')
43
50
        self.Menu.append(ExitItem)
44
 
        ExitItem.connect('activate',gtk.main_quit, None)
 
51
        ExitItem.connect('activate',Gtk.main_quit, None)
45
52
 
46
53
        self.Loop()# Run Application's Loop
47
54
        self.Menu.show_all()# Show All Items
48
55
        self.Indicator.set_menu(self.Menu)# Assign Menu To Indicator
49
 
        self.GobjectLoop = gobject.timeout_add_seconds(1,self.Loop)# Run Loop
 
56
        self.GobjectLoop = GObject.timeout_add_seconds(1,self.Loop)# Run Loop
50
57
 
51
58
    def Loop(self):
52
59
        global NextPrayerDT
120
127
                        self.NextPrayerItem.set_label("Previous Prayer was %s" % (PrevPrayer))
121
128
        for time in PrayerTimes:
122
129
                        if time == TenMinutes:
123
 
                                pynotify.init("Indicator Prayer Times")
124
 
                                Notif=pynotify.Notification('Get Ready','10 minutes left until the %s prayer.' %(NextPrayer), self.Icon())
 
130
                                Notify.init("Indicator Prayer Times")
 
131
                                Notif = Notify.Notification.new('Get Ready','10 minutes left until the %s prayer.' %(NextPrayer), self.Icon())
125
132
                                Notif.show()
126
133
                        if time == Time:
127
 
                                pynotify.init("Indicator Prayer Times")
128
 
                                Notif=pynotify.Notification('Prayer time for %s' % CurrentPrayer,"It's time for the %s prayer." %(CurrentPrayer), self.Icon())
 
134
                                Notify.init("Indicator Prayer Times")
 
135
                                Notif=Notify.Notification.new('Prayer time for %s' % CurrentPrayer,"It's time for the %s prayer." %(CurrentPrayer), self.Icon())
129
136
                                Notif.show()
130
137
        return True
131
138
 
157
164
    def Times(self):# Fills Menu With Prayer Times
158
165
                PT = Prayertime(self.GetSettings(2),self.GetSettings(1), self.GetSettings(3), datetime.datetime.now().year, datetime.datetime.now().month, datetime.datetime.now().day, self.GetSettings(4), self.GetSettings(5), Season.Winter)
159
166
                PT.calculate()
160
 
                self.Menu.append(gtk.MenuItem("Prayer Times for %s" % self.GetSettings(0)))
161
 
                self.Menu.append(gtk.SeparatorMenuItem())
162
 
                self.Menu.append(gtk.MenuItem("Fajr                      %s" % self.get_times(PT.fajr_time())))
163
 
                self.Menu.append(gtk.MenuItem("Dhuhr                    %s" % self.get_times(PT.zuhr_time())))
164
 
                self.Menu.append(gtk.MenuItem("Asr                       %s" % self.get_times(PT.asr_time())))
165
 
                self.Menu.append(gtk.MenuItem("Maghrib            %s" % self.get_times(PT.maghrib_time())))
166
 
                self.Menu.append(gtk.MenuItem("Isha                      %s" % self.get_times(PT.isha_time())))
 
167
                self.Menu.append(Gtk.MenuItem("Prayer Times for %s" % self.GetSettings(0)))
 
168
                self.Menu.append(Gtk.SeparatorMenuItem())
 
169
                self.Menu.append(Gtk.MenuItem("Fajr                      %s" % self.get_times(PT.fajr_time())))
 
170
                self.Menu.append(Gtk.MenuItem("Dhuhr                    %s" % self.get_times(PT.zuhr_time())))
 
171
                self.Menu.append(Gtk.MenuItem("Asr                       %s" % self.get_times(PT.asr_time())))
 
172
                self.Menu.append(Gtk.MenuItem("Maghrib            %s" % self.get_times(PT.maghrib_time())))
 
173
                self.Menu.append(Gtk.MenuItem("Isha                      %s" % self.get_times(PT.isha_time())))
167
174
    def get_times(self, prayer):# If User Sets Clock Format 12hr or 24hr Return It As He Likes!
168
175
        if self.GetSettings(6)=='12h':
169
176
                return self.timeto12(prayer)
242
249
timezone = %s''' % (city_name,calcmthd,mazhab,clockfmt,lat,lon,tz)
243
250
                config.write(Text)
244
251
                config.close()
 
252
                
 
253
    def ShowSettings(self, widget, data):
 
254
                self.configer.show_all()
 
255
                self.configer.SetLayout()
 
256
                
245
257
    def Hijri(self):# Fill Menu With Hijri Date
246
258
                wd=datetime.datetime.now().strftime("%A")
247
259
                
253
265
                
254
266
                h_date = '%i %s %i' % ( h_day+1,  h_months[h_month-1],  h_year)
255
267
                
256
 
                self.Menu.append(gtk.MenuItem(wd+" "+h_date))
 
268
                self.Menu.append(Gtk.MenuItem(wd+" "+h_date))
257
269
    def AboutDialog(self,widget,data=None):# The About Dialog
258
 
        AboutDialog = gtk.AboutDialog()
 
270
        AboutDialog = Gtk.AboutDialog()
259
271
        
260
272
        AboutDialog.set_program_name("Indicator Prayer Times")
261
273
        AboutDialog.set_website("https://launchpad.net/indicator-prayer-times")
262
274
        AboutDialog.set_website_label("Launchpad project page")
263
 
        AboutDialog.set_authors(["Mohamed Alaa <m.alaa8@gmail.com>"])
 
275
        AboutDialog.set_authors(["Mohamed Alaa <m.alaa8@gmail.com>","Eslam Mostafa <CsEslam@gmail.com>"])
264
276
        AboutDialog.set_license('''Indicator Prayer Times, A Prayer Times displayer for Indicator Applet.
265
 
Copyright © 2012  Mohamed Alaa
 
277
Copyright © 2011-2012 Mohamed Alaa
 
278
Copyright © 2012 Indicator-prayer-times Developers
266
279
 
267
280
This program is free software: you can redistribute it and/or modify
268
281
it under the terms of the GNU General Public License as published by
276
289
 
277
290
You should have received a copy of the GNU General Public License
278
291
along with this program.  If not, see <http://www.gnu.org/licenses/>.''')
279
 
        AboutDialog.set_version("0.1")
 
292
        AboutDialog.set_version("0.2")
280
293
        AboutDialog.set_comments("A Prayer Times displayer for Indicator Applet.")
281
 
        AboutDialog.set_copyright("Copyright © 2012 Mohamed Alaa")
 
294
        AboutDialog.set_copyright("Copyright © 2011-2012 Mohamed Alaa\nCopyright © 2012 Indicator-prayer-times Developers")
282
295
        AboutDialog.run()
283
296
        AboutDialog.destroy()
284
297
        
285
298
    def main(self):
286
 
        gtk.main()
 
299
        Gtk.main()
287
300
 
288
301
if __name__ == '__main__':
289
302
        ipm = IndicatorPrayerTimes()