Skip to content

Commit a119072

Browse files
committed
enh: add preview option for dataset description in upload dialog (close #52)
1 parent d6f712a commit a119072

3 files changed

Lines changed: 103 additions & 23 deletions

File tree

CHANGELOG

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
0.18.3
22
- enh: allow sharing individual datasets instead of collections (#32)
3+
- enh: add preview option for dataset description in upload dialog (#52)
34
0.18.2
45
- ref: make action buttons in filter view hideable
56
0.18.2

dcoraid/gui/panel_uploads/dlg_upload.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,17 @@ def __init__(self, *args, **kwargs):
107107
validator = QtGui.QRegularExpressionValidator(regex)
108108
self.lineEdit_res_filename.setValidator(validator)
109109

110+
# corner widget for markdown help
111+
self.label_link_markdown_help = QtWidgets.QLabel()
112+
self.label_link_markdown_help.setTextFormat(
113+
QtCore.Qt.TextFormat.RichText)
114+
self.label_link_markdown_help.setText(
115+
"<a href='https://dc.readthedocs.io/en/latest/sec_user_guide/"
116+
"upload.html#markdown-reference'>Show Markdown help</a>"
117+
)
118+
self.label_link_markdown_help.setOpenExternalLinks(True)
119+
self.tabWidget_notes.setCornerWidget(self.label_link_markdown_help)
120+
110121
# Signals and slots
111122
# general buttons
112123
self.toolButton_add.clicked.connect(self.on_add_resources)
@@ -134,6 +145,10 @@ def __init__(self, *args, **kwargs):
134145
self.toolButton_preset_load.clicked.connect(self.on_preset_load)
135146
self.toolButton_preset_store.clicked.connect(self.on_preset_store)
136147

148+
# signal for showing dataset notes preview
149+
self.tabWidget_notes.currentChanged.connect(
150+
self.on_notes_preview)
151+
137152
# Do not allow drag and drop to line edit of combobox
138153
self.comboBox_preset.lineEdit().setAcceptDrops(False)
139154

@@ -239,6 +254,13 @@ def on_add_resources(self, files=None):
239254
sm = self.listView_resources.selectionModel()
240255
sm.select(ix, QtCore.QItemSelectionModel.SelectionFlag.Select)
241256

257+
@QtCore.pyqtSlot()
258+
def on_notes_preview(self):
259+
"""Display preview when preview tab is selected"""
260+
if self.tabWidget_notes.currentWidget() == self.tab_notes_preview:
261+
self.textEdit_preview.setMarkdown(
262+
self.plainTextEdit_notes.toPlainText())
263+
242264
@QtCore.pyqtSlot()
243265
def on_preset_load(self):
244266
"""Load the preset with the current name"""

dcoraid/gui/panel_uploads/dlg_upload.ui

Lines changed: 80 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,85 @@
137137
</property>
138138
</widget>
139139
</item>
140+
<item row="4" column="1">
141+
<widget class="QTabWidget" name="tabWidget_notes">
142+
<property name="currentIndex">
143+
<number>0</number>
144+
</property>
145+
<widget class="QWidget" name="tab_notes_raw">
146+
<attribute name="title">
147+
<string>Raw (markdown)</string>
148+
</attribute>
149+
<layout class="QVBoxLayout" name="verticalLayout_8">
150+
<property name="leftMargin">
151+
<number>0</number>
152+
</property>
153+
<property name="topMargin">
154+
<number>0</number>
155+
</property>
156+
<property name="rightMargin">
157+
<number>0</number>
158+
</property>
159+
<property name="bottomMargin">
160+
<number>0</number>
161+
</property>
162+
<item>
163+
<widget class="QPlainTextEdit" name="plainTextEdit_notes">
164+
<property name="sizePolicy">
165+
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
166+
<horstretch>0</horstretch>
167+
<verstretch>0</verstretch>
168+
</sizepolicy>
169+
</property>
170+
<property name="minimumSize">
171+
<size>
172+
<width>450</width>
173+
<height>400</height>
174+
</size>
175+
</property>
176+
<property name="acceptDrops">
177+
<bool>false</bool>
178+
</property>
179+
<property name="placeholderText">
180+
<string>Desicription of the dataset, select the &quot;Preview&quot; tab for a rendered version.</string>
181+
</property>
182+
</widget>
183+
</item>
184+
</layout>
185+
</widget>
186+
<widget class="QWidget" name="tab_notes_preview">
187+
<attribute name="title">
188+
<string>Preview</string>
189+
</attribute>
190+
<layout class="QVBoxLayout" name="verticalLayout_9">
191+
<property name="leftMargin">
192+
<number>0</number>
193+
</property>
194+
<property name="topMargin">
195+
<number>0</number>
196+
</property>
197+
<property name="rightMargin">
198+
<number>0</number>
199+
</property>
200+
<property name="bottomMargin">
201+
<number>0</number>
202+
</property>
203+
<item>
204+
<widget class="QTextEdit" name="textEdit_preview">
205+
<property name="readOnly">
206+
<bool>true</bool>
207+
</property>
208+
<property name="markdown">
209+
<string>This is an **example** text.
210+
211+
</string>
212+
</property>
213+
</widget>
214+
</item>
215+
</layout>
216+
</widget>
217+
</widget>
218+
</item>
140219
<item row="4" column="0">
141220
<widget class="QLabel" name="label_5">
142221
<property name="acceptDrops">
@@ -147,28 +226,6 @@
147226
</property>
148227
</widget>
149228
</item>
150-
<item row="4" column="1">
151-
<widget class="QPlainTextEdit" name="plainTextEdit_notes">
152-
<property name="sizePolicy">
153-
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
154-
<horstretch>0</horstretch>
155-
<verstretch>0</verstretch>
156-
</sizepolicy>
157-
</property>
158-
<property name="minimumSize">
159-
<size>
160-
<width>450</width>
161-
<height>400</height>
162-
</size>
163-
</property>
164-
<property name="acceptDrops">
165-
<bool>false</bool>
166-
</property>
167-
<property name="placeholderText">
168-
<string>General description.</string>
169-
</property>
170-
</widget>
171-
</item>
172229
<item row="5" column="0">
173230
<widget class="QLabel" name="label_6">
174231
<property name="acceptDrops">
@@ -563,7 +620,7 @@
563620
<rect>
564621
<x>0</x>
565622
<y>0</y>
566-
<width>509</width>
623+
<width>382</width>
567624
<height>557</height>
568625
</rect>
569626
</property>

0 commit comments

Comments
 (0)