Skip to content

Commit f3c167a

Browse files
authored
Merge pull request #334 from ales-erjavec/application-urls
[ENH] Add 'Donate' application url role
2 parents 74729a5 + 1bc722e commit f3c167a

File tree

5 files changed

+94
-1
lines changed

5 files changed

+94
-1
lines changed

i18n/si/msgs.jaml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,13 @@ config.py:
1414
class `Config`:
1515
def `core_packages`:
1616
orange-canvas-core >= 0.1a, < 0.2a: false
17+
FAQ: Pogosta vprašanja
1718
Bug Report: Poročila o napakah
1819
Quick Start: Hiter začetek
1920
Documentation: Uporabniška navodila
2021
Screencasts: Zaslonski posnetki
2122
Feedback: Povratne informacije
23+
Donate: Doniraj
2224
class `Default`:
2325
biolab.si: false
2426
Orange Canvas Core: false
@@ -98,6 +100,8 @@ config.py:
98100
HTTP proxy.: false
99101
network/https-proxy: false
100102
HTTPS proxy.: false
103+
network/use-certs: false
104+
Use system certificates.: Uporabi sistemske certifikate.
101105
def `log_dir`:
102106
darwin: false
103107
~/Library/Logs: false
@@ -465,6 +469,18 @@ application/canvasmain.py:
465469
examples-action: false
466470
Browse example workflows.: Prebrskaj primere delotokov
467471
Examples.svg: false
472+
Frequent Questions...: Pogosta vprašanja
473+
frequent-questions: false
474+
FAQ: Pogosta vprašanja
475+
Submit Feedback...: Pošlji povratno informacijo
476+
submit-feedback-action: false
477+
Feedback: Povratna informacija
478+
Submit a Bug Report...: Pošlji poročilo o napaki
479+
submit-bug-report-action: false
480+
Bug Report: Poročilo o napaki
481+
Donate...: Doniraj
482+
donate-action: false
483+
Donate: Doniraj
468484
About: O programu
469485
about-action: false
470486
Show about dialog.: Pokaži opis programa
@@ -705,6 +721,7 @@ application/canvasmain.py:
705721
Welcome to {}: Dobrodošli v programu {}
706722
Welcome: Dobrodošli
707723
Feedback: false
724+
Donate: Doniraj
708725
New: Nov
709726
Open a new workflow.: Odpri nov delotok
710727
New.svg: false
@@ -790,6 +807,8 @@ application/canvasmain.py:
790807
show-channel-names: false
791808
open-anchors-on-hover: false
792809
enable-node-animations: false
810+
network: false
811+
use-certs: false
793812
def `index`:
794813
key: false
795814
predicate: false
@@ -1054,6 +1073,8 @@ application/settings.py:
10541073
HTTP proxy:: true
10551074
network/https-proxy: false
10561075
HTTPS proxy:: true
1076+
network/use-certs: false
1077+
Use system certificates:: Uporabi sistemske certifikate.
10571078
def `reset`:
10581079
Error reseting %r: false
10591080
def `exec_`:
@@ -1119,12 +1140,16 @@ WelcomeActionButton:focus {
11191140
def `__init__`:
11201141
showAtStartup: false
11211142
feedbackUrl: false
1143+
donateUrl: false
11221144
def `setupUi`:
11231145
bottom-bar: false
11241146
Show at startup: Pokaži ob zagonu
11251147
def `setFeedbackUrl`:
11261148
Help us improve!: Pomagaj, da bomo še boljši
11271149
<a href="{url}">{text}</a>: false
1150+
def `setDonateUrl`:
1151+
Donate: Doniraj
1152+
<a href="{url}">{text}</a>: false
11281153
def `addRow`:
11291154
light-orange: false
11301155
def `insertRow`:

orangecanvas/application/canvasmain.py

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -499,6 +499,30 @@ def config_url_action(action, role):
499499
icon=load_styled_svg_icon("Examples.svg")
500500
)
501501

502+
self.frequent_questions_action = QAction(
503+
self.tr("Frequent Questions..."), self,
504+
objectName="frequent-questions"
505+
)
506+
config_url_action(self.frequent_questions_action, "FAQ")
507+
508+
self.submit_feedback_action = QAction(
509+
self.tr("Submit Feedback..."), self,
510+
objectName="submit-feedback-action",
511+
)
512+
config_url_action(self.submit_feedback_action, "Feedback")
513+
514+
self.submit_bug_report_action = QAction(
515+
self.tr("Submit a Bug Report..."), self,
516+
objectName="submit-bug-report-action",
517+
)
518+
config_url_action(self.submit_bug_report_action, "Bug Report")
519+
520+
self.donate_action = QAction(
521+
self.tr("Donate..."), self,
522+
objectName="donate-action",
523+
)
524+
config_url_action(self.donate_action, "Donate")
525+
502526
self.about_action = QAction(
503527
self.tr("About"), self,
504528
objectName="about-action",
@@ -762,7 +786,13 @@ def setup_menu(self):
762786
self.examples_action,
763787
self.documentation_action
764788
])
765-
789+
self.help_menu.addSeparator()
790+
self.help_menu.addActions([
791+
self.frequent_questions_action,
792+
self.submit_feedback_action,
793+
self.submit_bug_report_action,
794+
self.donate_action,
795+
])
766796
menu_bar.addMenu(self.help_menu)
767797

768798
self.setMenuBar(menu_bar)
@@ -1979,6 +2009,10 @@ def welcome_dialog(self):
19792009
if feedback:
19802010
dialog.setFeedbackUrl(feedback)
19812011

2012+
donate = config.default.APPLICATION_URLS.get("Donate", "")
2013+
if donate:
2014+
dialog.setDonateUrl(donate)
2015+
19822016
def new_scheme():
19832017
if not self.is_transient():
19842018
self.new_workflow_window()

orangecanvas/application/tests/test_welcomedialog.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,6 @@ def p(a):
3838
self.qWait()
3939
self.assertIs(action[0], d.triggeredAction())
4040
self.assertIs(action[0], action1)
41+
42+
d.setDonateUrl("https://example.com/donate")
43+
d.setFeedbackUrl("https://example.com/feedback")

orangecanvas/application/welcomedialog.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,17 +118,21 @@ class WelcomeDialog(QDialog):
118118
def __init__(self, *args, **kwargs):
119119
showAtStartup = kwargs.pop("showAtStartup", True)
120120
feedbackUrl = kwargs.pop("feedbackUrl", "")
121+
donateUrl = kwargs.pop("donateUrl", "")
121122
super().__init__(*args, **kwargs)
122123

123124
self.__triggeredAction = None # type: Optional[QAction]
124125
self.__showAtStartupCheck = None
125126
self.__mainLayout = None
126127
self.__feedbackUrl = None
127128
self.__feedbackLabel = None
129+
self.__donateUrl = None
130+
self.__donateLabel = None
128131

129132
self.setupUi()
130133

131134
self.setFeedbackUrl(feedbackUrl)
135+
self.setDonateUrl(donateUrl)
132136
self.setShowAtStartup(showAtStartup)
133137

134138
def setupUi(self):
@@ -159,13 +163,22 @@ def setupUi(self):
159163
openExternalLinks=True,
160164
visible=False,
161165
)
166+
self.__donateLabel = QLabel(
167+
textInteractionFlags=Qt.TextBrowserInteraction,
168+
openExternalLinks=True,
169+
visible=False,
170+
)
162171

163172
bottom_bar_layout.addWidget(
164173
self.__showAtStartupCheck, alignment=Qt.AlignVCenter | Qt.AlignLeft
165174
)
175+
bottom_bar_layout.addStretch(10)
166176
bottom_bar_layout.addWidget(
167177
self.__feedbackLabel, alignment=Qt.AlignVCenter | Qt.AlignRight
168178
)
179+
bottom_bar_layout.addWidget(
180+
self.__donateLabel, alignment=Qt.AlignVCenter | Qt.AlignRight
181+
)
169182
self.layout().addWidget(bottom_bar, alignment=Qt.AlignBottom,
170183
stretch=1)
171184

@@ -202,6 +215,20 @@ def setFeedbackUrl(self, url):
202215
self.__feedbackLabel.setText("")
203216
self.__feedbackLabel.setVisible(bool(url))
204217

218+
def setDonateUrl(self, url: str) -> None:
219+
"""
220+
Set an 'Donate' url. When set a link is displayed in the bottom row.
221+
"""
222+
self.__donateUrl = url
223+
if url:
224+
text = self.tr("Donate")
225+
self.__donateLabel.setText(
226+
'<a href="{url}">{text}</a>'.format(url=url, text=escape(text))
227+
)
228+
else:
229+
self.__donateLabel.setText("")
230+
self.__donateLabel.setVisible(bool(url))
231+
205232
def addRow(self, actions, background="light-orange"):
206233
"""Add a row with `actions`.
207234
"""

orangecanvas/config.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,8 @@ def workflow_constructor(self, *args, **kwargs):
194194
#: Standard application urls. If defined to a valid url appropriate actions
195195
#: are defined in various contexts
196196
APPLICATION_URLS = {
197+
#: FAQ
198+
"FAQ": None,
197199
#: Submit a bug report action in the Help menu
198200
"Bug Report": None,
199201
#: A url quick tour/getting started url
@@ -204,6 +206,8 @@ def workflow_constructor(self, *args, **kwargs):
204206
"Screencasts": None,
205207
#: Used for 'Submit Feedback' action in the help menu
206208
"Feedback": None,
209+
#: A Donate action in the help menu
210+
"Donate": None,
207211
} # type: Dict[str, Optional[str]]
208212

209213

0 commit comments

Comments
 (0)