diff --git a/src/app/browser/main/tab/page.cpp b/src/app/browser/main/tab/page.cpp index 0208aa62..493fbb9d 100644 --- a/src/app/browser/main/tab/page.cpp +++ b/src/app/browser/main/tab/page.cpp @@ -370,33 +370,21 @@ void Page::navigation_reload( action__update->activate(); // Parse meta - Socket::Client::Gemini::Response::Status status; - + Socket::Client::Gemini::Response::Status status; // @TODO make page global? Socket::Client::Gemini::Response::Match::meta( buffer, status, mime ); - // Try detect mime by file extension on still undefined @TODO + // MIME type not detected if (mime == MIME::UNDEFINED) { + // Try detect by file extension if (Glib::str_has_suffix(g_uri_get_path(uri), ".gmi")) { mime = MIME::TEXT_GEMINI; } - - else - { - // Update - title = _("Oops"); - - description = _("MIME type not supported"); - - progress_fraction = 1; - - action__update->activate(); - } } // Route by status code @@ -404,6 +392,42 @@ void Page::navigation_reload( { case Socket::Client::Gemini::Response::Status::SUCCESS: + // Route by MIME + switch (mime) + { + case MIME::TEXT_GEMINI: + + progress_fraction = 1; + + // Set content driver + pageContent->update( + page::Content::TEXT_GEMINI, + buffer, + uri + ); + + // Update title on detected by document provider + if (!pageContent->get_title().empty()) + { + title = pageContent->get_title(); + } + + action__update->activate(); + + break; + + default: + + // Update + title = _("Oops"); + + description = _("MIME type not supported"); + + progress_fraction = 1; + + action__update->activate(); + } + // Update title = _("Done"); // @TODO page title @@ -411,23 +435,6 @@ void Page::navigation_reload( uri ); - progress_fraction = 1; - - // Set content driver - pageContent->update( - page::Content::TEXT_GEMINI, - buffer, - uri - ); - - // Update title on detected by document provider - if (!pageContent->get_title().empty()) - { - title = pageContent->get_title(); - } - - action__update->activate(); - break; // @TODO other statuses..