File indexing completed on 2024-04-28 16:26:17

0001 /***********************************************************************************
0002   Copyright (C) 2011-2012 by Holger Danielsson (holger.danielsson@versanet.de)
0003  ***********************************************************************************/
0004 
0005 /***************************************************************************
0006  *                                                                         *
0007  *   This program is free software; you can redistribute it and/or modify  *
0008  *   it under the terms of the GNU General Public License as published by  *
0009  *   the Free Software Foundation; either version 2 of the License, or     *
0010  *   (at your option) any later version.                                   *
0011  *                                                                         *
0012  ***************************************************************************/
0013 
0014 #ifndef USERMENUDIALOG_H
0015 #define USERMENUDIALOG_H
0016 
0017 #include <QKeySequence>
0018 #include <QCheckBox>
0019 
0020 #include "kilewizard.h"
0021 #include "kileinfo.h"
0022 
0023 #include "dialogs/usermenu/usermenuitem.h"
0024 
0025 #include "ui_usermenudialog_base.h"
0026 
0027 
0028 namespace KileMenu {
0029 
0030 class UserMenu;
0031 
0032 class UserMenuDialog : public KileDialog::Wizard
0033 {
0034     Q_OBJECT
0035 
0036 public:
0037     UserMenuDialog(KConfig *config, KileInfo *ki, KileMenu::UserMenu *userMenu, const QString &xmlfile, QWidget *parent);
0038     ~UserMenuDialog() {}
0039 
0040 private Q_SLOTS:
0041     void slotCurrentItemChanged(QTreeWidgetItem *current,QTreeWidgetItem *previous);
0042     void slotInsertMenuItem();
0043     void slotInsertSubmenu();
0044     void slotInsertSeparator();
0045     void slotDelete();
0046     void slotUp();
0047     void slotDown();
0048 
0049     void slotMenuentryTypeClicked();
0050     void slotMenuentryTextChanged(const QString &text);
0051     void slotUrlTextChanged(const QString &text);
0052     void slotIconClicked();
0053     void slotIconDeleteClicked();
0054     void slotKeySequenceChanged(const QKeySequence &seq);
0055 
0056     void slotSelectionStateChanged(int state);
0057     void slotCheckboxStateChanged(int);
0058 
0059     void slotNewClicked();
0060     void slotInstallClicked();
0061     void slotLoadClicked();
0062     void slotSaveClicked();
0063     void slotSaveAsClicked();
0064     void slotShowHelp();
0065 
0066     void slotCustomContextMenuRequested(const QPoint &pos);
0067 
0068 private:
0069     Ui::UserMenuDialog m_UserMenuDialog;
0070     UserMenuTree *m_menutree;
0071 
0072     KileInfo *m_ki;
0073     KileMenu::UserMenu *m_userMenu;
0074 
0075     bool m_modified;
0076     bool m_currentXmlInstalled;
0077     QString m_currentXmlFile;
0078     void setXmlFile(const QString &filename, bool installed);
0079 
0080     QString m_currentIcon;
0081     QStringList m_listMenutypes;
0082 
0083     void startDialog();
0084     void initDialog();
0085     void setModified();
0086 
0087     bool saveClicked();
0088     QString saveAsClicked();
0089 
0090     void readMenuentryData(UserMenuItem *tem);
0091     void showMenuentryData(UserMenuItem *item);
0092     void clearMenuEntryData();
0093     void disableMenuEntryData();
0094 
0095     void setTextEntry(UserMenuItem *item);
0096     void setFileContentEntry(UserMenuItem *item);
0097     void setProgramEntry(UserMenuItem *item);
0098     void setSeparatorEntry(UserMenuItem *item);
0099     void setSubmenuEntry(UserMenuItem *item);
0100 
0101     void setMenuentryText(UserMenuItem *item, bool state);
0102     void setMenuentryType(UserMenuItem *item, bool state1, bool state2);
0103     void setMenuentryFileChooser(UserMenuItem *item, bool state);
0104     void setMenuentryFileParameter(UserMenuItem *item, bool state);
0105     void setMenuentryTextEdit(UserMenuItem *item, bool state);
0106     void setMenuentryIcon(UserMenuItem *item, bool state, const QString &icon = QString());
0107     void setMenuentryShortcut(UserMenuItem *item, bool state);
0108 
0109     void setParameterGroupbox(bool state);
0110     void setMenuentryCheckboxes(UserMenuItem *item, bool useInsertOutput);
0111 
0112     void setMenuentryIcon(const QString &icon);
0113     void updateTreeButtons();
0114     void updateDialogButtons();
0115     void updateAfterDelete();
0116 
0117     void loadXmlFile(const QString &filename, bool installed);
0118     bool saveCheck();
0119 };
0120 
0121 }
0122 
0123 #endif