Skip to content

Commit cd361d9

Browse files
committed
Feature: Drag and drop for image files in ascent viewer
1 parent ebb102a commit cd361d9

6 files changed

+342
-145
lines changed

PAL.pro

+1
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@ HEADERS += \
157157
src/tools/photo_relocation_thread.h \
158158
src/tools/relocate_photos_dialog.h \
159159
src/viewer/ascent_viewer.h \
160+
src/viewer/file_drop_frame.h \
160161
src/viewer/scalable_image_label.h
161162

162163
FORMS += \

src/ui/ascent_viewer.ui

+141-123
Original file line numberDiff line numberDiff line change
@@ -1061,68 +1061,19 @@
10611061
</layout>
10621062
</widget>
10631063
<widget class="QWidget" name="rightOfSplitterWidget">
1064-
<layout class="QVBoxLayout" name="photoLayout" stretch="1,1,0,0">
1064+
<layout class="QVBoxLayout" name="photoLayout" stretch="1,0,0">
10651065
<property name="spacing">
10661066
<number>10</number>
10671067
</property>
10681068
<item>
1069-
<widget class="QScrollArea" name="imageScrollArea">
1070-
<property name="sizePolicy">
1071-
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
1072-
<horstretch>0</horstretch>
1073-
<verstretch>0</verstretch>
1074-
</sizepolicy>
1075-
</property>
1076-
<property name="minimumSize">
1077-
<size>
1078-
<width>250</width>
1079-
<height>250</height>
1080-
</size>
1081-
</property>
1082-
<property name="verticalScrollBarPolicy">
1083-
<enum>Qt::ScrollBarAlwaysOn</enum>
1084-
</property>
1085-
<property name="horizontalScrollBarPolicy">
1086-
<enum>Qt::ScrollBarAlwaysOn</enum>
1087-
</property>
1088-
<property name="widgetResizable">
1069+
<widget class="FileDropFrame" name="imageFrame">
1070+
<property name="acceptDrops">
10891071
<bool>true</bool>
10901072
</property>
1091-
<widget class="QWidget" name="imageScrollAreaWidget">
1092-
<property name="geometry">
1093-
<rect>
1094-
<x>0</x>
1095-
<y>0</y>
1096-
<width>700</width>
1097-
<height>389</height>
1098-
</rect>
1099-
</property>
1100-
<layout class="QHBoxLayout" name="imageScrollAreaLayout">
1101-
<property name="spacing">
1102-
<number>0</number>
1103-
</property>
1104-
<property name="leftMargin">
1105-
<number>0</number>
1106-
</property>
1107-
<property name="topMargin">
1108-
<number>0</number>
1109-
</property>
1110-
<property name="rightMargin">
1111-
<number>0</number>
1112-
</property>
1113-
<property name="bottomMargin">
1114-
<number>0</number>
1115-
</property>
1116-
</layout>
1117-
</widget>
1118-
</widget>
1119-
</item>
1120-
<item>
1121-
<widget class="QFrame" name="noImageFrame">
11221073
<property name="frameShape">
11231074
<enum>QFrame::StyledPanel</enum>
11241075
</property>
1125-
<layout class="QHBoxLayout" name="noImageFrameLayout">
1076+
<layout class="QVBoxLayout" name="imageFrameLayout">
11261077
<property name="spacing">
11271078
<number>10</number>
11281079
</property>
@@ -1139,105 +1090,164 @@
11391090
<number>10</number>
11401091
</property>
11411092
<item>
1142-
<widget class="QGroupBox" name="imageErrorGroupBox">
1093+
<widget class="QScrollArea" name="imageScrollArea">
11431094
<property name="sizePolicy">
1144-
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
1095+
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
11451096
<horstretch>0</horstretch>
11461097
<verstretch>0</verstretch>
11471098
</sizepolicy>
11481099
</property>
1149-
<property name="font">
1150-
<font>
1151-
<pointsize>10</pointsize>
1152-
</font>
1100+
<property name="minimumSize">
1101+
<size>
1102+
<width>250</width>
1103+
<height>250</height>
1104+
</size>
11531105
</property>
1154-
<property name="title">
1155-
<string>Image could not be loaded</string>
1106+
<property name="verticalScrollBarPolicy">
1107+
<enum>Qt::ScrollBarAlwaysOn</enum>
11561108
</property>
1157-
<property name="alignment">
1158-
<set>Qt::AlignCenter</set>
1109+
<property name="horizontalScrollBarPolicy">
1110+
<enum>Qt::ScrollBarAlwaysOn</enum>
11591111
</property>
1160-
<layout class="QVBoxLayout" name="imageErrorGroupBoxLayout">
1161-
<property name="spacing">
1162-
<number>10</number>
1163-
</property>
1164-
<property name="leftMargin">
1165-
<number>10</number>
1166-
</property>
1167-
<property name="topMargin">
1168-
<number>10</number>
1169-
</property>
1170-
<property name="rightMargin">
1171-
<number>10</number>
1172-
</property>
1173-
<property name="bottomMargin">
1174-
<number>10</number>
1112+
<property name="widgetResizable">
1113+
<bool>true</bool>
1114+
</property>
1115+
<widget class="QWidget" name="imageScrollAreaWidget">
1116+
<property name="geometry">
1117+
<rect>
1118+
<x>0</x>
1119+
<y>0</y>
1120+
<width>678</width>
1121+
<height>576</height>
1122+
</rect>
11751123
</property>
1176-
<item>
1177-
<widget class="QLabel" name="imageErrorLabel">
1178-
<property name="font">
1179-
<font>
1180-
<pointsize>9</pointsize>
1181-
</font>
1124+
<layout class="QHBoxLayout" name="imageScrollAreaLayout">
1125+
<property name="spacing">
1126+
<number>0</number>
1127+
</property>
1128+
<property name="leftMargin">
1129+
<number>0</number>
1130+
</property>
1131+
<property name="topMargin">
1132+
<number>0</number>
1133+
</property>
1134+
<property name="rightMargin">
1135+
<number>0</number>
1136+
</property>
1137+
<property name="bottomMargin">
1138+
<number>0</number>
1139+
</property>
1140+
</layout>
1141+
</widget>
1142+
</widget>
1143+
</item>
1144+
<item>
1145+
<layout class="QHBoxLayout" name="imageErrorCenteringLayout">
1146+
<property name="spacing">
1147+
<number>10</number>
1148+
</property>
1149+
<item>
1150+
<widget class="QGroupBox" name="imageErrorGroupBox">
1151+
<property name="sizePolicy">
1152+
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
1153+
<horstretch>0</horstretch>
1154+
<verstretch>0</verstretch>
1155+
</sizepolicy>
1156+
</property>
1157+
<property name="font">
1158+
<font>
1159+
<pointsize>10</pointsize>
1160+
</font>
1161+
</property>
1162+
<property name="title">
1163+
<string>Image could not be loaded</string>
1164+
</property>
1165+
<property name="alignment">
1166+
<set>Qt::AlignCenter</set>
1167+
</property>
1168+
<layout class="QVBoxLayout" name="imageErrorGroupBoxLayout">
1169+
<property name="spacing">
1170+
<number>10</number>
11821171
</property>
1183-
<property name="text">
1184-
<string notr="true">This image file cannot be shown:
1185-
&lt;FILENAME&gt;
1186-
Reason: File not found.
1187-
1188-
You can remove the image, replace the file, or mass relocate image files in the whole database.
1189-
&lt;CAUTION: This text is always replaced from the code.&gt;</string>
1172+
<property name="leftMargin">
1173+
<number>10</number>
11901174
</property>
1191-
<property name="wordWrap">
1192-
<bool>true</bool>
1175+
<property name="topMargin">
1176+
<number>10</number>
11931177
</property>
1194-
</widget>
1195-
</item>
1196-
<item>
1197-
<layout class="QHBoxLayout" name="imageErrorButtonLayout">
1198-
<property name="spacing">
1178+
<property name="rightMargin">
1179+
<number>10</number>
1180+
</property>
1181+
<property name="bottomMargin">
11991182
<number>10</number>
12001183
</property>
12011184
<item>
1202-
<widget class="QPushButton" name="imageErrorRemoveButton">
1185+
<widget class="QLabel" name="imageErrorLabel">
12031186
<property name="font">
12041187
<font>
12051188
<pointsize>9</pointsize>
12061189
</font>
12071190
</property>
12081191
<property name="text">
1209-
<string>Remove</string>
1210-
</property>
1211-
</widget>
1212-
</item>
1213-
<item>
1214-
<widget class="QPushButton" name="imageErrorReplaceButton">
1215-
<property name="font">
1216-
<font>
1217-
<pointsize>9</pointsize>
1218-
</font>
1192+
<string notr="true">This image file cannot be shown:
1193+
&lt;FILENAME&gt;
1194+
Reason: File not found.
1195+
1196+
You can remove the image, replace the file, or mass relocate image files in the whole database.
1197+
&lt;CAUTION: This text is always replaced from the code.&gt;</string>
12191198
</property>
1220-
<property name="text">
1221-
<string>Replace</string>
1199+
<property name="wordWrap">
1200+
<bool>true</bool>
12221201
</property>
12231202
</widget>
12241203
</item>
12251204
<item>
1226-
<widget class="QPushButton" name="imageErrorRelocateButton">
1227-
<property name="font">
1228-
<font>
1229-
<pointsize>9</pointsize>
1230-
</font>
1231-
</property>
1232-
<property name="text">
1233-
<string>Mass relocate</string>
1205+
<layout class="QHBoxLayout" name="imageErrorButtonLayout">
1206+
<property name="spacing">
1207+
<number>10</number>
12341208
</property>
1235-
</widget>
1209+
<item>
1210+
<widget class="QPushButton" name="imageErrorRemoveButton">
1211+
<property name="font">
1212+
<font>
1213+
<pointsize>9</pointsize>
1214+
</font>
1215+
</property>
1216+
<property name="text">
1217+
<string>Remove</string>
1218+
</property>
1219+
</widget>
1220+
</item>
1221+
<item>
1222+
<widget class="QPushButton" name="imageErrorReplaceButton">
1223+
<property name="font">
1224+
<font>
1225+
<pointsize>9</pointsize>
1226+
</font>
1227+
</property>
1228+
<property name="text">
1229+
<string>Replace</string>
1230+
</property>
1231+
</widget>
1232+
</item>
1233+
<item>
1234+
<widget class="QPushButton" name="imageErrorRelocateButton">
1235+
<property name="font">
1236+
<font>
1237+
<pointsize>9</pointsize>
1238+
</font>
1239+
</property>
1240+
<property name="text">
1241+
<string>Mass relocate</string>
1242+
</property>
1243+
</widget>
1244+
</item>
1245+
</layout>
12361246
</item>
12371247
</layout>
1238-
</item>
1239-
</layout>
1240-
</widget>
1248+
</widget>
1249+
</item>
1250+
</layout>
12411251
</item>
12421252
</layout>
12431253
</widget>
@@ -1612,6 +1622,14 @@ You can remove the image, replace the file, or mass relocate image files in the
16121622
</item>
16131623
</layout>
16141624
</widget>
1625+
<customwidgets>
1626+
<customwidget>
1627+
<class>FileDropFrame</class>
1628+
<extends>QFrame</extends>
1629+
<header>src/viewer/file_drop_frame.h</header>
1630+
<container>1</container>
1631+
</customwidget>
1632+
</customwidgets>
16151633
<resources/>
16161634
<connections/>
16171635
</ui>

src/ui/main_window.ui

+1-1
Original file line numberDiff line numberDiff line change
@@ -974,7 +974,7 @@
974974
<customwidget>
975975
<class>AscentFilterBar</class>
976976
<extends>QWidget</extends>
977-
<header>../PAL/src/main/ascent_filter_bar.h</header>
977+
<header>src/main/ascent_filter_bar.h</header>
978978
<container>1</container>
979979
</customwidget>
980980
</customwidgets>

0 commit comments

Comments
 (0)