示例#1
0
        private void OnClickKeyFileCreate(object sender, EventArgs e)
        {
            SaveFileDialogEx sfd = UIUtil.CreateSaveFileDialog(KPRes.KeyFileCreate,
                                                               UrlUtil.StripExtension(UrlUtil.GetFileName(m_ioInfo.Path)) + "." +
                                                               AppDefs.FileExtension.KeyFile, UIUtil.CreateFileTypeFilter("key",
                                                                                                                          KPRes.KeyFiles, true), 1, "key", AppDefs.FileDialogContext.KeyFile);

            if (sfd.ShowDialog() == DialogResult.OK)
            {
                EntropyForm dlg = new EntropyForm();
                if (dlg.ShowDialog() == DialogResult.OK)
                {
                    byte[] pbAdditionalEntropy = dlg.GeneratedEntropy;

                    try
                    {
                        KcpKeyFile.Create(sfd.FileName, pbAdditionalEntropy);

                        string str = sfd.FileName;
                        m_cmbKeyFile.Items.Add(str);
                        m_cmbKeyFile.SelectedIndex = m_cmbKeyFile.Items.Count - 1;
                    }
                    catch (Exception exKC)
                    {
                        MessageService.ShowWarning(exKC);
                    }
                }
                UIUtil.DestroyForm(dlg);
            }

            EnableUserControls();
        }
示例#2
0
        private void btnExport_Click(object sender, EventArgs e)
        {
            if (!UserConfig.ByName("Parts").HasAny())
            {
                return;
            }

            using (var sfd = new SaveFileDialogEx("Export styles settings", "Text file(*.txt)|*.txt"))
            {
                if (sfd.ShowDialog() != DialogResult.OK)
                {
                    return;
                }
                using (var writer = new StreamWriter(sfd.FileName, false, Encoding.Default))
                {
                    var directoryPath = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "Libraries", "Style");
                    var data          = UserConfig.ByName("Parts").data;
                    var result        = data.Select(x => x.s1).Distinct();
                    foreach (var d in result)
                    {
                        var dir = Path.GetDirectoryName(d);
                        if (dir != directoryPath)
                        {
                            continue;
                        }
                        writer.WriteLine(d);
                        writer.WriteLine(UserConfig.ByName("Parts")[d, "Size"]);
                        writer.WriteLine(UserConfig.ByName("Parts")[d, "Position"]);
                    }
                }
            }
            MessageBox.Show("Styles settings exported!", "Done");
        }
        private void OnClickKeyFileCreate(object sender, EventArgs e)
        {
            SaveFileDialogEx sfd = UIUtil.CreateSaveFileDialog(KPRes.KeyFileCreate,
                                                               UrlUtil.StripExtension(UrlUtil.GetFileName(m_ioInfo.Path)) + "." +
                                                               AppDefs.FileExtension.KeyFile, UIUtil.CreateFileTypeFilter("key",
                                                                                                                          KPRes.KeyFiles, true), 1, "key", null);

            if (sfd.ShowDialog() == DialogResult.OK)
            {
                using (EntropyForm dlg = new EntropyForm())
                {
                    if (dlg.ShowDialog() == DialogResult.OK)
                    {
                        byte[] pbAdditionalEntropy = dlg.GeneratedEntropy;

                        try
                        {
                            KcpKeyFile.Create(sfd.FileName, pbAdditionalEntropy);
                        }
                        catch (Exception exKC)
                        {
                            MessageService.ShowWarning(exKC);
                        }
                    }
                }

                EnableUserControls();
            }
        }
示例#4
0
 public void DoPhoto()
 {
     using (var sfd = new SaveFileDialogEx("Save screenshot", "Image file(*.jpg)|*.jpg"))
     {
         if (sfd.ShowDialog() != DialogResult.OK)
         {
             return;
         }
         ProgramCore.MainForm.ctrlRenderControl.GrabScreenshot(sfd.FileName, ProgramCore.MainForm.ctrlRenderControl.ClientSize.Width, ProgramCore.MainForm.ctrlRenderControl.ClientSize.Height);
     }
 }
