これを行うには、通常のqutIM WindowsインストーラーであるQtSDKとcmakeが必要です。
ステップ1-QtSDKとcmakeをインストールする
微妙な点はありません。額にデスクトップQt(minGW)を置いてcmakeをインストールするだけです。PATH変数でqtvars.cmdに追加する必要があるのは、cmakeへのパスだけです
ステップ2-qutIMをインストールする
Program Filesではなく、別のフォルダ、たとえばC:\ developer \ qutim \ distに置くのが最善です。 インストーラーには、リンクに必要なすべての必要なヘッダーファイルとオブジェクトファイルが含まれており、share / docディレクトリにはhtmlドキュメントがあります。より正確には、そのアウトラインでさえ、完全なAPIドキュメントはまだ存在しません。
ステップ3-プラグインのCMakeLists.txtを作成する
CMakeLists.txtのサンプルビューは次のようになります。
cmake_minimum_required (VERSION 2.6 FATAL_ERROR)
if( COMMAND cmake_policy )
cmake_policy( SET CMP0003 NEW )
endif(COMMAND cmake_policy )
project( Plugins )
set(QT_MIN_VERSION "4.6.0")
set(QUTIM_PATH "" CACHE FILEPATH "Path to qutim distro")
set(CMAKE_INSTALL_PREFIX ${QUTIM_PATH})
LIST (APPEND CMAKE_MODULE_PATH "cmake")
LIST (APPEND CMAKE_MODULE_PATH "${QUTIM_PATH}/share/cmake/Modules")
LIST (APPEND CMAKE_PREFIX_PATH "${QUTIM_PATH}")
INCLUDE (MacroEnsureVersion)
find_package(Qt4 COMPONENTS QtCore QtGui)
find_package(QutIM REQUIRED)
include_directories(include)
add_subdirectory(src)
srcディレクトリに、CMakeLists.txtに組み込みプラグインの説明を含める必要があります
find_library( SIMPLECONTACTLIST_LIBRARIES simplecontactlist PATHS ${QUTIM_PATH}/lib )
message (${SIMPLECONTACTLIST_LIBRARIES})
qutim_add_plugin(simplecontactlistwidget
EXTENSION
EXTENSION_HEADER ${CMAKE_CURRENT_SOURCE_DIR}/sevenwidget.h
EXTENSION_CLASS Core::SimpleContactList::SimpleWidget
DISPLAY_NAME "Seven"
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}
DESCRIPTION "Windows seven specific implementation with button's in caption"
LINK_LIBRARIES ${SIMPLECONTACTLIST_LIBRARIES}
)
作成するプラグインはsimplecontactlist.aにリンクするので、見つける必要があることをcmakeに伝える必要があります。 プラグインは拡張機能であるため、拡張機能の説明として使用されるクラス名を指定し、ヘッダーファイルへのパスを指定する必要があります。 EXTENSIONの代わりにSUBPLUGINを作成する場合、qutim_sdk_0_3 :: Pluginを継承するクラスを作成し、QUTIM_EXPORT_PLUGIN経由でエクスポートする必要があります。 最も簡単な方法は、他のプラグインで実装を覗き見ることです。
ステップ4-プラグインの作成
連絡先リストのヘッダーにボタンを描画するプラグインを作成します。 simplecontactlistはパブリックAPIの一部ではないため、ヘッダーファイルはインストーラーに含まれないため、必要なファイルを手動でインクルードにコピーするだけです。 ただし、APIはいつでも変更できることを覚えておく必要があります。
コンタクティフォームを作成するには、AbstractContactListWidgetインターフェイスから継承し、AddButtonメソッドを実装する必要があります。AddButtonメソッドは、ボタンをウィンドウタイトルRemoveButtonに追加し、それらを削除します。 さらに、連絡先モデルへのポインターとレンダリングのデリゲートを取得する必要があります。これらはすべてソースアーカイブで表示するか、カブlabsからgit経由でダウンロードできます。
m_model = ServiceManager::getByName<AbstractContactModel*>( "ContactModel" );
Q_ASSERT(m_model);
m_view = new TreeView(m_model, this );
layout->addWidget(m_view);
m_view->setItemDelegate(ServiceManager::getByName<QAbstractItemDelegate*>( "ContactDelegate" ));
* This source code was highlighted with Source Code Highlighter .
m_model = ServiceManager::getByName<AbstractContactModel*>( "ContactModel" );
Q_ASSERT(m_model);
m_view = new TreeView(m_model, this );
layout->addWidget(m_view);
m_view->setItemDelegate(ServiceManager::getByName<QAbstractItemDelegate*>( "ContactDelegate" ));
* This source code was highlighted with Source Code Highlighter .
m_model = ServiceManager::getByName<AbstractContactModel*>( "ContactModel" );
Q_ASSERT(m_model);
m_view = new TreeView(m_model, this );
layout->addWidget(m_view);
m_view->setItemDelegate(ServiceManager::getByName<QAbstractItemDelegate*>( "ContactDelegate" ));
* This source code was highlighted with Source Code Highlighter .
ステップ5-ビルド
最初のCMakeLists.txtビルドディレクトリを含むディレクトリの横で、Qtコマンドプロンプトを作成し、そこに移動して次のようなコマンドを実行します。
H:\develop\windows\labs\build>cmake ..\sevenlist -DCMAKE_BUILD_TYPE=Release -DQUTIM_PATH=H:\develop\qutim\dist -G"MinGW Makefiles"
結果は次のようになります。
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: H:/apps/QtCreator/mingw/bin/gcc.exe
-- Check for working C compiler: H:/apps/QtCreator/mingw/bin/gcc.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: H:/apps/QtCreator/mingw/bin/g++.exe
-- Check for working CXX compiler: H:/apps/QtCreator/mingw/bin/g++.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Looking for Q_WS_X11
-- Looking for Q_WS_X11 - not found.
-- Looking for Q_WS_WIN
-- Looking for Q_WS_WIN - found
-- Looking for Q_WS_QWS
-- Looking for Q_WS_QWS - not found.
-- Looking for Q_WS_MAC
-- Looking for Q_WS_MAC - not found.
-- Found Qt-Version 4.7.2 (using H:/apps/Qt/4.7.2/bin/qmake.exe)
-- Found QutIM: H:/develop/qutim/dist/lib/liblibqutim.dll.a
H:/develop/qutim/dist/lib/libsimplecontactlist.dll.a
-- Configuring done
-- Generating done
-- Build files have been written to: H:/develop/windows/labs/build
これで、make installコマンドを実行してqutIMを実行できます。 cutimの実行中にこのコマンドを実行しないでください。 プラグインのソースコードは、 gitorius (フォルダーsevenlists)で取得できます。
結果はそのような美しさでなければなりません。
今最も必要なもの:
- スパム対策
- グループに分けない非接触モデル
- さまざまなファイルストレージ(ドロップボックスなど)との統合
- Windows用のスペルチェッカー
- プロトコル分離を使用した連絡先モデル(特別なデリゲートを作成)
- Windowsでプレイ中
すべてのAPIに関する質問は、カンファレンスtalks@conference.qutim.orgにお問い合わせください。