source: filezilla/trunk/fuentes/src/interface/welcome_dialog.cpp @ 130

Last change on this file since 130 was 130, checked in by jrpelegrina, 3 years ago

First release to xenial

File size: 2.6 KB
Line 
1#include <filezilla.h>
2#include "welcome_dialog.h"
3#include "buildinfo.h"
4#include <wx/hyperlink.h>
5#include "Options.h"
6#include "xrc_helper.h"
7
8BEGIN_EVENT_TABLE(CWelcomeDialog, wxDialogEx)
9EVT_TIMER(wxID_ANY, CWelcomeDialog::OnTimer)
10END_EVENT_TABLE()
11
12bool CWelcomeDialog::Run(wxWindow* parent, bool force /*=false*/, bool delay /*=false*/)
13{
14        const wxString ownVersion = CBuildInfo::GetVersion();
15        wxString greetingVersion = COptions::Get()->GetOption(OPTION_GREETINGVERSION);
16
17        if (!force) {
18                if (COptions::Get()->GetOptionVal(OPTION_DEFAULT_KIOSKMODE) == 2) {
19                        if (delay)
20                                delete this;
21                        return true;
22                }
23
24                if (!greetingVersion.empty() &&
25                        CBuildInfo::ConvertToVersionNumber(ownVersion.c_str()) <= CBuildInfo::ConvertToVersionNumber(greetingVersion.c_str()))
26                {
27                        // Been there done that
28                        if (delay)
29                                delete this;
30                        return true;
31                }
32                COptions::Get()->SetOption(OPTION_GREETINGVERSION, ownVersion);
33
34                if (greetingVersion.empty() && !COptions::Get()->GetOptionVal(OPTION_DEFAULT_KIOSKMODE))
35                        COptions::Get()->SetOption(OPTION_PROMPTPASSWORDSAVE, 1);
36        }
37
38        if (!Load(parent, _T("ID_WELCOME"))) {
39                if (delay) {
40                        delete this;
41                }
42                return false;
43        }
44
45        xrc_call(*this, "ID_FZVERSION", &wxStaticText::SetLabel, _T("FileZilla ") + CBuildInfo::GetVersion());
46
47        wxString const url = _T("https://welcome.filezilla-project.org/welcome?type=client&category=%s&version=") + ownVersion;
48
49        if (!greetingVersion.empty()) {
50                xrc_call(*this, "ID_LINK_NEWS", &wxHyperlinkCtrl::SetURL, wxString::Format(url, _T("news")) + _T("&oldversion=") + greetingVersion);
51                xrc_call(*this, "ID_LINK_NEWS", &wxHyperlinkCtrl::SetLabel, wxString::Format(_("New features and improvements in %s"), CBuildInfo::GetVersion()));
52        }
53        else {
54                xrc_call(*this, "ID_LINK_NEWS", &wxHyperlinkCtrl::Hide);
55                xrc_call(*this, "ID_HEADING_NEWS", &wxStaticText::Hide);
56        }
57
58        xrc_call(*this, "ID_DOCUMENTATION_BASIC", &wxHyperlinkCtrl::SetURL, wxString::Format(url, _T("documentation_basic")));
59        xrc_call(*this, "ID_DOCUMENTATION_NETWORK", &wxHyperlinkCtrl::SetURL, wxString::Format(url, _T("documentation_network")));
60        xrc_call(*this, "ID_DOCUMENTATION_MORE", &wxHyperlinkCtrl::SetURL, wxString::Format(url, _T("documentation_more")));
61        xrc_call(*this, "ID_SUPPORT_FORUM", &wxHyperlinkCtrl::SetURL, wxString::Format(url, _T("support_forum")));
62        xrc_call(*this, "ID_SUPPORT_MORE", &wxHyperlinkCtrl::SetURL, wxString::Format(url, _T("support_more")));
63        Layout();
64
65        GetSizer()->Fit(this);
66
67        if (delay) {
68                m_delayedShowTimer.SetOwner(this);
69                m_delayedShowTimer.Start(10, true);
70        }
71        else
72                ShowModal();
73
74        return true;
75}
76
77void CWelcomeDialog::OnTimer(wxTimerEvent&)
78{
79        ShowModal();
80        Destroy();
81}
Note: See TracBrowser for help on using the repository browser.