示例#5
0
        private void OnBtnCustomSave(object sender, EventArgs e)
        {
            ListView.SelectedListViewItemCollection lvsic = m_lvCustomIcons.SelectedItems;
            if ((lvsic == null) || (lvsic.Count == 0))
            {
                return;
            }

            if (lvsic.Count == 1)
            {
                StringBuilder sbFilter = new StringBuilder();
                AddFileType(sbFilter, "*.png", "Portable Network Graphics (*.png)");
                // AddFileType(sbFilter, "*.ico", "Windows Icon (*.ico)");
                sbFilter.Append(@"|" + KPRes.AllFiles + @" (*.*)|*.*");

                SaveFileDialogEx sfd = UIUtil.CreateSaveFileDialog(KPRes.ExportFileTitle,
                                                                   KPRes.Export + ".png", sbFilter.ToString(), 1, null,
                                                                   AppDefs.FileDialogContext.Export);
                if (sfd.ShowDialog() == DialogResult.OK)
                {
                    SaveImageFile(lvsic[0], sfd.FileName);
                }
            }
            else             // lvsic.Count >= 2
            {
                FolderBrowserDialog fbd = UIUtil.CreateFolderBrowserDialog(KPRes.ExportToPrompt);
                if (fbd.ShowDialog() == DialogResult.OK)
                {
                    string strDir = UrlUtil.EnsureTerminatingSeparator(
                        fbd.SelectedPath, false);

                    int nExportIndex = 0;
                    foreach (ListViewItem lvi in lvsic)
                    {
                        try
                        {
                            string strFile;
                            do
                            {
                                strFile = strDir + KPRes.Export +
                                          nExportIndex.ToString() + ".png";
                                ++nExportIndex;
                            }while(File.Exists(strFile));

                            SaveImageFile(lvi, strFile);
                        }
                        catch (Exception ex)
                        {
                            MessageService.ShowWarning(ex.Message);
                        }
                    }
                }
            }
        }
        private void browseButton_Click(object sender, EventArgs e)
        {
            var sfd = new SaveFileDialogEx("Select a location for your new Certificate Shortcut Provider Key file.");

            sfd.Filter   = $"Certificate Shortcut Provider Key files (*{CertificateShortcutProvider.DefaultKeyExtension})|*{CertificateShortcutProvider.DefaultKeyExtension}|All files (*.*)|*.*";
            sfd.FileName = keyFileLocationTextBox.Text;
            if (sfd.ShowDialog() == DialogResult.OK)
            {
                keyFileLocationTextBox.Text = sfd.FileName;
            }
        }
