[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdepim/kjots
From: Stephen Kelly <steveire () gmail ! com>
Date: 2008-06-10 1:13:55
Message-ID: 1213060435.731146.4423.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 818921 by skelly:
Change pageOnlyActions, bookOnlyActions etc to QSets instead of KActionCollections \
and handle the case of multiple selections.
Also, remove code which duplicated conditional action enabling in bookshelf.cpp.
Also, make the copy action work when a book or multiple entries are selected.
M +2 -58 bookshelf.cpp
M +0 -4 bookshelf.h
M +64 -59 kjotscomponent.cpp
M +2 -1 kjotscomponent.h
--- trunk/KDE/kdepim/kjots/bookshelf.cpp #818920:818921
@@ -47,7 +47,6 @@
Bookshelf::Bookshelf ( QWidget *parent ) : QTreeWidget(parent)
{
- bookActionCollection = pageActionCollection = 0;
sortOrder = Qt::DescendingOrder;
setObjectName( "bookshelf" );
@@ -79,26 +78,8 @@
action->setText(i18n("Copy Link Address"));
connect(action, SIGNAL(triggered()), SLOT(copyLinkAddress()));
- pageActionCollection = new KActionCollection(this);
- bookActionCollection = new KActionCollection(this);
- multiActionCollection = new KActionCollection(this);
-
- pageActionCollection->addAction("new_page", \
actionCollection->action("new_page"));
- pageActionCollection->addAction("rename_entry", \
actionCollection->action("rename_entry"));
- pageActionCollection->addAction("save_to", actionCollection->action("save_to"));
- pageActionCollection->addAction("copy_link_address", \
actionCollection->action("copy_link_address"));
- bookActionCollection->addAction("del_folder", \
actionCollection->action("del_folder"));
- pageActionCollection->addAction("del_page", \
actionCollection->action("del_page"));
-
- bookActionCollection->addAction("new_page", \
actionCollection->action("new_page"));
- bookActionCollection->addAction("rename_entry", \
actionCollection->action("rename_entry"));
- bookActionCollection->addAction("save_to", actionCollection->action("save_to"));
- bookActionCollection->addAction("copy_link_address", \
actionCollection->action("copy_link_address"));
- bookActionCollection->addAction("del_folder", \
actionCollection->action("del_folder"));
-
- multiActionCollection->addAction("save_to", \
actionCollection->action("save_to"));
- multiActionCollection->addAction("del_mult", \
actionCollection->action("del_mult"));
-
+ // Set up the context menu on the bookshelf.
+ // TODO: Move this to the xml file.
addAction(actionCollection->action("new_book"));
addAction(actionCollection->action("new_page"));
addAction(actionCollection->action("rename_entry"));
@@ -110,9 +91,6 @@
addAction(actionCollection->action("del_page"));
addAction(actionCollection->action("del_mult"));
- // Do this now or else the slot will called before DelayedInitialization().
- connect(this, SIGNAL(itemSelectionChanged()), SLOT(setContextMenuOptions()));
-
//These need to be connected after books are loaded.
connect(this, SIGNAL(itemExpanded(QTreeWidgetItem*)), \
SLOT(itemWasExpanded(QTreeWidgetItem*)));
connect(this, SIGNAL(itemCollapsed(QTreeWidgetItem*)), \
SLOT(itemWasCollapsed(QTreeWidgetItem*))); @@ -469,40 +447,6 @@
}
}
-void Bookshelf::setContextMenuOptions()
-{
- QList<QTreeWidgetItem*> selection = selectedItems();
- int selectionSize = selection.size();
-
- // Reset all menu entries
- foreach ( QAction* action, multiActionCollection->actions() )
- action->setEnabled(false);
- foreach ( QAction* action, pageActionCollection->actions() )
- action->setEnabled(false);
- foreach ( QAction* action, bookActionCollection->actions() )
- action->setEnabled(false);
-
- if ( !selectionSize ) {
- // No item is selected
- } else if ( selectionSize == 1 ) {
- KJotsEntry *entry = static_cast<KJotsEntry*>(selection.at(0));
- if ( entry->isBook() ) {
- foreach ( QAction* action, bookActionCollection->actions() )
- action->setEnabled(true);
- } else {
- foreach ( QAction* action, pageActionCollection->actions() )
- action->setEnabled(true);
- }
- }
- else if ( selectionSize > 1 ) {
- foreach ( QAction* action, multiActionCollection->actions() )
- action->setEnabled(true);
- }
-
-
- return;
-}
-
/*!
Returns a pointer to the currently selected page.
*/
--- trunk/KDE/kdepim/kjots/bookshelf.h #818920:818921
@@ -77,14 +77,10 @@
virtual void dragEnterEvent ( QDragEnterEvent * );
virtual void dragMoveEvent ( QDragMoveEvent * );
- KActionCollection *pageActionCollection;
- KActionCollection *bookActionCollection;
- KActionCollection *multiActionCollection;
Qt::SortOrder sortOrder;
protected slots:
void entryRenamed(QTreeWidgetItem*, int);
- void setContextMenuOptions();
void itemWasExpanded(QTreeWidgetItem*);
void itemWasCollapsed(QTreeWidgetItem*);
void copyLinkAddress();
--- trunk/KDE/kdepim/kjots/kjotscomponent.cpp #818920:818921
@@ -84,7 +84,6 @@
KJotsComponent::KJotsComponent(QWidget* parent, KActionCollection *collection) : \
QWidget(parent) {
actionCollection = collection;
- selectionOnlyActions = pageOnlyActions = 0;
searchDialog = 0;
QDBusConnection dbus = QDBusConnection::sessionBus();
@@ -226,8 +225,10 @@
action = KStandardAction::cut(editor, SLOT(cut()), actionCollection);
connect(editor, SIGNAL(copyAvailable(bool)), action, SLOT(setEnabled(bool)));
action->setEnabled(false);
- action = KStandardAction::copy(editor, SLOT(copy()), actionCollection);
+
+ action = KStandardAction::copy(this, SLOT(copy()), actionCollection);
connect(editor, SIGNAL(copyAvailable(bool)), action, SLOT(setEnabled(bool)));
+ connect(browser, SIGNAL(copyAvailable(bool)), action, SLOT(setEnabled(bool)));
action->setEnabled(false);
action = actionCollection->addAction("copyIntoTitle");
@@ -317,52 +318,32 @@
connect(replaceDialog, SIGNAL(optionsChanged()), SLOT(onUpdateReplace()) );
connect(replaceAllPages, SIGNAL(stateChanged(int)), SLOT(onUpdateReplace()) );
- // Actions that are used only when an entry is selected.
- selectionOnlyActions = new KActionCollection((QObject*)this);
- selectionOnlyActions->addAction( "del_folder", \
actionCollection->action("del_folder") );
- selectionOnlyActions->addAction( "del_page", \
actionCollection->action("del_page") );
- selectionOnlyActions->addAction( "del_mult", \
actionCollection->action("del_mult") );
- selectionOnlyActions->addAction( "save_to", actionCollection->action("save_to") \
);
- selectionOnlyActions->addAction( "save_to_ascii", \
actionCollection->action("save_to_ascii") );
- selectionOnlyActions->addAction( "save_to_html", \
actionCollection->action("save_to_html") );
- selectionOnlyActions->addAction( "insert_date", \
actionCollection->action("insert_date") );
- selectionOnlyActions->addAction( "rename_entry", \
actionCollection->action("rename_entry") );
- selectionOnlyActions->addAction( "manual_save", \
actionCollection->action("manual_save") );
- selectionOnlyActions->addAction( "go_next_book", \
actionCollection->action("go_next_book") );
- selectionOnlyActions->addAction( "go_next_page", \
actionCollection->action("go_next_page") );
- selectionOnlyActions->addAction( "go_prev_book", \
actionCollection->action("go_prev_book") );
- selectionOnlyActions->addAction( "go_prev_page", \
actionCollection->action("go_prev_page") );
- selectionOnlyActions->addAction( "new_page", \
actionCollection->action("new_page") );
- selectionOnlyActions->addAction( KStandardAction::name(KStandardAction::Cut),
- \
actionCollection->action(KStandardAction::name(KStandardAction::Cut)) \
);
- selectionOnlyActions->addAction( KStandardAction::name(KStandardAction::Paste),
- \
actionCollection->action(KStandardAction::name(KStandardAction::Paste)) \
);
- selectionOnlyActions->addAction( \
KStandardAction::name(KStandardAction::Replace),
- \
actionCollection->action(KStandardAction::name(KStandardAction::Replace)) \
);
- selectionOnlyActions->addAction( KStandardAction::name(KStandardAction::Find),
- \
actionCollection->action(KStandardAction::name(KStandardAction::Find)) \
);
- selectionOnlyActions->addAction( KStandardAction::name(KStandardAction::Print),
- \
actionCollection->action(KStandardAction::name(KStandardAction::Print)) \
);
- selectionOnlyActions->addAction( "change_color", \
actionCollection->action("change_color") ); + // Actions for a single item \
selection. + entryActions.insert( \
actionCollection->action(KStandardAction::name(KStandardAction::Find)) ); + \
entryActions.insert( actionCollection->action("go_next_book") ); + \
entryActions.insert( actionCollection->action("go_prev_book") ); + \
entryActions.insert( actionCollection->action("del_folder") ); + \
entryActions.insert( actionCollection->action("rename_entry") ); + \
entryActions.insert( actionCollection->action("change_color") );
// Actions that are used only when a page is selected.
- pageOnlyActions = new KActionCollection((QObject*)this);
- pageOnlyActions->addAction( KStandardAction::name(KStandardAction::Cut),
- \
actionCollection->action(KStandardAction::name(KStandardAction::Cut)) \
);
- pageOnlyActions->addAction( KStandardAction::name(KStandardAction::Paste),
- \
actionCollection->action(KStandardAction::name(KStandardAction::Paste)) \
);
- pageOnlyActions->addAction( KStandardAction::name(KStandardAction::Replace),
- \
actionCollection->action(KStandardAction::name(KStandardAction::Replace)) \
);
- pageOnlyActions->addAction( "del_page", actionCollection->action("del_page") );
- pageOnlyActions->addAction( "insert_date", \
actionCollection->action("insert_date") );
- pageOnlyActions->addAction( "auto_bullet", \
actionCollection->action("auto_bullet") );
- pageOnlyActions->addAction( "manage_link", \
actionCollection->action("manage_link") );
- pageOnlyActions->addAction( "insert_checkmark", \
actionCollection->action("insert_checkmark") ); + pageActions.insert( \
actionCollection->action(KStandardAction::name(KStandardAction::Cut)) ); + \
pageActions.insert( actionCollection->action(KStandardAction::name(KStandardAction::Paste)) \
); + pageActions.insert( \
actionCollection->action(KStandardAction::name(KStandardAction::Replace)) ); + \
pageActions.insert( actionCollection->action("go_next_page") ); + \
pageActions.insert( actionCollection->action("go_prev_page") ); + \
pageActions.insert( actionCollection->action("del_page") ); + pageActions.insert( \
actionCollection->action("insert_date") ); + pageActions.insert( \
actionCollection->action("auto_bullet") ); + pageActions.insert( \
actionCollection->action("manage_link") ); + pageActions.insert( \
actionCollection->action("insert_checkmark") );
// Actions that are used only when a page is selected.
- bookOnlyActions = new KActionCollection((QObject*)this);
- bookOnlyActions->addAction( "save_to_book", \
actionCollection->action("save_to_book") ); + bookActions.insert( \
actionCollection->action("save_to_book") );
+ // Actions that are used only when multiple items are selected.
+ multiselectionActions.insert( actionCollection->action("del_mult") );
+
bookshelf->DelayedInitialization(actionCollection);
editor->DelayedInitialization(actionCollection, bookshelf);
browser->DelayedInitialization(bookshelf);
@@ -385,6 +366,10 @@
}
}
+void KJotsComponent::copy() {
+ activeEditor()->copy();
+}
+
bool KJotsComponent::createNewBook()
{
KJotsBook* book = KJotsBook::createNewBook();
@@ -1229,43 +1214,63 @@
void KJotsComponent::updateMenu()
{
- // Sanity check. Too many things call updateMenu().
- if ( !selectionOnlyActions || !pageOnlyActions ) {
- return;
- }
QList<QTreeWidgetItem*> selection = bookshelf->selectedItems();
int selectionSize = selection.size();
if ( !selectionSize ) {
// no (meaningful?) selection
- foreach ( QAction* action, selectionOnlyActions->actions() )
+ foreach ( QAction* action, multiselectionActions )
action->setEnabled(false);
- foreach ( QAction* action, pageOnlyActions->actions() )
+ foreach ( QAction* action, entryActions )
action->setEnabled(false);
- foreach ( QAction* action, bookOnlyActions->actions() )
+ foreach ( QAction* action, bookActions )
action->setEnabled(false);
+ foreach ( QAction* action, pageActions )
+ action->setEnabled(false);
editor->setActionsEnabled( false );
} else if ( selectionSize > 1 ) {
- // soon...
- } else { //selectionSize == 1
- foreach ( QAction* action, selectionOnlyActions->actions() )
+ foreach ( QAction* action, entryActions )
+ action->setEnabled(false);
+ foreach ( QAction* action, bookActions )
+ action->setEnabled(false);
+ foreach ( QAction* action, pageActions )
+ action->setEnabled(false);
+ foreach ( QAction* action, multiselectionActions )
action->setEnabled(true);
+
+ editor->setActionsEnabled( false );
+ } else {
+ foreach ( QAction* action, multiselectionActions )
+ action->setEnabled(false);
+ foreach ( QAction* action, entryActions )
+ action->setEnabled(true);
+
KJotsEntry* entry = static_cast<KJotsEntry*>(selection.at(0));
+
if ( entry && entry->isBook() ) {
- foreach ( QAction* action, pageOnlyActions->actions() )
+
+ foreach ( QAction* action, pageActions )
action->setEnabled(false);
- foreach ( QAction* action, bookOnlyActions->actions() )
+ foreach ( QAction* action, bookActions ) {
action->setEnabled(true);
+ }
editor->setActionsEnabled( false );
+
} else {
- foreach ( QAction* action, pageOnlyActions->actions() )
- action->setEnabled(true);
- foreach ( QAction* action, bookOnlyActions->actions() )
+
+ foreach ( QAction* action, pageActions ) {
+ if (action->objectName() == name(KStandardAction::Cut) ) {
+ action->setEnabled(activeEditor()->textCursor().hasSelection());
+ } else {
+ action->setEnabled(true);
+ }
+ }
+ foreach ( QAction* action, bookActions )
action->setEnabled(false);
editor->setActionsEnabled( true );
-
+
}
}
}
--- trunk/KDE/kdepim/kjots/kjotscomponent.h #818920:818921
@@ -94,6 +94,7 @@
void configure();
void updateConfiguration();
+ void copy();
void copySelection();
void insertDate();
void onPrint();
@@ -135,7 +136,7 @@
QTimer *m_autosaveTimer;
KActionMenu *exportMenu, *bookmarkMenu;
- KActionCollection *selectionOnlyActions, *pageOnlyActions, *bookOnlyActions;
+ QSet<QAction*> entryActions, pageActions, bookActions, \
multiselectionActions; KActionCollection *actionCollection;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic