1
0
mirror of https://github.com/arsenetar/dupeguru.git synced 2026-01-22 06:37:17 +00:00

Added extra Fairware reminder. We'll see if that boosts dupeGuru contributions.

This commit is contained in:
Virgil Dupras
2011-03-05 13:03:23 +01:00
parent e410f88926
commit 6e60ea6984
22 changed files with 2348 additions and 3 deletions

View File

@@ -26,6 +26,7 @@ from qtlib.recent import Recent
from qtlib.reg import Registration
from . import platform
from .extra_fairware_reminder import ExtraFairwareReminder
from .result_window import ResultWindow
from .directories_dialog import DirectoriesDialog
from .problem_dialog import ProblemDialog
@@ -163,6 +164,10 @@ class DupeGuru(DupeGuruBase, QObject):
def _set_default(self, key, value):
self.prefs.set_value(key, value)
def _show_extra_fairware_reminder(self):
dialog = ExtraFairwareReminder(self.directories_dialog, self)
dialog.exec_()
def add_selected_to_ignore_list(self):
dupes = self.without_ref(self.selected_dupes)
if not dupes:

View File

@@ -0,0 +1,90 @@
# Created By: Virgil Dupras
# Created On: 2011-03-04
# Copyright 2011 Hardcoded Software (http://www.hardcoded.net)
#
# This software is licensed under the "BSD" License as described in the "LICENSE" file,
# which should be included with this package. The terms are also available at
# http://www.hardcoded.net/licenses/bsd_license
import sys
from PyQt4.QtCore import Qt, QUrl, QTimer
from PyQt4.QtGui import (QDialog, QDesktopServices, QApplication, QVBoxLayout, QHBoxLayout, QLabel,
QFont, QSpacerItem, QSizePolicy, QPushButton)
from hscommon.trans import tr as trbase, trmsg as trmsgbase
tr = lambda s: trbase(s, "ExtraFairwareReminder")
trmsg = lambda s: trmsgbase(s, "ExtraFairwareReminder")
from core.gui.extra_fairware_reminder import ExtraFairwareReminder as ExtraFairwareReminderModel
class ExtraFairwareReminder(QDialog):
def __init__(self, parent, app):
flags = Qt.CustomizeWindowHint | Qt.WindowTitleHint
QDialog.__init__(self, parent, flags)
self.setModal(True)
self.app = app
self.model = ExtraFairwareReminderModel(self, app)
self._setupUi()
self.continueButton.setEnabled(False)
self.continueButton.clicked.connect(self.accept)
self.contributeButton.clicked.connect(self.contributeClicked)
self.model.start()
def _setupUi(self):
self.setWindowTitle(tr("Sorry, I must insist"))
self.resize(380, 350)
self.verticalLayout = QVBoxLayout(self)
self.descLabel = QLabel(self)
self.descLabel.setText(trmsg("ExtraFairwarePromptMsg"))
self.descLabel.setWordWrap(True)
self.verticalLayout.addWidget(self.descLabel)
self.reasonLabel = QLabel(self)
self.reasonLabel.setText(trmsg("ExtraFairwareReasonMsg"))
self.reasonLabel.setWordWrap(True)
font = QFont()
font.setWeight(75)
font.setBold(True)
self.reasonLabel.setFont(font)
self.verticalLayout.addWidget(self.reasonLabel)
self.horizontalLayout = QHBoxLayout()
spacerItem = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem)
self.contributeButton = QPushButton(self)
self.contributeButton.setText(tr("Contribute"))
self.horizontalLayout.addWidget(self.contributeButton)
self.continueButton = QPushButton(self)
self.continueButton.setText(tr("Continue"))
self.horizontalLayout.addWidget(self.continueButton)
self.verticalLayout.addLayout(self.horizontalLayout)
#--- model --> view
def start_timer(self):
self._timer = QTimer()
self._timer.setInterval(200)
self._timer.timeout.connect(self.model.update_button)
self._timer.start()
def stop_timer(self):
self._timer.stop()
del self._timer
def enable_button(self):
self.continueButton.setEnabled(True)
def set_button_text(self, text):
self.continueButton.setText(text)
#--- Events
def contributeClicked(self):
url = QUrl('http://open.hardcoded.net/contribute/')
QDesktopServices.openUrl(url)
if __name__ == '__main__':
app = QApplication([])
class FakeReg:
app = app
dialog = ExtraFairwareReminder(None, FakeReg())
dialog.show()
sys.exit(app.exec_())

View File

@@ -100,4 +100,24 @@
<translation>Picture cache cleared.</translation>
</message>
</context>
<context>
<name>ExtraFairwareReminder</name>
<message>
<source>ExtraFairwarePromptMsg</source>
<translation>It seems that you found a lot of duplicates. Nice! I must insist, however, that contributions are expected when there are unpaid hours on the project.
You might think &quot;but I'm only going to use this once, I don't have to contribute&quot;. The problem is that most people use dupeGuru only once in a while. If everyone thinks like that, dupeGuru development cannot be funded. It's because of this tendency inherent to dupeGuru's nature that I have to insist here.
If you can't afford to contribute, you can ignore this reminder or send me an e-mail at hsoft@hardcoded.net so I can give you a key to remove this reminder.</translation>
</message>
<message>
<source>ExtraFairwareReasonMsg</source>
<translation>This reminder showed up because:
1. You are processing more than 100 duplicates
2. You have not yet contributed to dupeGuru
3. There are unpaid hours in the project</translation>
</message>
</context>
</TS>

View File

@@ -74,6 +74,15 @@
<translation>Prioritization des groupes</translation>
</message>
<message>
<source>Continue</source>
<translation>Continuer</translation>
</message>
<message>
<source>Continue ({})</source>
<translation>Continuer ({})</translation>
</message>
<message>
<source>Analyzed %d/%d pictures</source>
<translation>Analyzé %d/%d images</translation>
@@ -629,6 +638,34 @@
</message>
</context>
<!-- ******** ExtraFairwareReminder ******** -->
<context>
<name>ExtraFairwareReminder</name>
<message>
<source>Sorry, I must insist</source>
<translation>Désolé, je dois insister</translation>
</message>
<message>
<source>Contribute</source>
<translation>Contribuer</translation>
</message>
<message>
<source>ExtraFairwarePromptMsg</source>
<translation>Il semble que vous ayez trouvé beaucoup de doublons. Super! Je dois par contre insister que des contributions sont attendues lorsqu'il y'a des heures non-payées au projet.
Vous pensez peut-être &quot;je n'utiliserai ce programme qu'une fois, pas besoin de contribuer&quot;. Le problème c'est que la plupart des utilisateurs de dupeGuru ne l'utilisent qu'une fois. Si tous suivent ce raisonnement, le développement de dupeGuru ne peut pas continuer. C'est à cause de cette tendance inhérente à la nature de dupeGuru que je me vois contraint d'insister ici.
Si vous n'avez pas les moyens de contribuer, ignorez ce message ou envoyez moi un message à hsoft@hardcoded.net pour que je vous envoie une clé d'enregistrement.</translation>
</message>
<message>
<source>ExtraFairwareReasonMsg</source>
<translation>Ce rappel apparaît parce que:
1. Plus de 100 doublons sont traités
2. Vous n'avez pas encore contribué à dupeGuru
3. Il y a des heures non-payées au projet</translation>
</message>
</context>
<!-- ******** Message ******** -->
<context>
<name>message</name>