From: terencehill Date: Tue, 10 Aug 2010 16:06:32 +0000 (+0200) Subject: Do not display the preview if there isn't any screenshot in the list X-Git-Tag: xonotic-v0.8.0~139^2~1^2~155^2~61 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=bcddd79f0195def8a807ee42ac867331d143e1e1;p=xonotic%2Fxonotic-data.pk3dir.git Do not display the preview if there isn't any screenshot in the list Also clean something up --- diff --git a/gfx/transparent.tga b/gfx/transparent.tga new file mode 100644 index 000000000..9fabe89c3 Binary files /dev/null and b/gfx/transparent.tga differ diff --git a/qcsrc/menu/xonotic/dialog_multiplayer_screenshot.c b/qcsrc/menu/xonotic/dialog_multiplayer_screenshot.c index 86fbaf89d..f1a3dbe9a 100644 --- a/qcsrc/menu/xonotic/dialog_multiplayer_screenshot.c +++ b/qcsrc/menu/xonotic/dialog_multiplayer_screenshot.c @@ -9,7 +9,6 @@ CLASS(XonoticScreenshotBrowserTab) EXTENDS(XonoticTab) METHOD(XonoticScreenshotBrowserTab, loadPreviewScreenshot, void(entity, string)) ATTRIB(XonoticScreenshotBrowserTab, screenshotImage, entity, NULL) - ATTRIB(XonoticScreenshotBrowserTab, currentScrName, string, string_null) ATTRIB(XonoticScreenshotBrowserTab, currentScrPath, string, string_null) ENDCLASS(XonoticScreenshotBrowserTab) entity makeXonoticScreenshotBrowserTab(); @@ -27,18 +26,15 @@ void XonoticScreenshotBrowserTab_loadPreviewScreenshot(entity me, string scrImag { if (me.currentScrPath) strunzone(me.currentScrPath); + if (scrImage == "") + scrImage = "/gfx/transparent"; me.currentScrPath = strzone(scrImage); me.screenshotImage.configureImage(me.screenshotImage, me.currentScrPath); me.screenshotImage.updateAspect(me.screenshotImage); - - if (me.currentScrName) - strunzone(me.currentScrName); - me.currentScrName = strzone(substring(scrImage, 13, strlen(scrImage) - 13)); } void XonoticScreenshotBrowserTab_fill(entity me) { entity e, btn, slist; - me.TR(me); slist = makeXonoticScreenshotList(); me.TR(me); me.TD(me, 1, 0.5, e = makeXonoticTextLabel(0, "Filter:")); @@ -52,13 +48,14 @@ void XonoticScreenshotBrowserTab_fill(entity me) slist.screenshotViewerDialog = main.screenshotViewerDialog; main.screenshotViewerDialog.scrList = slist; me.TR(me); - me.TD(me, me.rows - 4 - 11, me.columns, slist); - me.gotoRC(me, me.rows - 2 - 11, 0); - me.TD(me, 1, me.columns, e = makeXonoticButton("View", '0 0 0')); + me.TD(me, 8, me.columns, slist); + me.gotoRC(me, 9, 0); + me.TD(me, 1, me.columns, e = makeXonoticButton("Open in the viewer", '0 0 0')); e.onClick = StartScreenshot_Click; e.onClickEntity = slist; - me.gotoRC(me, me.rows - 1 - 11, 0); - me.TD(me, 12, me.columns, e = makeXonoticImage(string_null, -1)); + me.TR(me); + me.TD(me, me.rows - 10, me.columns, e = makeXonoticImage(string_null, -1)); + e.src = "/gfx/transparent"; // in case there isn't any screenshot to show me.screenshotImage = e; slist.screenshotPreview = e; slist.screenshotBrowserDialog = me; diff --git a/qcsrc/menu/xonotic/dialog_multiplayer_screenshot_screenshotviewer.c b/qcsrc/menu/xonotic/dialog_multiplayer_screenshot_screenshotviewer.c index 706b426a7..cf2c1bb50 100644 --- a/qcsrc/menu/xonotic/dialog_multiplayer_screenshot_screenshotviewer.c +++ b/qcsrc/menu/xonotic/dialog_multiplayer_screenshot_screenshotviewer.c @@ -67,9 +67,9 @@ void XonoticScreenshotViewerDialog_fill(entity me) me.TR(me); me.TD(me, me.rows - 1, me.columns, e = makeXonoticImage(string_null, -1)); - me.screenshotImage = e; + me.screenshotImage = e; me.TD(me, 1, me.columns, e = makeXonoticTextLabel(0.5, "")); - me.titleLabel = e; + me.titleLabel = e; me.gotoRC(me, me.rows - 1, 0); me.TD(me, 1, me.columns/2, e = makeXonoticButton("Previous", '0 0 0')); e.onClick = prevScreenshot_Click; diff --git a/qcsrc/menu/xonotic/screenshotlist.c b/qcsrc/menu/xonotic/screenshotlist.c index e7b45c00f..9b639242e 100644 --- a/qcsrc/menu/xonotic/screenshotlist.c +++ b/qcsrc/menu/xonotic/screenshotlist.c @@ -155,7 +155,10 @@ void ScreenshotList_Filter_Change(entity box, entity me) me.filterString = string_null; me.getScreenshots(me); - me.setSelected(me, 0); //alway select the first element after a new search + if (me.nItems <= 0) + me.screenshotBrowserDialog.loadPreviewScreenshot(me.screenshotBrowserDialog, ""); + else + me.setSelected(me, 0); //always select the first element after a new search } void XonoticScreenshotList_goScreenshot(entity me, float d)