mirror of
https://port.numenaute.org/aleajactaest/khanat-opennel-code.git
synced 2024-12-30 04:40:53 +00:00
Changed: #1193 Updated core plugin. Added the plugin-spec file.
This commit is contained in:
parent
57a29f9ccd
commit
03a9b9455c
21 changed files with 233 additions and 312 deletions
|
@ -17,7 +17,6 @@
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
#include "core.h"
|
#include "core.h"
|
||||||
#include "imenu_manager.h"
|
|
||||||
#include "context_manager.h"
|
#include "context_manager.h"
|
||||||
#include "main_window.h"
|
#include "main_window.h"
|
||||||
#include "../../extension_system/iplugin_manager.h"
|
#include "../../extension_system/iplugin_manager.h"
|
||||||
|
@ -50,7 +49,7 @@ bool CoreImpl::showOptionsDialog(const QString &group,
|
||||||
return m_mainWindow->showOptionsDialog(group, page, parent);
|
return m_mainWindow->showOptionsDialog(group, page, parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
IMenuManager *CoreImpl::menuManager() const
|
MenuManager *CoreImpl::menuManager() const
|
||||||
{
|
{
|
||||||
return m_mainWindow->menuManager();
|
return m_mainWindow->menuManager();
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,7 +37,7 @@ public:
|
||||||
const QString &page = QString(),
|
const QString &page = QString(),
|
||||||
QWidget *parent = 0);
|
QWidget *parent = 0);
|
||||||
|
|
||||||
virtual IMenuManager *menuManager() const;
|
virtual MenuManager *menuManager() const;
|
||||||
virtual ContextManager *contextManager() const;
|
virtual ContextManager *contextManager() const;
|
||||||
|
|
||||||
virtual QSettings *settings() const;
|
virtual QSettings *settings() const;
|
||||||
|
|
|
@ -23,97 +23,97 @@ namespace Core
|
||||||
namespace Constants
|
namespace Constants
|
||||||
{
|
{
|
||||||
|
|
||||||
const char * const OVQT_VERSION_LONG = "0.1";
|
const char *const OVQT_VERSION_LONG = "0.8";
|
||||||
const char * const OVQT_VENDOR = "Ryzom Core";
|
const char *const OVQT_VENDOR = "Ryzom Core";
|
||||||
const char * const OVQT_YEAR = "2010, 2011";
|
const char *const OVQT_YEAR = "2010, 2011";
|
||||||
const char * const OVQT_CORE_PLUGIN = "Core";
|
const char *const OVQT_CORE_PLUGIN = "Core";
|
||||||
|
|
||||||
//mainwindow
|
//mainwindow
|
||||||
const char * const MAIN_WINDOW = "ObjectViewerQt.MainWindow";
|
const char *const MAIN_WINDOW = "ObjectViewerQt.MainWindow";
|
||||||
|
|
||||||
//menubar
|
//menubar
|
||||||
const char * const MENU_BAR = "ObjectViewerQt.MenuBar";
|
const char *const MENU_BAR = "ObjectViewerQt.MenuBar";
|
||||||
|
|
||||||
//menus
|
//menus
|
||||||
const char * const M_FILE = "ObjectViewerQt.Menu.File";
|
const char *const M_FILE = "ObjectViewerQt.Menu.File";
|
||||||
const char * const M_EDIT = "ObjectViewerQt.Menu.Edit";
|
const char *const M_EDIT = "ObjectViewerQt.Menu.Edit";
|
||||||
const char * const M_VIEW = "ObjectViewerQt.Menu.View";
|
const char *const M_VIEW = "ObjectViewerQt.Menu.View";
|
||||||
const char * const M_SCENE = "ObjectViewerQt.Menu.Scene";
|
const char *const M_SCENE = "ObjectViewerQt.Menu.Scene";
|
||||||
const char * const M_TOOLS = "ObjectViewerQt.Menu.Tools";
|
const char *const M_TOOLS = "ObjectViewerQt.Menu.Tools";
|
||||||
const char * const M_WINDOW = "ObjectViewerQt.Menu.Window";
|
const char *const M_WINDOW = "ObjectViewerQt.Menu.Window";
|
||||||
const char * const M_HELP = "ObjectViewerQt.Menu.Help";
|
const char *const M_HELP = "ObjectViewerQt.Menu.Help";
|
||||||
|
|
||||||
const char * const M_FILE_RECENTFILES = "ObjectViewerQt.Menu.File.RecentFiles";
|
const char *const M_FILE_RECENTFILES = "ObjectViewerQt.Menu.File.RecentFiles";
|
||||||
const char * const M_SHEET = "ObjectViewerQt.Menu.Sheet";
|
const char *const M_SHEET = "ObjectViewerQt.Menu.Sheet";
|
||||||
|
|
||||||
//actions
|
//actions
|
||||||
const char * const NEW = "ObjectViewerQt.New";
|
const char *const NEW = "ObjectViewerQt.New";
|
||||||
const char * const OPEN = "ObjectViewerQt.Open";
|
const char *const OPEN = "ObjectViewerQt.Open";
|
||||||
const char * const SAVE = "ObjectViewerQt.Save";
|
const char *const SAVE = "ObjectViewerQt.Save";
|
||||||
const char * const SAVE_AS = "ObjectViewerQt.SaveAs";
|
const char *const SAVE_AS = "ObjectViewerQt.SaveAs";
|
||||||
const char * const SAVE_ALL = "ObjectViewerQt.SaveAll";
|
const char *const SAVE_ALL = "ObjectViewerQt.SaveAll";
|
||||||
const char * const EXIT = "ObjectViewerQt.Exit";
|
const char *const EXIT = "ObjectViewerQt.Exit";
|
||||||
|
|
||||||
const char * const UNDO = "ObjectViewerQt.Undo";
|
const char *const UNDO = "ObjectViewerQt.Undo";
|
||||||
const char * const REDO = "ObjectViewerQt.Redo";
|
const char *const REDO = "ObjectViewerQt.Redo";
|
||||||
const char * const CUT = "ObjectViewerQt.Cut";
|
const char *const CUT = "ObjectViewerQt.Cut";
|
||||||
const char * const COPY = "ObjectViewerQt.Copy";
|
const char *const COPY = "ObjectViewerQt.Copy";
|
||||||
const char * const PASTE = "ObjectViewerQt.Paste";
|
const char *const PASTE = "ObjectViewerQt.Paste";
|
||||||
const char * const DEL = "ObjectViewerQt.Del";
|
const char *const DEL = "ObjectViewerQt.Del";
|
||||||
const char * const FIND = "ObjectViewerQt.Find";
|
const char *const FIND = "ObjectViewerQt.Find";
|
||||||
const char * const SELECT_ALL = "ObjectViewerQt.SelectAll";
|
const char *const SELECT_ALL = "ObjectViewerQt.SelectAll";
|
||||||
const char * const GOTO_POS = "ObjectViewerQt.Goto";
|
const char *const GOTO_POS = "ObjectViewerQt.Goto";
|
||||||
|
|
||||||
const char * const SETTINGS = "ObjectViewerQt.Settings";
|
const char *const SETTINGS = "ObjectViewerQt.Settings";
|
||||||
const char * const TOGGLE_FULLSCREEN = "ObjectViewerQt.ToggleFullScreen";
|
const char *const TOGGLE_FULLSCREEN = "ObjectViewerQt.ToggleFullScreen";
|
||||||
|
|
||||||
const char * const CLOSE = "ObjectViewerQt.Close";
|
const char *const CLOSE = "ObjectViewerQt.Close";
|
||||||
const char * const CLOSEALL = "ObjectViewerQt.CloseAll";
|
const char *const CLOSEALL = "ObjectViewerQt.CloseAll";
|
||||||
const char * const CLOSEOTHERS = "ObjectViewerQt.CloseOthers";
|
const char *const CLOSEOTHERS = "ObjectViewerQt.CloseOthers";
|
||||||
const char * const ABOUT = "ObjectViewerQt.About";
|
const char *const ABOUT = "ObjectViewerQt.About";
|
||||||
const char * const ABOUT_PLUGINS = "ObjectViewerQt.AboutPlugins";
|
const char *const ABOUT_PLUGINS = "ObjectViewerQt.AboutPlugins";
|
||||||
const char * const ABOUT_QT = "ObjectViewerQt.AboutQt";
|
const char *const ABOUT_QT = "ObjectViewerQt.AboutQt";
|
||||||
|
|
||||||
//settings
|
//settings
|
||||||
const char * const SETTINGS_CATEGORY_GENERAL = "general";
|
const char *const SETTINGS_CATEGORY_GENERAL = "general";
|
||||||
const char * const SETTINGS_CATEGORY_GENERAL_ICON = ":/icons/ic_nel_generic_settings.png";
|
const char *const SETTINGS_CATEGORY_GENERAL_ICON = ":/icons/ic_nel_generic_settings.png";
|
||||||
const char * const SETTINGS_TR_CATEGORY_GENERAL = QT_TR_NOOP("General");
|
const char *const SETTINGS_TR_CATEGORY_GENERAL = QT_TR_NOOP("General");
|
||||||
|
|
||||||
const char * const MAIN_WINDOW_SECTION = "MainWindow";
|
const char *const MAIN_WINDOW_SECTION = "MainWindow";
|
||||||
const char * const MAIN_WINDOW_STATE = "WindowState";
|
const char *const MAIN_WINDOW_STATE = "WindowState";
|
||||||
const char * const MAIN_WINDOW_GEOMETRY = "WindowGeometry";
|
const char *const MAIN_WINDOW_GEOMETRY = "WindowGeometry";
|
||||||
const char * const QT_STYLE = "QtStyle";
|
const char *const QT_STYLE = "QtStyle";
|
||||||
const char * const QT_PALETTE = "QtPalette";
|
const char *const QT_PALETTE = "QtPalette";
|
||||||
|
|
||||||
const char * const LANGUAGE = "Language";
|
const char *const LANGUAGE = "Language";
|
||||||
const char * const PLUGINS_PATH = "PluginPath";
|
const char *const PLUGINS_PATH = "PluginPath";
|
||||||
const char * const DATA_PATH_SECTION = "DataPath";
|
const char *const DATA_PATH_SECTION = "DataPath";
|
||||||
const char * const SEARCH_PATHS = "SearchPaths";
|
const char *const SEARCH_PATHS = "SearchPaths";
|
||||||
const char * const RECURSIVE_SEARCH_PATHS = "RecursiveSearchPathes";
|
const char *const RECURSIVE_SEARCH_PATHS = "RecursiveSearchPathes";
|
||||||
const char * const LEVELDESIGN_PATH = "LevelDesignPath";
|
const char *const LEVELDESIGN_PATH = "LevelDesignPath";
|
||||||
const char * const ASSETS_PATH = "AssetsPath";
|
const char *const ASSETS_PATH = "AssetsPath";
|
||||||
const char * const PRIMITIVES_PATH = "PrimitivesPath";
|
const char *const PRIMITIVES_PATH = "PrimitivesPath";
|
||||||
const char * const LIGOCONFIG_FILE = "LigoConfigFile";
|
const char *const LIGOCONFIG_FILE = "LigoConfigFile";
|
||||||
const char * const REMAP_EXTENSIONS = "RemapExtensions";
|
const char *const REMAP_EXTENSIONS = "RemapExtensions";
|
||||||
|
|
||||||
const char * const LOG_SECTION = "LogSettings";
|
const char *const LOG_SECTION = "LogSettings";
|
||||||
const char * const LOG_ERROR = "LogError";
|
const char *const LOG_ERROR = "LogError";
|
||||||
const char * const LOG_WARNING = "LogWarning";
|
const char *const LOG_WARNING = "LogWarning";
|
||||||
const char * const LOG_DEBUG = "LogDebug";
|
const char *const LOG_DEBUG = "LogDebug";
|
||||||
const char * const LOG_ASSERT = "LogAssert";
|
const char *const LOG_ASSERT = "LogAssert";
|
||||||
const char * const LOG_INFO = "LogInfo";
|
const char *const LOG_INFO = "LogInfo";
|
||||||
|
|
||||||
//resources
|
//resources
|
||||||
const char * const ICON_NEL = ":/core/images/nel.png";
|
const char *const ICON_NEL = ":/core/images/nel.png";
|
||||||
const char * const ICON_SETTINGS = ":/core/images/preferences.png";
|
const char *const ICON_SETTINGS = ":/core/images/preferences.png";
|
||||||
const char * const ICON_PILL = ":/core/icons/ic_nel_pill.png";
|
const char *const ICON_PILL = ":/core/icons/ic_nel_pill.png";
|
||||||
const char * const ICON_OPEN = ":/core/icons/ic_nel_open.png";
|
const char *const ICON_OPEN = ":/core/icons/ic_nel_open.png";
|
||||||
const char * const ICON_NEW = ":/core/icons/ic_nel_new.png";
|
const char *const ICON_NEW = ":/core/icons/ic_nel_new.png";
|
||||||
const char * const ICON_SAVE = ":/core/icons/ic_nel_save.png";
|
const char *const ICON_SAVE = ":/core/icons/ic_nel_save.png";
|
||||||
const char * const ICON_SAVE_AS = ":/core/icons/ic_nel_save_as.png";
|
const char *const ICON_SAVE_AS = ":/core/icons/ic_nel_save_as.png";
|
||||||
const char * const ICON_CRASH = ":/core/icons/ic_nel_crash.png";
|
const char *const ICON_CRASH = ":/core/icons/ic_nel_crash.png";
|
||||||
const char * const ICON_UNDO = ":/core/icons/ic_nel_undo.png";
|
const char *const ICON_UNDO = ":/core/icons/ic_nel_undo.png";
|
||||||
const char * const ICON_REDO = ":/core/icons/ic_nel_redo.png";
|
const char *const ICON_REDO = ":/core/icons/ic_nel_redo.png";
|
||||||
|
|
||||||
} // namespace Constants
|
} // namespace Constants
|
||||||
} // namespace Core
|
} // namespace Core
|
||||||
|
|
|
@ -64,8 +64,8 @@ bool CorePlugin::initialize(ExtensionSystem::IPluginManager *pluginManager, QStr
|
||||||
bool success = m_mainWindow->initialize(errorString);
|
bool success = m_mainWindow->initialize(errorString);
|
||||||
|
|
||||||
GeneralSettingsPage *generalSettings = new GeneralSettingsPage(this);
|
GeneralSettingsPage *generalSettings = new GeneralSettingsPage(this);
|
||||||
CSearchPathsSettingsPage *searchPathPage = new CSearchPathsSettingsPage(false, this);
|
SearchPathsSettingsPage *searchPathPage = new SearchPathsSettingsPage(false, this);
|
||||||
CSearchPathsSettingsPage *recureseSearchPathPage = new CSearchPathsSettingsPage(true, this);
|
SearchPathsSettingsPage *recureseSearchPathPage = new SearchPathsSettingsPage(true, this);
|
||||||
|
|
||||||
generalSettings->applyGeneralSettings();
|
generalSettings->applyGeneralSettings();
|
||||||
searchPathPage->applySearchPaths();
|
searchPathPage->applySearchPaths();
|
||||||
|
@ -95,31 +95,6 @@ void CorePlugin::setNelContext(NLMISC::INelContext *nelContext)
|
||||||
m_libContext = new NLMISC::CLibraryContext(*nelContext);
|
m_libContext = new NLMISC::CLibraryContext(*nelContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString CorePlugin::name() const
|
|
||||||
{
|
|
||||||
return QLatin1String(Constants::OVQT_CORE_PLUGIN);
|
|
||||||
}
|
|
||||||
|
|
||||||
QString CorePlugin::version() const
|
|
||||||
{
|
|
||||||
return Constants::OVQT_VERSION_LONG;
|
|
||||||
}
|
|
||||||
|
|
||||||
QString CorePlugin::vendor() const
|
|
||||||
{
|
|
||||||
return Constants::OVQT_VENDOR;
|
|
||||||
}
|
|
||||||
|
|
||||||
QString CorePlugin::description() const
|
|
||||||
{
|
|
||||||
return "Core plugin.";
|
|
||||||
}
|
|
||||||
|
|
||||||
QStringList CorePlugin::dependencies() const
|
|
||||||
{
|
|
||||||
return QStringList();
|
|
||||||
}
|
|
||||||
|
|
||||||
void CorePlugin::addAutoReleasedObject(QObject *obj)
|
void CorePlugin::addAutoReleasedObject(QObject *obj)
|
||||||
{
|
{
|
||||||
m_plugMan->addObject(obj);
|
m_plugMan->addObject(obj);
|
||||||
|
|
|
@ -53,12 +53,6 @@ public:
|
||||||
|
|
||||||
void setNelContext(NLMISC::INelContext *nelContext);
|
void setNelContext(NLMISC::INelContext *nelContext);
|
||||||
|
|
||||||
QString name() const;
|
|
||||||
QString version() const;
|
|
||||||
QString vendor() const;
|
|
||||||
QString description() const;
|
|
||||||
QStringList dependencies() const;
|
|
||||||
|
|
||||||
void addAutoReleasedObject(QObject *obj);
|
void addAutoReleasedObject(QObject *obj);
|
||||||
|
|
||||||
ExtensionSystem::IPluginManager *pluginManager() const
|
ExtensionSystem::IPluginManager *pluginManager() const
|
||||||
|
|
|
@ -148,25 +148,25 @@ void GeneralSettingsPage::setLevelDesignPath()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GeneralSettingsPage::setPrimitivesPath()
|
void GeneralSettingsPage::setPrimitivesPath()
|
||||||
{
|
{
|
||||||
QString newPath = QFileDialog::getExistingDirectory(0, tr("Set the primitives path"),
|
QString newPath = QFileDialog::getExistingDirectory(0, tr("Set the primitives path"),
|
||||||
m_ui.primitivesPathLineEdit->text());
|
m_ui.primitivesPathLineEdit->text());
|
||||||
if (!newPath.isEmpty())
|
if (!newPath.isEmpty())
|
||||||
{
|
{
|
||||||
m_ui.primitivesPathLineEdit->setText(newPath);
|
m_ui.primitivesPathLineEdit->setText(newPath);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GeneralSettingsPage::setLigoConfigFile()
|
void GeneralSettingsPage::setLigoConfigFile()
|
||||||
{
|
{
|
||||||
QString newFile = QFileDialog::getOpenFileName(0, tr("Set the ligo config file"),
|
QString newFile = QFileDialog::getOpenFileName(0, tr("Set the ligo config file"),
|
||||||
m_ui.ligoConfigFileLineEdit->text());
|
m_ui.ligoConfigFileLineEdit->text());
|
||||||
if (!newFile.isEmpty())
|
if (!newFile.isEmpty())
|
||||||
{
|
{
|
||||||
m_ui.ligoConfigFileLineEdit->setText(newFile);
|
m_ui.ligoConfigFileLineEdit->setText(newFile);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GeneralSettingsPage::setAssetsPath()
|
void GeneralSettingsPage::setAssetsPath()
|
||||||
|
|
|
@ -35,7 +35,7 @@ class IPluginManager;
|
||||||
|
|
||||||
namespace Core
|
namespace Core
|
||||||
{
|
{
|
||||||
class IMenuManager;
|
class MenuManager;
|
||||||
class ContextManager;
|
class ContextManager;
|
||||||
|
|
||||||
class CORE_EXPORT ICore : public QObject
|
class CORE_EXPORT ICore : public QObject
|
||||||
|
@ -52,7 +52,7 @@ public:
|
||||||
const QString &page = QString(),
|
const QString &page = QString(),
|
||||||
QWidget *parent = 0) = 0;
|
QWidget *parent = 0) = 0;
|
||||||
|
|
||||||
virtual IMenuManager *menuManager() const = 0;
|
virtual MenuManager *menuManager() const = 0;
|
||||||
virtual ContextManager *contextManager() const = 0;
|
virtual ContextManager *contextManager() const = 0;
|
||||||
|
|
||||||
virtual QSettings *settings() const = 0;
|
virtual QSettings *settings() const = 0;
|
||||||
|
|
|
@ -1,62 +0,0 @@
|
||||||
// Object Viewer Qt - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
|
||||||
// Copyright (C) 2010 Winch Gate Property Limited
|
|
||||||
// Copyright (C) 2011 Dzmitry Kamiahin <dnk-88@tut.by>
|
|
||||||
//
|
|
||||||
// This program is free software: you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU Affero General Public License as
|
|
||||||
// published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
|
|
||||||
//
|
|
||||||
// You should have received a copy of the GNU Affero General Public License
|
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
#ifndef IMENU_MANAGER_H
|
|
||||||
#define IMENU_MANAGER_H
|
|
||||||
|
|
||||||
#include "core_global.h"
|
|
||||||
|
|
||||||
#include <QtCore/QObject>
|
|
||||||
#include <QtCore/QList>
|
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
|
||||||
class QMenu;
|
|
||||||
class QAction;
|
|
||||||
class QString;
|
|
||||||
class QMenuBar;
|
|
||||||
QT_END_NAMESPACE
|
|
||||||
|
|
||||||
namespace Core
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
@interface IMenuManager
|
|
||||||
@brief The IMenuManager is an interface for providing a registration of menus and menu item.
|
|
||||||
@details The IMenuManager provides centralized access to menus and menu items.
|
|
||||||
All menus and menu items should be registered in the IMenuManager.
|
|
||||||
*/
|
|
||||||
class CORE_EXPORT IMenuManager : public QObject
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
public:
|
|
||||||
IMenuManager(QObject *parent = 0): QObject(parent) {}
|
|
||||||
virtual ~IMenuManager() {}
|
|
||||||
|
|
||||||
virtual void registerMenu(QMenu *menu, const QString &id) = 0;
|
|
||||||
virtual void registerAction(QAction *action, const QString &id) = 0;
|
|
||||||
|
|
||||||
virtual QMenu *menu(const QString &id) const = 0;
|
|
||||||
virtual QAction *action(const QString &id) const = 0;
|
|
||||||
|
|
||||||
virtual void unregisterMenu(const QString &id) = 0;
|
|
||||||
virtual void unregisterAction(const QString &id) = 0;
|
|
||||||
|
|
||||||
virtual QMenuBar *menuBar() const = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace Core
|
|
||||||
|
|
||||||
#endif // IMENU_MANAGER_H
|
|
|
@ -65,8 +65,7 @@ MainWindow::MainWindow(ExtensionSystem::IPluginManager *pluginManager, QWidget *
|
||||||
setMenuBar(m_menuBar);
|
setMenuBar(m_menuBar);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
m_menuManager = new MenuManager(this);
|
m_menuManager = new MenuManager(m_menuBar, this);
|
||||||
m_menuManager->setMenuBar(m_menuBar);
|
|
||||||
|
|
||||||
m_tabWidget = new QTabWidget(this);
|
m_tabWidget = new QTabWidget(this);
|
||||||
m_tabWidget->setTabPosition(QTabWidget::South);
|
m_tabWidget->setTabPosition(QTabWidget::South);
|
||||||
|
@ -114,7 +113,7 @@ void MainWindow::extensionsInitialized()
|
||||||
show();
|
show();
|
||||||
}
|
}
|
||||||
|
|
||||||
IMenuManager *MainWindow::menuManager() const
|
MenuManager *MainWindow::menuManager() const
|
||||||
{
|
{
|
||||||
return m_menuManager;
|
return m_menuManager;
|
||||||
}
|
}
|
||||||
|
@ -205,7 +204,7 @@ bool MainWindow::showOptionsDialog(const QString &group,
|
||||||
{
|
{
|
||||||
if (!parent)
|
if (!parent)
|
||||||
parent = this;
|
parent = this;
|
||||||
CSettingsDialog settingsDialog(m_pluginManager, group, page, parent);
|
SettingsDialog settingsDialog(m_pluginManager, group, page, parent);
|
||||||
settingsDialog.show();
|
settingsDialog.show();
|
||||||
bool ok = settingsDialog.execDialog();
|
bool ok = settingsDialog.execDialog();
|
||||||
if (ok)
|
if (ok)
|
||||||
|
|
|
@ -34,7 +34,6 @@ namespace Core
|
||||||
class CSettingsDialog;
|
class CSettingsDialog;
|
||||||
class CorePlugin;
|
class CorePlugin;
|
||||||
class IContext;
|
class IContext;
|
||||||
class IMenuManager;
|
|
||||||
class MenuManager;
|
class MenuManager;
|
||||||
class ContextManager;
|
class ContextManager;
|
||||||
class CoreImpl;
|
class CoreImpl;
|
||||||
|
@ -50,7 +49,7 @@ public:
|
||||||
bool initialize(QString *errorString);
|
bool initialize(QString *errorString);
|
||||||
void extensionsInitialized();
|
void extensionsInitialized();
|
||||||
|
|
||||||
IMenuManager *menuManager() const;
|
MenuManager *menuManager() const;
|
||||||
ContextManager *contextManager() const;
|
ContextManager *contextManager() const;
|
||||||
QSettings *settings() const;
|
QSettings *settings() const;
|
||||||
|
|
||||||
|
|
|
@ -21,74 +21,76 @@
|
||||||
// NeL includes
|
// NeL includes
|
||||||
#include <nel/misc/debug.h>
|
#include <nel/misc/debug.h>
|
||||||
|
|
||||||
// Qt includes
|
|
||||||
#include <QtGui/QMenu>
|
|
||||||
#include <QtGui/QAction>
|
|
||||||
#include <QtGui/QMenuBar>
|
|
||||||
|
|
||||||
namespace Core
|
namespace Core
|
||||||
{
|
{
|
||||||
MenuManager::MenuManager(QObject *parent)
|
struct MenuManagerPrivate
|
||||||
: IMenuManager(parent),
|
|
||||||
_menuBar(0)
|
|
||||||
{
|
{
|
||||||
|
MenuManagerPrivate(): m_menuBar(0) {}
|
||||||
|
QMenuBar *m_menuBar;
|
||||||
|
typedef QHash<QString, QMenu *> IdMenuMap;
|
||||||
|
IdMenuMap m_menuMap;
|
||||||
|
typedef QHash<QString, QAction *> IdActionMap;
|
||||||
|
IdActionMap m_actionMap;
|
||||||
|
};
|
||||||
|
|
||||||
|
MenuManager::MenuManager(QMenuBar *menuBar, QObject *parent)
|
||||||
|
: QObject(parent),
|
||||||
|
d(new MenuManagerPrivate())
|
||||||
|
{
|
||||||
|
d->m_menuBar = menuBar;
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuManager::~MenuManager()
|
MenuManager::~MenuManager()
|
||||||
{
|
{
|
||||||
_menuMap.clear();
|
d->m_menuMap.clear();
|
||||||
|
delete d;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MenuManager::registerMenu(QMenu *menu, const QString &id)
|
void MenuManager::registerMenu(QMenu *menu, const QString &id)
|
||||||
{
|
{
|
||||||
menu->setObjectName(id);
|
menu->setObjectName(id);
|
||||||
_menuMap.insert(id, menu);
|
d->m_menuMap.insert(id, menu);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MenuManager::registerAction(QAction *action, const QString &id)
|
void MenuManager::registerAction(QAction *action, const QString &id)
|
||||||
{
|
{
|
||||||
action->setObjectName(id);
|
action->setObjectName(id);
|
||||||
_actionMap.insert(id, action);
|
d->m_actionMap.insert(id, action);
|
||||||
}
|
}
|
||||||
|
|
||||||
QMenu *MenuManager::menu(const QString &id) const
|
QMenu *MenuManager::menu(const QString &id) const
|
||||||
{
|
{
|
||||||
QMenu *result = 0;
|
QMenu *result = 0;
|
||||||
if (!_menuMap.contains(id))
|
if (!d->m_menuMap.contains(id))
|
||||||
nlwarning("QMenu %s not found", id.toStdString().c_str());
|
nlwarning("QMenu %s not found", id.toStdString().c_str());
|
||||||
else
|
else
|
||||||
result = _menuMap.value(id);
|
result = d->m_menuMap.value(id);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
QAction *MenuManager::action(const QString &id) const
|
QAction *MenuManager::action(const QString &id) const
|
||||||
{
|
{
|
||||||
QAction *result = 0;
|
QAction *result = 0;
|
||||||
if (!_actionMap.contains(id))
|
if (!d->m_actionMap.contains(id))
|
||||||
nlwarning("QAction %s not found", id.toStdString().c_str());
|
nlwarning("QAction %s not found", id.toStdString().c_str());
|
||||||
else
|
else
|
||||||
result = _actionMap.value(id);
|
result = d->m_actionMap.value(id);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MenuManager::unregisterMenu(const QString &id)
|
void MenuManager::unregisterMenu(const QString &id)
|
||||||
{
|
{
|
||||||
_menuMap.remove(id);
|
d->m_menuMap.remove(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MenuManager::unregisterAction(const QString &id)
|
void MenuManager::unregisterAction(const QString &id)
|
||||||
{
|
{
|
||||||
_actionMap.remove(id);
|
d->m_actionMap.remove(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
QMenuBar *MenuManager::menuBar() const
|
QMenuBar *MenuManager::menuBar() const
|
||||||
{
|
{
|
||||||
return _menuBar;
|
return d->m_menuBar;
|
||||||
}
|
|
||||||
|
|
||||||
void MenuManager::setMenuBar(QMenuBar *menuBar)
|
|
||||||
{
|
|
||||||
_menuBar = menuBar;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} /* namespace Core */
|
} /* namespace Core */
|
|
@ -19,39 +19,47 @@
|
||||||
#define MENU_MANAGER_H
|
#define MENU_MANAGER_H
|
||||||
|
|
||||||
// Project includes
|
// Project includes
|
||||||
#include "imenu_manager.h"
|
#include "core_global.h"
|
||||||
|
|
||||||
// Qt includes
|
// Qt includes
|
||||||
#include <QtCore/QHash>
|
#include <QtCore/QHash>
|
||||||
|
#include <QtCore/QObject>
|
||||||
|
#include <QtCore/QList>
|
||||||
|
#include <QtGui/QMenu>
|
||||||
|
#include <QtGui/QAction>
|
||||||
|
#include <QtGui/QMenuBar>
|
||||||
|
|
||||||
namespace Core
|
namespace Core
|
||||||
{
|
{
|
||||||
|
struct MenuManagerPrivate;
|
||||||
|
|
||||||
class MenuManager : public IMenuManager
|
/*
|
||||||
|
@interface MenuManager
|
||||||
|
@brief The MenuManager provide the interface for registration of menus and menu item.
|
||||||
|
@details The MenuManager provides centralized access to menus and menu items.
|
||||||
|
All menus and menu items should be registered in the MenuManager.
|
||||||
|
*/
|
||||||
|
class CORE_EXPORT MenuManager: public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
MenuManager(QObject *parent = 0);
|
explicit MenuManager(QMenuBar *menuBar, QObject *parent = 0);
|
||||||
virtual ~MenuManager();
|
virtual ~MenuManager();
|
||||||
|
|
||||||
virtual void registerMenu(QMenu *menu, const QString &id);
|
void registerMenu(QMenu *menu, const QString &id);
|
||||||
virtual void registerAction(QAction *action, const QString &id);
|
void registerAction(QAction *action, const QString &id);
|
||||||
|
|
||||||
virtual QMenu *menu(const QString &id) const;
|
QMenu *menu(const QString &id) const;
|
||||||
virtual QAction *action(const QString &id) const;
|
QAction *action(const QString &id) const;
|
||||||
|
|
||||||
virtual void unregisterMenu(const QString &id);
|
void unregisterMenu(const QString &id);
|
||||||
virtual void unregisterAction(const QString &id);
|
void unregisterAction(const QString &id);
|
||||||
|
|
||||||
virtual QMenuBar *menuBar() const;
|
QMenuBar *menuBar() const;
|
||||||
void setMenuBar(QMenuBar *menuBar);
|
|
||||||
private:
|
private:
|
||||||
QMenuBar *_menuBar;
|
|
||||||
typedef QHash<QString, QMenu *> IdMenuMap;
|
MenuManagerPrivate *d;
|
||||||
IdMenuMap _menuMap;
|
|
||||||
typedef QHash<QString, QAction *> IdActionMap;
|
|
||||||
IdActionMap _actionMap;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Core
|
} // namespace Core
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
<plugin-spec>
|
||||||
|
<library-name>ovqt_plugin_core</library-name>
|
||||||
|
<name>Core</name>
|
||||||
|
<version>0.8</version>
|
||||||
|
<vendor>Ryzom Core</vendor>
|
||||||
|
<description>Core plugin.</description>
|
||||||
|
</plugin-spec>
|
|
@ -112,7 +112,7 @@
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<resources>
|
<resources>
|
||||||
<include location="../object_viewer_qt.qrc"/>
|
<include location="../../object_viewer_qt.qrc"/>
|
||||||
</resources>
|
</resources>
|
||||||
<connections>
|
<connections>
|
||||||
<connection>
|
<connection>
|
||||||
|
|
|
@ -40,9 +40,9 @@ typedef struct _MARGINS
|
||||||
int cyBottomHeight;
|
int cyBottomHeight;
|
||||||
} MARGINS, *PMARGINS;
|
} MARGINS, *PMARGINS;
|
||||||
|
|
||||||
typedef HRESULT (WINAPI *PtrDwmIsCompositionEnabled)(BOOL* pfEnabled);
|
typedef HRESULT (WINAPI *PtrDwmIsCompositionEnabled)(BOOL *pfEnabled);
|
||||||
typedef HRESULT (WINAPI *PtrDwmExtendFrameIntoClientArea)(HWND hWnd, const MARGINS* pMarInset);
|
typedef HRESULT (WINAPI *PtrDwmExtendFrameIntoClientArea)(HWND hWnd, const MARGINS *pMarInset);
|
||||||
typedef HRESULT (WINAPI *PtrDwmEnableBlurBehindWindow)(HWND hWnd, const DWM_BLURBEHIND* pBlurBehind);
|
typedef HRESULT (WINAPI *PtrDwmEnableBlurBehindWindow)(HWND hWnd, const DWM_BLURBEHIND *pBlurBehind);
|
||||||
typedef HRESULT (WINAPI *PtrDwmGetColorizationColor)(DWORD *pcrColorization, BOOL *pfOpaqueBlend);
|
typedef HRESULT (WINAPI *PtrDwmGetColorizationColor)(DWORD *pcrColorization, BOOL *pfOpaqueBlend);
|
||||||
|
|
||||||
static PtrDwmIsCompositionEnabled pDwmIsCompositionEnabled= 0;
|
static PtrDwmIsCompositionEnabled pDwmIsCompositionEnabled= 0;
|
||||||
|
|
|
@ -33,18 +33,18 @@ namespace Core
|
||||||
|
|
||||||
QString lastDir = ".";
|
QString lastDir = ".";
|
||||||
|
|
||||||
CSearchPathsSettingsPage::CSearchPathsSettingsPage(bool recurse, QObject *parent)
|
SearchPathsSettingsPage::SearchPathsSettingsPage(bool recurse, QObject *parent)
|
||||||
: IOptionsPage(parent),
|
: IOptionsPage(parent),
|
||||||
m_recurse(recurse),
|
m_recurse(recurse),
|
||||||
m_page(0)
|
m_page(0)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
CSearchPathsSettingsPage::~CSearchPathsSettingsPage()
|
SearchPathsSettingsPage::~SearchPathsSettingsPage()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
QString CSearchPathsSettingsPage::id() const
|
QString SearchPathsSettingsPage::id() const
|
||||||
{
|
{
|
||||||
if (m_recurse)
|
if (m_recurse)
|
||||||
return QLatin1String("search_recurse_paths");
|
return QLatin1String("search_recurse_paths");
|
||||||
|
@ -52,7 +52,7 @@ QString CSearchPathsSettingsPage::id() const
|
||||||
return QLatin1String("search_paths");
|
return QLatin1String("search_paths");
|
||||||
}
|
}
|
||||||
|
|
||||||
QString CSearchPathsSettingsPage::trName() const
|
QString SearchPathsSettingsPage::trName() const
|
||||||
{
|
{
|
||||||
if (m_recurse)
|
if (m_recurse)
|
||||||
return tr("Search Recurse Paths");
|
return tr("Search Recurse Paths");
|
||||||
|
@ -60,22 +60,22 @@ QString CSearchPathsSettingsPage::trName() const
|
||||||
return tr("Search Paths");
|
return tr("Search Paths");
|
||||||
}
|
}
|
||||||
|
|
||||||
QString CSearchPathsSettingsPage::category() const
|
QString SearchPathsSettingsPage::category() const
|
||||||
{
|
{
|
||||||
return QLatin1String(Constants::SETTINGS_CATEGORY_GENERAL);
|
return QLatin1String(Constants::SETTINGS_CATEGORY_GENERAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString CSearchPathsSettingsPage::trCategory() const
|
QString SearchPathsSettingsPage::trCategory() const
|
||||||
{
|
{
|
||||||
return tr(Constants::SETTINGS_TR_CATEGORY_GENERAL);
|
return tr(Constants::SETTINGS_TR_CATEGORY_GENERAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
QIcon CSearchPathsSettingsPage::categoryIcon() const
|
QIcon SearchPathsSettingsPage::categoryIcon() const
|
||||||
{
|
{
|
||||||
return QIcon();
|
return QIcon();
|
||||||
}
|
}
|
||||||
|
|
||||||
QWidget *CSearchPathsSettingsPage::createPage(QWidget *parent)
|
QWidget *SearchPathsSettingsPage::createPage(QWidget *parent)
|
||||||
{
|
{
|
||||||
m_page = new QWidget(parent);
|
m_page = new QWidget(parent);
|
||||||
m_ui.setupUi(m_page);
|
m_ui.setupUi(m_page);
|
||||||
|
@ -90,19 +90,19 @@ QWidget *CSearchPathsSettingsPage::createPage(QWidget *parent)
|
||||||
return m_page;
|
return m_page;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSearchPathsSettingsPage::apply()
|
void SearchPathsSettingsPage::apply()
|
||||||
{
|
{
|
||||||
writeSettings();
|
writeSettings();
|
||||||
applySearchPaths();
|
applySearchPaths();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSearchPathsSettingsPage::finish()
|
void SearchPathsSettingsPage::finish()
|
||||||
{
|
{
|
||||||
delete m_page;
|
delete m_page;
|
||||||
m_page = 0;
|
m_page = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSearchPathsSettingsPage::applySearchPaths()
|
void SearchPathsSettingsPage::applySearchPaths()
|
||||||
{
|
{
|
||||||
QStringList paths, remapExt;
|
QStringList paths, remapExt;
|
||||||
QSettings *settings = Core::ICore::instance()->settings();
|
QSettings *settings = Core::ICore::instance()->settings();
|
||||||
|
@ -124,7 +124,7 @@ void CSearchPathsSettingsPage::applySearchPaths()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSearchPathsSettingsPage::addPath()
|
void SearchPathsSettingsPage::addPath()
|
||||||
{
|
{
|
||||||
QString newPath = QFileDialog::getExistingDirectory(m_page, "", lastDir);
|
QString newPath = QFileDialog::getExistingDirectory(m_page, "", lastDir);
|
||||||
if (!newPath.isEmpty())
|
if (!newPath.isEmpty())
|
||||||
|
@ -139,7 +139,7 @@ void CSearchPathsSettingsPage::addPath()
|
||||||
checkEnabledButton();
|
checkEnabledButton();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSearchPathsSettingsPage::delPath()
|
void SearchPathsSettingsPage::delPath()
|
||||||
{
|
{
|
||||||
QListWidgetItem *removeItem = m_ui.pathsListWidget->takeItem(m_ui.pathsListWidget->currentRow());
|
QListWidgetItem *removeItem = m_ui.pathsListWidget->takeItem(m_ui.pathsListWidget->currentRow());
|
||||||
if (!removeItem)
|
if (!removeItem)
|
||||||
|
@ -148,7 +148,7 @@ void CSearchPathsSettingsPage::delPath()
|
||||||
checkEnabledButton();
|
checkEnabledButton();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSearchPathsSettingsPage::upPath()
|
void SearchPathsSettingsPage::upPath()
|
||||||
{
|
{
|
||||||
int currentRow = m_ui.pathsListWidget->currentRow();
|
int currentRow = m_ui.pathsListWidget->currentRow();
|
||||||
if (!(currentRow == 0))
|
if (!(currentRow == 0))
|
||||||
|
@ -159,7 +159,7 @@ void CSearchPathsSettingsPage::upPath()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSearchPathsSettingsPage::downPath()
|
void SearchPathsSettingsPage::downPath()
|
||||||
{
|
{
|
||||||
int currentRow = m_ui.pathsListWidget->currentRow();
|
int currentRow = m_ui.pathsListWidget->currentRow();
|
||||||
if (!(currentRow == m_ui.pathsListWidget->count()-1))
|
if (!(currentRow == m_ui.pathsListWidget->count()-1))
|
||||||
|
@ -170,7 +170,7 @@ void CSearchPathsSettingsPage::downPath()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSearchPathsSettingsPage::readSettings()
|
void SearchPathsSettingsPage::readSettings()
|
||||||
{
|
{
|
||||||
QStringList paths;
|
QStringList paths;
|
||||||
QSettings *settings = Core::ICore::instance()->settings();
|
QSettings *settings = Core::ICore::instance()->settings();
|
||||||
|
@ -189,7 +189,7 @@ void CSearchPathsSettingsPage::readSettings()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSearchPathsSettingsPage::writeSettings()
|
void SearchPathsSettingsPage::writeSettings()
|
||||||
{
|
{
|
||||||
QStringList paths;
|
QStringList paths;
|
||||||
for (int i = 0; i < m_ui.pathsListWidget->count(); ++i)
|
for (int i = 0; i < m_ui.pathsListWidget->count(); ++i)
|
||||||
|
@ -205,7 +205,7 @@ void CSearchPathsSettingsPage::writeSettings()
|
||||||
settings->sync();
|
settings->sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSearchPathsSettingsPage::checkEnabledButton()
|
void SearchPathsSettingsPage::checkEnabledButton()
|
||||||
{
|
{
|
||||||
bool bEnabled = true;
|
bool bEnabled = true;
|
||||||
if (m_ui.pathsListWidget->count() == 0)
|
if (m_ui.pathsListWidget->count() == 0)
|
||||||
|
|
|
@ -30,15 +30,15 @@ class QWidget;
|
||||||
namespace Core
|
namespace Core
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
@class CSearchPathsSettingsPage
|
@class SearchPathsSettingsPage
|
||||||
*/
|
*/
|
||||||
class CSearchPathsSettingsPage : public Core::IOptionsPage
|
class SearchPathsSettingsPage : public Core::IOptionsPage
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit CSearchPathsSettingsPage(bool recurse, QObject *parent = 0);
|
explicit SearchPathsSettingsPage(bool recurse, QObject *parent = 0);
|
||||||
~CSearchPathsSettingsPage();
|
~SearchPathsSettingsPage();
|
||||||
|
|
||||||
QString id() const;
|
QString id() const;
|
||||||
QString trName() const;
|
QString trName() const;
|
||||||
|
@ -66,7 +66,7 @@ private:
|
||||||
|
|
||||||
bool m_recurse;
|
bool m_recurse;
|
||||||
QWidget *m_page;
|
QWidget *m_page;
|
||||||
Ui::CSearchPathsSettingsPage m_ui;
|
Ui::SearchPathsSettingsPage m_ui;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Core
|
} // namespace Core
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
<class>CSearchPathsSettingsPage</class>
|
<class>SearchPathsSettingsPage</class>
|
||||||
<widget class="QWidget" name="CSearchPathsSettingsPage">
|
<widget class="QWidget" name="SearchPathsSettingsPage">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
|
|
|
@ -35,33 +35,33 @@ Q_DECLARE_METATYPE(PageData);
|
||||||
|
|
||||||
namespace Core
|
namespace Core
|
||||||
{
|
{
|
||||||
CSettingsDialog::CSettingsDialog(ExtensionSystem::IPluginManager *pluginManager,
|
SettingsDialog::SettingsDialog(ExtensionSystem::IPluginManager *pluginManager,
|
||||||
const QString &categoryId,
|
const QString &categoryId,
|
||||||
const QString &pageId,
|
const QString &pageId,
|
||||||
QWidget *parent)
|
QWidget *parent)
|
||||||
: QDialog(parent),
|
: QDialog(parent),
|
||||||
_applied(false)
|
m_applied(false)
|
||||||
{
|
{
|
||||||
_ui.setupUi(this);
|
m_ui.setupUi(this);
|
||||||
|
|
||||||
_plugMan = pluginManager;
|
m_plugMan = pluginManager;
|
||||||
|
|
||||||
QString initialCategory = categoryId;
|
QString initialCategory = categoryId;
|
||||||
QString initialPage = pageId;
|
QString initialPage = pageId;
|
||||||
|
|
||||||
_ui.buttonBox->button(QDialogButtonBox::Ok)->setDefault(true);
|
m_ui.buttonBox->button(QDialogButtonBox::Ok)->setDefault(true);
|
||||||
|
|
||||||
connect(_ui.buttonBox->button(QDialogButtonBox::Apply), SIGNAL(clicked()), this, SLOT(apply()));
|
connect(m_ui.buttonBox->button(QDialogButtonBox::Apply), SIGNAL(clicked()), this, SLOT(apply()));
|
||||||
|
|
||||||
_ui.splitter->setCollapsible(1, false);
|
m_ui.splitter->setCollapsible(1, false);
|
||||||
_ui.pageTree->header()->setVisible(false);
|
m_ui.pageTree->header()->setVisible(false);
|
||||||
|
|
||||||
connect(_ui.pageTree, SIGNAL(currentItemChanged(QTreeWidgetItem *, QTreeWidgetItem *)),
|
connect(m_ui.pageTree, SIGNAL(currentItemChanged(QTreeWidgetItem *, QTreeWidgetItem *)),
|
||||||
this, SLOT(pageSelected()));
|
this, SLOT(pageSelected()));
|
||||||
|
|
||||||
QMap<QString, QTreeWidgetItem *> categories;
|
QMap<QString, QTreeWidgetItem *> categories;
|
||||||
|
|
||||||
QList<IOptionsPage *> pages = _plugMan->getObjects<IOptionsPage>();
|
QList<IOptionsPage *> pages = m_plugMan->getObjects<IOptionsPage>();
|
||||||
|
|
||||||
int index = 0;
|
int index = 0;
|
||||||
Q_FOREACH(IOptionsPage *page, pages)
|
Q_FOREACH(IOptionsPage *page, pages)
|
||||||
|
@ -82,7 +82,7 @@ CSettingsDialog::CSettingsDialog(ExtensionSystem::IPluginManager *pluginManager,
|
||||||
QTreeWidgetItem *treeitem;
|
QTreeWidgetItem *treeitem;
|
||||||
if (!categories.contains(currentCategory))
|
if (!categories.contains(currentCategory))
|
||||||
{
|
{
|
||||||
treeitem = new QTreeWidgetItem(_ui.pageTree);
|
treeitem = new QTreeWidgetItem(m_ui.pageTree);
|
||||||
treeitem->setText(0, trCategories.at(0));
|
treeitem->setText(0, trCategories.at(0));
|
||||||
treeitem->setData(0, Qt::UserRole, qVariantFromValue(pageData));
|
treeitem->setData(0, Qt::UserRole, qVariantFromValue(pageData));
|
||||||
categories.insert(currentCategory, treeitem);
|
categories.insert(currentCategory, treeitem);
|
||||||
|
@ -108,13 +108,13 @@ CSettingsDialog::CSettingsDialog(ExtensionSystem::IPluginManager *pluginManager,
|
||||||
|
|
||||||
categories.value(currentCategory)->addChild(item);
|
categories.value(currentCategory)->addChild(item);
|
||||||
|
|
||||||
_pages.append(page);
|
m_pages.append(page);
|
||||||
_ui.stackedPages->addWidget(page->createPage(_ui.stackedPages));
|
m_ui.stackedPages->addWidget(page->createPage(m_ui.stackedPages));
|
||||||
|
|
||||||
if (page->id() == initialPage && currentCategory == initialCategory)
|
if (page->id() == initialPage && currentCategory == initialCategory)
|
||||||
{
|
{
|
||||||
_ui.stackedPages->setCurrentIndex(_ui.stackedPages->count());
|
m_ui.stackedPages->setCurrentIndex(m_ui.stackedPages->count());
|
||||||
_ui.pageTree->setCurrentItem(item);
|
m_ui.pageTree->setCurrentItem(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
index++;
|
index++;
|
||||||
|
@ -122,30 +122,30 @@ CSettingsDialog::CSettingsDialog(ExtensionSystem::IPluginManager *pluginManager,
|
||||||
|
|
||||||
QList<int> sizes;
|
QList<int> sizes;
|
||||||
sizes << 150 << 300;
|
sizes << 150 << 300;
|
||||||
_ui.splitter->setSizes(sizes);
|
m_ui.splitter->setSizes(sizes);
|
||||||
|
|
||||||
_ui.splitter->setStretchFactor(_ui.splitter->indexOf(_ui.pageTree), 0);
|
m_ui.splitter->setStretchFactor(m_ui.splitter->indexOf(m_ui.pageTree), 0);
|
||||||
_ui.splitter->setStretchFactor(_ui.splitter->indexOf(_ui.layoutWidget), 1);
|
m_ui.splitter->setStretchFactor(m_ui.splitter->indexOf(m_ui.layoutWidget), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
CSettingsDialog::~CSettingsDialog()
|
SettingsDialog::~SettingsDialog()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSettingsDialog::pageSelected()
|
void SettingsDialog::pageSelected()
|
||||||
{
|
{
|
||||||
QTreeWidgetItem *item = _ui.pageTree->currentItem();
|
QTreeWidgetItem *item = m_ui.pageTree->currentItem();
|
||||||
PageData data = item->data(0, Qt::UserRole).value<PageData>();
|
PageData data = item->data(0, Qt::UserRole).value<PageData>();
|
||||||
int index = data.index;
|
int index = data.index;
|
||||||
_currentCategory = data.category;
|
m_currentCategory = data.category;
|
||||||
_currentPage = data.id;
|
m_currentPage = data.id;
|
||||||
_ui.stackedPages->setCurrentIndex(index);
|
m_ui.stackedPages->setCurrentIndex(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSettingsDialog::accept()
|
void SettingsDialog::accept()
|
||||||
{
|
{
|
||||||
_applied = true;
|
m_applied = true;
|
||||||
Q_FOREACH(IOptionsPage *page, _pages)
|
Q_FOREACH(IOptionsPage *page, m_pages)
|
||||||
{
|
{
|
||||||
page->apply();
|
page->apply();
|
||||||
page->finish();
|
page->finish();
|
||||||
|
@ -153,28 +153,28 @@ void CSettingsDialog::accept()
|
||||||
done(QDialog::Accepted);
|
done(QDialog::Accepted);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSettingsDialog::reject()
|
void SettingsDialog::reject()
|
||||||
{
|
{
|
||||||
Q_FOREACH(IOptionsPage *page, _pages)
|
Q_FOREACH(IOptionsPage *page, m_pages)
|
||||||
page->finish();
|
page->finish();
|
||||||
done(QDialog::Rejected);
|
done(QDialog::Rejected);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSettingsDialog::apply()
|
void SettingsDialog::apply()
|
||||||
{
|
{
|
||||||
Q_FOREACH(IOptionsPage *page, _pages)
|
Q_FOREACH(IOptionsPage *page, m_pages)
|
||||||
page->apply();
|
page->apply();
|
||||||
_applied = true;
|
m_applied = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CSettingsDialog::execDialog()
|
bool SettingsDialog::execDialog()
|
||||||
{
|
{
|
||||||
_applied = false;
|
m_applied = false;
|
||||||
exec();
|
exec();
|
||||||
return _applied;
|
return m_applied;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSettingsDialog::done(int val)
|
void SettingsDialog::done(int val)
|
||||||
{
|
{
|
||||||
QDialog::done(val);
|
QDialog::done(val);
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,17 +35,17 @@ class IOptionsPage;
|
||||||
@class CSettingsDialog
|
@class CSettingsDialog
|
||||||
@brief Settings dialog
|
@brief Settings dialog
|
||||||
*/
|
*/
|
||||||
class CSettingsDialog: public QDialog
|
class SettingsDialog: public QDialog
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
CSettingsDialog(ExtensionSystem::IPluginManager *pluginManager,
|
SettingsDialog(ExtensionSystem::IPluginManager *pluginManager,
|
||||||
const QString &initialCategory = QString(),
|
const QString &initialCategory = QString(),
|
||||||
const QString &initialPage = QString(),
|
const QString &initialPage = QString(),
|
||||||
QWidget *parent = 0);
|
QWidget *parent = 0);
|
||||||
|
|
||||||
~CSettingsDialog();
|
~SettingsDialog();
|
||||||
|
|
||||||
/// Run the dialog and return true if 'Ok' was choosen or 'Apply' was invoked at least once
|
/// Run the dialog and return true if 'Ok' was choosen or 'Apply' was invoked at least once
|
||||||
bool execDialog();
|
bool execDialog();
|
||||||
|
@ -60,14 +60,14 @@ private Q_SLOTS:
|
||||||
void apply();
|
void apply();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QList<IOptionsPage *> _pages;
|
QList<IOptionsPage *> m_pages;
|
||||||
bool _applied;
|
bool m_applied;
|
||||||
QString _currentCategory;
|
QString m_currentCategory;
|
||||||
QString _currentPage;
|
QString m_currentPage;
|
||||||
|
|
||||||
ExtensionSystem::IPluginManager *_plugMan;
|
ExtensionSystem::IPluginManager *m_plugMan;
|
||||||
|
|
||||||
Ui::CSettingsDialog _ui;
|
Ui::SettingsDialog m_ui;
|
||||||
}; /* class CSettingsDialog */
|
}; /* class CSettingsDialog */
|
||||||
|
|
||||||
} /* namespace Core */
|
} /* namespace Core */
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
<class>CSettingsDialog</class>
|
<class>SettingsDialog</class>
|
||||||
<widget class="QDialog" name="CSettingsDialog">
|
<widget class="QDialog" name="SettingsDialog">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
|
@ -93,7 +93,7 @@
|
||||||
<connection>
|
<connection>
|
||||||
<sender>buttonBox</sender>
|
<sender>buttonBox</sender>
|
||||||
<signal>accepted()</signal>
|
<signal>accepted()</signal>
|
||||||
<receiver>CSettingsDialog</receiver>
|
<receiver>SettingsDialog</receiver>
|
||||||
<slot>accept()</slot>
|
<slot>accept()</slot>
|
||||||
<hints>
|
<hints>
|
||||||
<hint type="sourcelabel">
|
<hint type="sourcelabel">
|
||||||
|
@ -109,7 +109,7 @@
|
||||||
<connection>
|
<connection>
|
||||||
<sender>buttonBox</sender>
|
<sender>buttonBox</sender>
|
||||||
<signal>rejected()</signal>
|
<signal>rejected()</signal>
|
||||||
<receiver>CSettingsDialog</receiver>
|
<receiver>SettingsDialog</receiver>
|
||||||
<slot>reject()</slot>
|
<slot>reject()</slot>
|
||||||
<hints>
|
<hints>
|
||||||
<hint type="sourcelabel">
|
<hint type="sourcelabel">
|
||||||
|
|
Loading…
Reference in a new issue