kwalleteditor.h 3.89 KB
Newer Older
1
/*
2 3
   Copyright (C) 2003-2005 George Staikos <staikos@kde.org>
   Copyright (C) 2005 Isaac Clerencia <isaac@warp.es>
4 5 6 7 8 9 10 11 12 13 14 15 16

   This program is free software; you can redistribute it and/or
   modify it under the terms of the GNU General Public
   License as published by the Free Software Foundation; either
   version 2 of the License, or (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; see the file COPYING.  If not, write to
Script Kiddy's avatar
Script Kiddy committed
17 18
   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
   Boston, MA 02110-1301, USA.
19 20 21 22 23
*/

#ifndef KWALLETEDITOR_H
#define KWALLETEDITOR_H

24
#include "ui_walletwidget.h"
25

26
#include <kwallet.h>
Laurent Montel's avatar
Laurent Montel committed
27
#include <kxmlguiwindow.h>
28
#include "registercreateactionmethod.h"
Laurent Montel's avatar
Laurent Montel committed
29
#include <QLabel>
30

31
class KActionCollection;
Laurent Montel's avatar
Laurent Montel committed
32
class QMenu;
Albert Astals Cid's avatar
Albert Astals Cid committed
33
class QTreeWidgetItem;
George Staikos's avatar
George Staikos committed
34
class QCheckBox;
35
class KWalletEntryList;
36
class KWMapEditor;
37
class KTreeWidgetSearchLine;
Laurent Montel's avatar
Laurent Montel committed
38

Teo Mrnjavac's avatar
Teo Mrnjavac committed
39 40
class KWalletEditor : public QWidget, public Ui::WalletWidget
{
Teo Mrnjavac's avatar
Teo Mrnjavac committed
41
    Q_OBJECT
42

Teo Mrnjavac's avatar
Teo Mrnjavac committed
43 44 45
public:
    KWalletEditor(QWidget *parent, const char *name = 0);
    virtual ~KWalletEditor();
46

Teo Mrnjavac's avatar
Teo Mrnjavac committed
47 48 49
    void setWallet(KWallet::Wallet *wallet, bool isPath = false);
    bool isOpen() const
    {
Laurent Montel's avatar
Laurent Montel committed
50
        return _w != nullptr;
Teo Mrnjavac's avatar
Teo Mrnjavac committed
51
    }
52

53
    bool hasUnsavedChanges() const;
Teo Mrnjavac's avatar
Teo Mrnjavac committed
54
    void setNewWallet(bool newWallet);
55

56
protected:
Laurent Montel's avatar
Laurent Montel committed
57 58
    void hideEvent(QHideEvent *) Q_DECL_OVERRIDE;
    void showEvent(QShowEvent *) Q_DECL_OVERRIDE;
Teo Mrnjavac's avatar
Teo Mrnjavac committed
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124

public slots:
    void walletClosed();
    void createFolder();
    void deleteFolder();

private slots:
    void updateFolderList(bool checkEntries = false);
    void entrySelectionChanged(QTreeWidgetItem *item);
    void listItemChanged(QTreeWidgetItem *, int column);
    void listContextMenuRequested(const QPoint &pos);
    void updateEntries(const QString &folder);

    void newEntry();
    void renameEntry();
    void deleteEntry();
    void entryEditted();
    void restoreEntry();
    void saveEntry();

    void changePassword();

    void walletOpened(bool success);
    void hidePasswordContents();
    void showPasswordContents();
    void showHideMapEditorValue(bool show);

    void exportXML();
    void importXML();
    void importWallet();

    void copyPassword();

    void onSearchTextChanged(const QString &);
    void onAlwaysShowContents(bool);
    void onAlwaysHideContents(bool);

signals:
    void enableWalletActions(bool enable);
    void enableFolderActions(bool enable);
    void enableContextFolderActions(bool enable);

public:
    QString _walletName;

private:
    static void createActions(KActionCollection *);
    void connectActions();
    void disconnectActions();
    KActionCollection *actionCollection();

    bool _nonLocal;
    KWallet::Wallet *_w;
    KWalletEntryList *_entryList;
    static RegisterCreateActionsMethod _registerCreateActionMethod;
    static QAction *_newFolderAction, *_deleteFolderAction;
    static QAction *_exportAction, *_saveAsAction, *_mergeAction, *_importAction;
    static QAction *_newEntryAction, *_renameEntryAction, *_deleteEntryAction;
    static QAction *_copyPassAction;
    QLabel *_details;
    QString _currentFolder;
    QMap<QString, QString> _currentMap; // save memory by storing
    // only the most recent map.
    KWMapEditor *_mapEditor;
    QCheckBox *_mapEditorShowHide;
    bool _newWallet;
Laurent Montel's avatar
Laurent Montel committed
125
    QMenu *_contextMenu;
Teo Mrnjavac's avatar
Teo Mrnjavac committed
126 127
    QTreeWidgetItem *_displayedItem; // used to find old item when selection just changed
    KActionCollection *_actionCollection;
Laurent Montel's avatar
Laurent Montel committed
128 129
    QMenu *_controlMenu;
    QMenu *_walletSubmenu;
Teo Mrnjavac's avatar
Teo Mrnjavac committed
130 131 132
    KTreeWidgetSearchLine *_searchLine;
    static QAction *_alwaysShowContentsAction, *_alwaysHideContentsAction;
    bool _alwaysShowContents;
133
    bool _hasUnsavedChanges;
134 135 136
};

#endif