示例#7
0
        private void OnFileSaveAs(object sender, EventArgs e)
        {
            SaveFileDialogEx sfd = UIUtil.CreateSaveFileDialog("Save KeePass Translation",
                                                               m_tbNameEng.Text + ".lngx", m_strFileFilter, 1, "lngx",
                                                               AppDefs.FileDialogContext.Attachments);

            if (sfd.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            m_strFile = sfd.FileName;

            OnFileSave(sender, e);
        }
示例#8
0
        private void OnFileSaveAs(object sender, EventArgs e)
        {
            SaveFileDialogEx sfd = UIUtil.CreateSaveFileDialog("Save KeePass Translation",
                                                               m_tbNameEng.Text + ".lngx", m_strFileFilter, 1, "lngx", string.Empty);

            InitFileDialog(sfd);

            if (sfd.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            SetCurrentFile(sfd.FileName);

            OnFileSave(sender, e);
        }
        private string GetKeyFilePath()
        {
            string strExt    = AppDefs.FileExtension.KeyFile;
            string strFilter = AppDefs.GetKeyFileFilter();

            string strName = UrlUtil.StripExtension(UrlUtil.GetFileName(m_ioInfo.Path));

            if (string.IsNullOrEmpty(strName))
            {
                strName = KPRes.KeyFileSafe;
            }

            SaveFileDialogEx sfd = UIUtil.CreateSaveFileDialog(KPRes.KeyFileCreateTitle,
                                                               strName + "." + strExt, strFilter, 1, strExt, AppDefs.FileDialogContext.KeyFile);

            if (sfd.ShowDialog() == DialogResult.OK)
            {
                return(sfd.FileName);
            }
            return(null);
        }
示例#10
0
        public void SaveSelected()
        {
            // Copied from PwEntryForm.OnBtnBinSave (PwEntryForm.cs)
            var lvsc = SelectedObjects.Cast <RowObject>().ToList();

            int nSelCount = lvsc.Count;

            if (nSelCount == 0)
            {
                Debug.Assert(false); return;
            }

            if (nSelCount == 1)
            {
                SaveFileDialogEx sfd = UIUtil.CreateSaveFileDialog(KPRes.AttachmentSave,
                                                                   lvsc[0].Name, UIUtil.CreateFileTypeFilter(null, null, true), 1, null,
                                                                   KeePass.App.AppDefs.FileDialogContext.Attachments);

                if (sfd.ShowDialog() == DialogResult.OK)
                {
                    SaveAttachmentTo(lvsc[0].Binary, sfd.FileName, false);
                }
            }
            else             // nSelCount > 1
            {
                FolderBrowserDialog fbd = UIUtil.CreateFolderBrowserDialog(KPRes.AttachmentsSave);

                if (fbd.ShowDialog() == DialogResult.OK)
                {
                    string strRootPath = UrlUtil.EnsureTerminatingSeparator(fbd.SelectedPath, false);

                    foreach (var lvi in lvsc)
                    {
                        SaveAttachmentTo(lvi.Binary, strRootPath + lvi.Name, true);
                    }
                }
                fbd.Dispose();
            }
        }
示例#11
0
        private void OnBtnSelFile(object sender, EventArgs e)
        {
            if (m_fmtCur == null)
            {
                Debug.Assert(false); return;
            }
            if (!m_fmtCur.RequiresFile)
            {
                return;                                    // Break on double-click
            }
            string strFormat = m_fmtCur.FormatName;

            if (string.IsNullOrEmpty(strFormat))
            {
                strFormat = KPRes.Data;
            }

            string strExts = m_fmtCur.DefaultExtension;

            if (string.IsNullOrEmpty(strExts))
            {
                strExts = "export";
            }
            string strPriExt = UIUtil.GetPrimaryFileTypeExt(strExts);

            if (strPriExt.Length == 0)
            {
                strPriExt = "export";                                   // In case of "|"
            }
            string strFilter = UIUtil.CreateFileTypeFilter(strExts, strFormat, true);

            if (m_bExport == false)            // Import
            {
                OpenFileDialogEx ofd = UIUtil.CreateOpenFileDialog(KPRes.Import +
                                                                   ": " + strFormat, strFilter, 1, strPriExt, true,
                                                                   AppDefs.FileDialogContext.Import);

                if (ofd.ShowDialog() != DialogResult.OK)
                {
                    return;
                }

                StringBuilder sb = new StringBuilder();
                foreach (string str in ofd.FileNames)
                {
                    if (sb.Length > 0)
                    {
                        sb.Append(';');
                    }

                    if (str.IndexOf(';') >= 0)
                    {
                        MessageService.ShowWarning(str, KPRes.FileNameContainsSemicolonError);
                    }
                    else
                    {
                        sb.Append(str);
                    }
                }

                string strFiles = sb.ToString();
                if (strFiles.Length < m_tbFile.MaxLength)
                {
                    m_tbFile.Text = strFiles;
                }
                else
                {
                    MessageService.ShowWarning(KPRes.TooManyFilesError);
                }
            }
            else             // Export
            {
                SaveFileDialogEx sfd = UIUtil.CreateSaveFileDialog(KPRes.Export +
                                                                   ": " + strFormat, null, strFilter, 1, strPriExt,
                                                                   AppDefs.FileDialogContext.Export);

                string strSuggestion;
                if ((m_pwDatabaseInfo != null) &&
                    (m_pwDatabaseInfo.IOConnectionInfo.Path.Length > 0))
                {
                    strSuggestion = UrlUtil.StripExtension(UrlUtil.GetFileName(
                                                               m_pwDatabaseInfo.IOConnectionInfo.Path));
                }
                else
                {
                    strSuggestion = KPRes.Database;
                }

                strSuggestion += "." + strPriExt;

                sfd.FileName = strSuggestion;
                if (sfd.ShowDialog() != DialogResult.OK)
                {
                    return;
                }

                m_tbFile.Text = sfd.FileName;
            }

            UpdateUIState();
        }
示例#12
0
        private void OnBtnCustomSave(object sender, EventArgs e)
        {
            ListView.SelectedListViewItemCollection lvsic = m_lvCustomIcons.SelectedItems;
            if (lvsic.Count == 0)
            {
                return;
            }

            if (lvsic.Count == 1)
            {
                PwCustomIcon ci = (lvsic[0].Tag as PwCustomIcon);
                if (ci == null)
                {
                    Debug.Assert(false); return;
                }

                string strName = KPRes.Export;
                if (ci.Name.Length != 0)
                {
                    strName = ci.Name;
                }
                strName = UrlUtil.FilterFileName(strName);

                StringBuilder sbFilter = new StringBuilder();
                AddFileType(sbFilter, "*.png", "Portable Network Graphics (*.png)");
                // AddFileType(sbFilter, "*.ico", "Windows Icon (*.ico)");
                sbFilter.Append(@"|" + KPRes.AllFiles + @" (*.*)|*.*");

                SaveFileDialogEx sfd = UIUtil.CreateSaveFileDialog(KPRes.ExportFileTitle,
                                                                   strName + ".png", sbFilter.ToString(), 1, null,
                                                                   AppDefs.FileDialogContext.Export);
                if (sfd.ShowDialog() == DialogResult.OK)
                {
                    SaveImageFile(ci, sfd.FileName);
                }
            }
            else             // lvsic.Count >= 2
            {
                FolderBrowserDialog fbd = UIUtil.CreateFolderBrowserDialog(KPRes.ExportToPrompt);
                if (fbd.ShowDialog() != DialogResult.OK)
                {
                    return;
                }

                string strDir = UrlUtil.EnsureTerminatingSeparator(
                    fbd.SelectedPath, false);
                Dictionary <string, int> dStart = new Dictionary <string, int>();

                foreach (ListViewItem lvi in lvsic)
                {
                    try
                    {
                        PwCustomIcon ci = (lvi.Tag as PwCustomIcon);
                        if (ci == null)
                        {
                            Debug.Assert(false); continue;
                        }

                        string strName = KPRes.Export;
                        if (ci.Name.Length != 0)
                        {
                            strName = ci.Name;
                        }
                        strName = UrlUtil.FilterFileName(strName);

                        int iStart;
                        dStart.TryGetValue(strName, out iStart);

                        for (int i = iStart; i < int.MaxValue; ++i)
                        {
                            string strFile = strDir + strName + ((i == 0) ?
                                                                 string.Empty : (" (" + i.ToString() + ")")) +
                                             ".png";

                            if (!File.Exists(strFile))
                            {
                                SaveImageFile(ci, strFile);
                                dStart[strName] = i + 1;
                                break;
                            }
                        }
                    }
                    catch (Exception ex) { MessageService.ShowWarning(ex); }
                }
            }
        }