~dpm/qreator/snap

« back to all changes in this revision

Viewing changes to qreator/qrcodes/QRCodeURLGtk.py

  • Committer: David Planella
  • Date: 2012-05-30 08:33:06 UTC
  • Revision ID: david.planella@ubuntu.com-20120530083306-2naqmakzg56jh5mx
Decoupled QR code types from the QR window and from a particular GUI toolkit (right now only GTK is supported)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
 
2
### BEGIN LICENSE
 
3
# Copyright (C) 2012 David Planella <david.planella@ubuntu.com>
 
4
# This program is free software: you can redistribute it and/or modify it
 
5
# under the terms of the GNU General Public License version 3, as published
 
6
# by the Free Software Foundation.
 
7
#
 
8
# This program is distributed in the hope that it will be useful, but
 
9
# WITHOUT ANY WARRANTY; without even the implied warranties of
 
10
# MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
 
11
# PURPOSE.  See the GNU General Public License for more details.
 
12
#
 
13
# You should have received a copy of the GNU General Public License along
 
14
# with this program.  If not, see <http://www.gnu.org/licenses/>.
 
15
### END LICENSE
 
16
 
 
17
from gi.repository import Gtk
 
18
from qreator_lib.helpers import get_data_file
 
19
from qreator_lib.i18n import _
 
20
 
 
21
 
 
22
class QRCodeURLGtk(object):
 
23
    def __init__(self, qr_code_update_func):
 
24
        self.qr_code_update_func = qr_code_update_func
 
25
        builder = Gtk.Builder()
 
26
 
 
27
        builder.add_from_file(
 
28
            get_data_file('ui', '%s.ui' % ('QrCodeURL',)))
 
29
        self.grid = builder.get_object('qr_code_url')
 
30
        
 
31
        self.entry = builder.get_object('entryURL')
 
32
        self.combobox = builder.get_object('comboboxtextProtocol')
 
33
 
 
34
        # Initialize placeholder text (we need to do that because due to
 
35
        # a Glade bug they are otherwise not marked as translatable)
 
36
        self.entry.set_placeholder_text(_('[URL]'))
 
37
        self.combobox.set_active(0)
 
38
        
 
39
        self.entry.connect("changed", self.on_entryURL_changed)
 
40
        self.combobox.connect("changed", self.on_comboboxtextProtocol_changed)
 
41
 
 
42
    def on_activated(self):
 
43
        pass
 
44
 
 
45
    def update_url_qr_code(self, protocol=None, www=None):
 
46
        if not protocol:
 
47
            protocol = self.combobox.get_active_text()
 
48
        if not www:
 
49
            www = self.entry.get_text()
 
50
 
 
51
        if not protocol or www == '':
 
52
            return
 
53
 
 
54
        self.qr_code_update_func(protocol + www)
 
55
 
 
56
    #def on_entryURL_icon_press(self, widget, icon, mouse_button):
 
57
    #    self._clear_text_entry(widget, icon)
 
58
 
 
59
    def on_entryURL_changed(self, widget, data=None):
 
60
        #self._check_style(widget)
 
61
        self.update_url_qr_code(www=widget.get_text())
 
62
 
 
63
    def on_comboboxtextProtocol_changed(self, widget, data=None):
 
64
        self.update_url_qr_code(protocol=widget.get_active_text())