Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Min needs bugs text #1938

Closed
wants to merge 32 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
cd596da
merging upstream master
Mar 6, 2015
eb2da42
Fixing pylint
Mar 6, 2015
a4e92d2
Made behaviour between jenkins and make identical
Mar 6, 2015
7a86c50
Fixing all pylint to establish a clean baseline
Mar 9, 2015
e7b8206
Fixing all pylint to establish a clean baseline - continued
Mar 9, 2015
b089730
Fixing all pylint to establish a clean baseline - continued 1
Mar 9, 2015
0ab19f3
Fixing all pylint to establish a clean baseline - continued 2
Mar 9, 2015
63e2e95
Fixing all pylint to establish a clean baseline - continued 2
Mar 9, 2015
0bde3a7
add removed licence file
Mar 10, 2015
fe0f0da
updating missing files
Mar 10, 2015
7ced309
suppress where pylint errors make no sense
Mar 10, 2015
14940b7
Applied item per line convention on changes
Mar 11, 2015
8893bae
Merge pull request #1748 from ismailsunni/fix_1745
ismailsunni Mar 12, 2015
ade0c9b
Update tolerance to make it pass.
ismailsunni Mar 12, 2015
b0bd693
Merge pull request #1750 from ismailsunni/fix_unittest
ismailsunni Mar 12, 2015
33579a6
Merge branch 'master' of github.com:AIFDR/inasafe
Mar 18, 2015
12ca0b7
Fixed unexpected indent
Mar 18, 2015
d98f5ee
Fixing broken tests.
Mar 19, 2015
1d149a5
Adding missing shx
Mar 19, 2015
d781edc
Merge pull request #1737 from cchristelis/master
Mar 19, 2015
1d8d9c5
Merge changes from develop for 3.1
timlinux May 3, 2015
8269f63
Merge pull request #1911 from timlinux/master
timlinux May 3, 2015
d0b7d2f
Merge remote-tracking branch 'upstream/develop'
timlinux May 3, 2015
eb77091
Merge pull request #1912 from timlinux/master
timlinux May 3, 2015
fe126a6
remove -dev from package metadata
timlinux May 12, 2015
c8e9ac5
In progress fix for #1926 BUG: Minimum Needs Manager Window - unable …
timlinux May 13, 2015
6bf62d3
In progress fix for #1926
timlinux May 13, 2015
85e2841
Merge branch 'inasafe-1926' of github.com:timlinux/inasafe into min_n…
May 13, 2015
c5a39e9
this closes #1926
May 13, 2015
54886dd
this closes #1930
May 13, 2015
8dbe24a
Merge branch 'min_need_bugs' into develop
May 13, 2015
29f5c7c
this closes #1933
May 13, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion metadata.txt
Expand Up @@ -9,7 +9,7 @@


[general]
name=InaSAFE-Dev
name=InaSAFE
qgisMinimumVersion=2.0
qgisMaximumVersion=2.99
description=InaSAFE is free software that allows disaster managers to study realistic natural hazard impact scenarios for better planning, preparedness and response activities.
Expand Down
22 changes: 12 additions & 10 deletions safe/gui/tools/minimum_needs/needs_manager_dialog.py
Expand Up @@ -44,12 +44,12 @@
InvalidMaximumError,
InvalidMinimumError)
from safe_extras.parameters.string_parameter import StringParameter
from safe_extras.parameters.text_parameter import TextParameter
from safe.utilities.help import show_context_help
from safe.utilities.resources import resources_path, get_ui_class
from safe.messaging import styles
from safe.gui.tools.minimum_needs.needs_profile import NeedsProfile


INFO_STYLE = styles.INFO_STYLE
FORM_CLASS = get_ui_class('needs_manager_dialog_base.ui')

Expand All @@ -69,7 +69,6 @@ def __init__(self, parent=None, dock=None):
:param dock: Dock widget instance that we can notify of changes.
:type dock: Dock
"""

QtGui.QDialog.__init__(self, parent)
self.setupUi(self)
self.dock = dock
Expand Down Expand Up @@ -194,6 +193,9 @@ def __init__(self, parent=None, dock=None):
self.profile_combo.activated.connect(self.select_profile)
# noinspection PyUnresolvedReferences
self.stacked_widget.currentChanged.connect(self.page_changed)
# initial sync profile_combo and resource list
self.clear_resource_list()
self.populate_resource_list()

def reject(self):
"""Overload the base dialog reject event so we can handle state change.
Expand Down Expand Up @@ -293,8 +295,8 @@ def add_new_resource(self):
"""Handle add new resource requests.
"""
parameters_widget = [
self.resource_widget.layout().itemAt(i) for i in
range(self.resource_widget.layout().count())][0].widget()
self.parameters_scrollarea.layout().itemAt(i) for i in
range(self.parameters_scrollarea.layout().count())][0].widget()
parameter_widgets = [
parameters_widget.vertical_layout.itemAt(i).widget() for i in
range(parameters_widget.vertical_layout.count())]
Expand Down Expand Up @@ -326,8 +328,8 @@ def edit_resource(self):
if not resource:
return
parameters_widget = [
self.resource_widget.layout().itemAt(i) for i in
range(self.resource_widget.layout().count())][0].widget()
self.parameters_scrollarea.layout().itemAt(i) for i in
range(self.parameters_scrollarea.layout().count())][0].widget()
parameter_widgets = [
parameters_widget.vertical_layout.itemAt(i).widget() for i in
range(parameters_widget.vertical_layout.count())]
Expand Down Expand Up @@ -462,7 +464,7 @@ def set_up_resource_parameters(self):
frequency_parameter.is_required = True
frequency_parameter.value = 'weekly'

sentence_parameter = StringParameter('UUID-10')
sentence_parameter = TextParameter('UUID-10')
sentence_parameter.name = 'Readable sentence'
sentence_parameter.help_text = (
'A readable presentation of the resource.')
Expand Down Expand Up @@ -498,7 +500,7 @@ def set_up_resource_parameters(self):
layout.setContentsMargins(0, 0, 0, 0)
layout.setSpacing(0)
layout.addWidget(parameter_container)
self.resource_widget.setLayout(layout)
self.parameters_scrollarea.setLayout(layout)

def remove_resource(self):
"""Remove the currently selected resource.
Expand All @@ -520,8 +522,8 @@ def save_resource(self):
# Hackorama to get this working outside the method that the
# parameters where defined in.
parameters_widget = [
self.resource_widget.layout().itemAt(i) for i in
range(self.resource_widget.layout().count())][0]
self.parameters_scrollarea.layout().itemAt(i) for i in
range(self.parameters_scrollarea.layout().count())][0]
parameters = parameters_widget.widget().get_parameters()

resource = {}
Expand Down
30 changes: 25 additions & 5 deletions safe/gui/ui/needs_manager_dialog_base.ui
Expand Up @@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>751</width>
<height>669</height>
<width>737</width>
<height>538</height>
</rect>
</property>
<property name="contextMenuPolicy">
Expand Down Expand Up @@ -263,6 +263,28 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QGridLayout" name="gridLayout_4">
<property name="margin">
<number>0</number>
</property>
<item row="0" column="0">
<widget class="QScrollArea" name="scrollArea">
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="parameters_scrollarea">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>717</width>
<height>430</height>
</rect>
</property>
</widget>
</widget>
</item>
</layout>
</widget>
</item>
<item row="0" column="0">
Expand Down Expand Up @@ -291,9 +313,7 @@
</item>
</layout>
</widget>
<resources>
<include location="../resources/resources.qrc"/>
</resources>
<resources/>
<connections>
<connection>
<sender>button_box</sender>
Expand Down
Binary file removed safe/test/data/hazard/hazard.sqlite
Binary file not shown.
2 changes: 2 additions & 0 deletions safe_extras/parameters/qt_widgets/qt4_parameter_factory.py
Expand Up @@ -11,6 +11,7 @@
from qt_widgets.float_parameter_widget import FloatParameterWidget
from qt_widgets.integer_parameter_widget import IntegerParameterWidget
from qt_widgets.string_parameter_widget import StringParameterWidget
from qt_widgets.text_parameter_widget import TextParameterWidget
from qt_widgets.generic_parameter_widget import GenericParameterWidget


Expand All @@ -24,6 +25,7 @@ def __init__(self):
'FloatParameter': FloatParameterWidget,
'IntegerParameter': IntegerParameterWidget,
'StringParameter': StringParameterWidget,
'TextParameter': TextParameterWidget
}

def register_widget(self, parameter, parameter_widget):
Expand Down
55 changes: 55 additions & 0 deletions safe_extras/parameters/qt_widgets/text_parameter_widget.py
@@ -0,0 +1,55 @@
# coding=utf-8
"""Docstring for this file."""
__author__ = 'ismailsunni'
__project_name = 'parameters'
__filename = 'string_parameter_widget'
__date__ = '8/28/14'
__copyright__ = 'ismail@kartoza.com'
__doc__ = ''


from PyQt4.QtGui import QTextEdit, QSizePolicy

from qt_widgets.generic_parameter_widget import GenericParameterWidget


class TextParameterWidget(GenericParameterWidget):
"""Widget class for string parameter."""
def __init__(self, parameter, parent=None):
"""Constructor

.. versionadded:: 2.2

:param parameter: A StringParameter object.
:type parameter: StringParameter

"""
super(TextParameterWidget, self).__init__(parameter, parent)

self._line_edit_input = QTextEdit()
self._line_edit_input.setSizePolicy(
QSizePolicy.Minimum, QSizePolicy.Minimum)
# Tooltips
self.setToolTip('Write the value for %s here ' % self._parameter.name)
self._line_edit_input.setText(self._parameter.value)

self._inner_input_layout.addWidget(self._line_edit_input)

def get_parameter(self):
"""Obtain string parameter object from the current widget state.

:returns: A StringParameter from the current state of widget
"""
value = self._line_edit_input.toPlainText()
if value.__class__.__name__ == 'QString':
value = str(value)
self._parameter.value = value
return self._parameter

def set_text(self, text):
"""Update the text of the widget

:param text: The new text
:type text: str
"""
self._line_edit_input.setText(text)
22 changes: 22 additions & 0 deletions safe_extras/parameters/text_parameter.py
@@ -0,0 +1,22 @@
# coding=utf-8
"""String Parameter."""

from generic_parameter import GenericParameter


class TextParameter(GenericParameter):
"""A subclass of generic parameter that accepts text only.

.. versionadded:: 3.2
"""

def __init__(self, guid=None):
"""Constructor.

:param guid: Optional unique identifier for this parameter. If none
is specified one will be generated using python hash. This guid
will be used when storing parameters in the registry.
:type guid: str, None
"""
super(TextParameter, self).__init__(guid)
self.expected_type = [str, unicode]